Tracking & Dados
Comente TRACKING no Instagram @gastaomatos

Tracking Perfeito: Meta CAPI + Google Ads + GA4

O Pixel sozinho perde até 30% dos seus eventos por iOS, adblock e ITP. A solução é tracking server-side com Meta CAPI + GA4 + Google Ads, tudo deduplicado por event_id.

Por que isso importa

O Pixel client-side perde até 30% dos eventos: iOS/ITP apaga o cookie em 7 dias, o adblock derruba o disparo e o EMQ despenca. Sem dado de servidor, a Meta otimiza no escuro e o seu CPA sobe.

A arquitetura em 4 camadas

  • Cookies: middleware Next cria _eid (UUID, 1 ano), _fbp, _fbc e _gcl_aw/_wbraid/_gbraid
  • Client: Pixel + gtag com o MESMO event_id do servidor
  • Server: Next API dispara CAPI, GA4 e Google Ads em paralelo
  • Externo: Meta Graph API v21, GA4 Measurement Protocol, Google Ads Enhanced Conversions

Regras de ouro

  • Use sempre o SDK oficial Meta (capi-param-builder): cuida de subdomainIndex, creationTime e hash
  • Todo evento client nasce com event_id e é espelhado no server (dedupe, janela de 48h)
  • Eventos críticos (Lead, InitiateCheckout, Purchase) sempre nas 2 pontas
  • Purchase só no servidor, via webhook, com event_id = order_id
  • fbc e fbp vão em texto claro; em, ph e fn vão em SHA-256
  • Único pré-processo BR: telefone em E.164 (+55) e estado em sigla minúscula

EMQ: o que eleva o match

  • em + ph (email e telefone): impacto altíssimo, hash SHA-256
  • fbc + fbp: atribuição paga da Meta, NUNCA hashear
  • external_id: cookie _eid (1 ano), costura a identidade
  • IP + user agent: a base obrigatória de todo evento

Prompt para o Claude Code implementar

prompt
Implemente tracking server-side completo no meu projeto Next.js 15 (App Router).

Stack: Meta CAPI + GA4 Measurement Protocol + Google Ads Enhanced Conversions.
Use o SDK oficial Meta capi-param-builder (server e client).

Camadas:
- middleware.ts: cria _eid (UUID 1 ano), _fbp, _fbc, _gcl_aw/_wbraid/_gbraid
- /api/track: recebe evento, dispara CAPI + GA4 + Google Ads com Promise.allSettled
- /api/checkout: InitiateCheckout + injeta external_id na URL do checkout
- /api/webhook/[gateway]: Purchase autoritativo, event_id = order_id
- public/track.js: para paginas HTML estaticas

Regras: event_id UUID em toda ponta; dedupe Pixel x CAPI; PII em SHA-256;
fbc/fbp em texto claro; telefone E.164 (+55); estado em sigla; tokens fora de NEXT_PUBLIC_.

Perguntas frequentes

Por que o Pixel sozinho não basta?

O Pixel roda no navegador (client-side) e perde até 30% dos eventos por iOS/ITP (que apaga cookies em 7 dias), adblock e configurações de privacidade. Sem o dado do servidor (CAPI), o Event Match Quality cai, a Meta otimiza com menos informação e o custo por resultado sobe.

O que é EMQ (Event Match Quality)?

É a nota de 1 a 10 que a Meta dá para a qualidade de identificação dos seus eventos. Quanto mais dados do usuário (email, telefone, fbc, fbp, external_id) você envia hasheados corretamente, maior o match e melhor a otimização. O objetivo é Good ou Great.

Preciso saber programar para implementar?

Não. Com o Claude Code e o prompt deste post, a IA implementa todos os arquivos no seu projeto Next.js. Você revisa, ajusta e faz o deploy na Vercel.

Funciona com Hotmart, Stripe ou Kiwify?

Sim. O Purchase é disparado pelo webhook do gateway (Hotmart Postback 2.0, Stripe webhook, etc.) com o event_id igual ao order_id, garantindo deduplicação e a venda contabilizada server-side.

Quer implementar isso?

Me chama no WhatsApp. Ajudo você a configurar ou implemento pra você.

Quero ajuda no WhatsApp
DT

Gastão Matos

@gastaomatos