Eventos do pixel e coleta direta
Esta página descreve os eventos que o pixel coleta, a função para enviar eventos próprios e o endpoint de coleta para integração servidor a servidor.
Eventos coletados automaticamente
Seção intitulada “Eventos coletados automaticamente”Com a tag instalada, o pixel envia estes eventos sem configuração:
| Evento | Quando |
|---|---|
page_view |
Ao carregar a página. |
desempenho |
Ao sair da página ou esconder a aba. Traz tempos de carregamento, Core Web Vitals (LCP, CLS, INP), tempo de engajamento com a aba em foco, profundidade de rolagem e contagens de interação. |
saida |
Clique em link para outro domínio ou em link de download. |
video_play, video_pause, video_ended |
Eventos de elementos <video> nativos. Vídeos incorporados por iframe (YouTube, Vimeo) não são acompanhados. |
erro_js |
Erro de JavaScript não tratado, até 5 por página. |
falha_rede |
Chamada fetch da página que falhou ou respondeu com status 400 ou maior. |
campo, campo_invalido, form_envio |
Interação com formulários: tempo por campo, correções, abandono, validação e envio. Campos de senha e ocultos são ignorados, e o conteúdo digitado nunca é enviado. |
Mapa de calor e de movimento são opcionais e ligados por propriedade no painel. Texto selecionado, texto copiado e conteúdo de localStorage ou de cookies não são enviados. O pixel manda apenas contagens e tamanhos.
Enviar um evento próprio pelo navegador
Seção intitulada “Enviar um evento próprio pelo navegador”A tag expõe window.view:
// nome, parâmetros livres, valor em unidades da moeda, moedaview.send("purchase", { pedido: "ped-1001" }, 189.9, "BRL");O valor é convertido para micros automaticamente. view.id() devolve o id do dispositivo e view.sessao() o id da sessão.
Enviar um evento direto, sem a tag
Seção intitulada “Enviar um evento direto, sem a tag”Use para integração servidor a servidor ou para um tag manager próprio.
POST https://px.exemplo.com.br/eContent-Type: application/jsonTambém existe GET /e?j=<json-urlencoded>, para quem só consegue fazer uma requisição GET (como o Google Tag Manager). Um evento por requisição, sem formato de lote. O corpo do POST tem teto de 192 kB.
Autenticação
Seção intitulada “Autenticação”A chave pública do stream vai no campo k. A origem vem do cabeçalho Origin: se o stream tem domínios ativos, a origem precisa estar entre eles; origem vazia é aceita.
Os nomes são curtos porque viajam em toda requisição.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
k |
string | sim | Chave pública do stream. |
i |
string | sim | Id único do evento. A deduplicação usa este campo. |
n |
string | sim | Nome do evento (page_view, purchase…). |
c |
string | sim | Id do dispositivo. |
s |
string | sim | Id da sessão. |
u |
string | não | Id do usuário logado no seu sistema, quando houver. |
url |
string | não | Endereço da página. |
t |
string | não | Título. |
r |
string | não | Referrer. |
lg |
string | não | Idioma. |
sw, sh |
inteiro | não | Largura e altura da tela. |
vw, vh |
inteiro | não | Largura e altura da janela. |
ts |
inteiro | não | Instante do evento, em milissegundos desde 1970, pelo relógio do visitante. |
v |
inteiro | não | Valor em micros: R$ 1,00 é 1000000. |
cur |
string | não | Moeda, por exemplo BRL. |
p |
objeto | não | Parâmetros livres seus. |
it |
lista | não | Itens do pedido. |
o |
string | não | Origem declarada: gtm, js ou server. |
ca, cd |
booleano | não | Consentimento para analytics e para anúncios. Veja Consentimento. |
Exemplo
Seção intitulada “Exemplo”curl -i -X POST "https://px.exemplo.com.br/e" \ -H "Content-Type: application/json" \ -H "Origin: https://www.exemplo.com.br" \ -d '{ "k": "pk_00000000000000000000000000000000", "i": "evt-exemplo-0001", "n": "purchase", "c": "cid-exemplo-disp", "s": "sid-exemplo-sessao", "url": "https://www.exemplo.com.br/checkout/sucesso", "v": 18990000, "cur": "BRL" }'O valor 18990000 é R$ 18,99. Enviar 18.99 grava dezoito milionésimos de real.
Resposta: sempre 204
Seção intitulada “Resposta: sempre 204”HTTP/1.1 204 No ContentO endpoint responde 204 para tudo: evento aceito, chave desconhecida, origem não declarada, cota excedida e corpo inválido. Isso é deliberado. O endpoint é chamado por qualquer navegador, e uma resposta que distinguisse “chave inválida” de “origem não autorizada” permitiria enumerar propriedades e domínios de clientes.
A consequência: um 204 não prova que o evento entrou. A única confirmação é o painel. Veja Testar e diagnosticar o pixel.
Limites
Seção intitulada “Limites”- Corpo do
POST: 192 kB. Corpo doGET: 512 bytes, e a owiew remove do evento o que a página colheria sozinha (query string, referrer, título e id de usuário). - Há cota de eventos por IP e origem. O excesso é descartado com o mesmo
204. - Eventos com
irepetido são deduplicados.
Armadilhas
Seção intitulada “Armadilhas”- Valor em unidades em vez de micros no endpoint direto (a função
view.sendfaz a conversão; oPOSTnão). - Reutilizar o mesmo
iem eventos diferentes: o segundo é descartado como duplicado. - Esquecer
Originnum teste comcurlcontra um stream que já tem domínios ativos. Origem vazia é aceita, mas uma origem errada não.