Pular para o conteúdo

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.

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.

A tag expõe window.view:

// nome, parâmetros livres, valor em unidades da moeda, moeda
view.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.

Use para integração servidor a servidor ou para um tag manager próprio.

POST https://px.exemplo.com.br/e
Content-Type: application/json

També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.

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.
Janela do terminal
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.

HTTP/1.1 204 No Content

O 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.

  • Corpo do POST: 192 kB. Corpo do GET: 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 i repetido são deduplicados.
  • Valor em unidades em vez de micros no endpoint direto (a função view.send faz a conversão; o POST não).
  • Reutilizar o mesmo i em eventos diferentes: o segundo é descartado como duplicado.
  • Esquecer Origin num teste com curl contra um stream que já tem domínios ativos. Origem vazia é aceita, mas uma origem errada não.