Pular para o conteúdo principal

Facebook (Meta)

Integração com Meta Pixel (client-side) — Conversions API (CAPI) server-side está no roadmap mas ainda não implementada. Esta página cobre o estado atual + o que falta pra CAPI completa.

Meta Pixel client-side

Carregado via useAnalytics hook (não via GTM diretamente — é um SDK próprio em app/utils/metrics/facebook.ts).

Configuração por brand

Em overrides/<brand>/app/config/analytics/analytics.ts:

{
pixelId: undefined, // ← undefined = fallback API
facebookDomainVerification: null, // ← string ou null
}

Resolução do pixelId

Mesmo padrão do GTM:

  • pixelId: undefined → fallback brand.settings.analytics.pixelId da API
  • pixelId: "1234567890" → usa esse valor
  • pixelId: null → desativa explicitamente

facebookDomainVerification

String que vai como <meta name="facebook-domain-verification" content="..."> no <head>. Obrigatória pra que o Pixel + Conversions API tenham total funcionalidade (especialmente Aggregated Event Measurement em iOS 14+).

Pra obter o valor: Meta Business Manager → Domain → Verify → "Use Meta Tag" → copia o valor do content.

BrandfacebookDomainVerification
betpontobet-bet-br"a66iz0zi3kxc7rkamy3itfx0uyqap7"
donald-bet-br"8l5rqve1u9e675kf7nun14rs3vxpf1"
Demais brandsnull (a confirmar com time deploy se devem ter)

pixelId por brand

A maioria das brands usa pixelId: undefined e resolve pelo backoffice. A exceção é cl-bet7k-com, que hardcoda pixelId: "1313486743470963" no override.

Eventos enviados

O front emite eventos pro Pixel via dispatcher central (app/utils/metrics/index.tsapp/utils/metrics/facebook.ts):

Evento FrontEvento MetaTipoPayload
page_viewPageViewstandard
sign_upLeadstandardcontent_name: "Cadastro", status: true, value: 1
deposit_initiatedPixGeneratedcustom (trackCustom)content_name: "PIX Gerado", currency, value
first_depositPurchasestandardcurrency, value
purchase (rebill)Purchasestandardcurrency, value

:::danger sign_up dispara Lead, não CompleteRegistration Esta página dizia sign_up → CompleteRegistration. O adapter dispara Lead. CompleteRegistration também é um evento Meta padrão, então um trigger montado com ele nunca dispara e não dá erro — falha silenciosa. Confira em app/utils/metrics/facebook.ts. :::

page_view é enviado

O page_view é dispatchado explicitamente (trackFBEvent("PageView")), e a matriz declara page_view.meta_pixel = { name: "PageView" }. É o pageview de troca de rota SPA, que o snippet de init não enxerga. A afirmação anterior de que "o Pixel já injeta automaticamente e o front não envia" estava errada.

Por que first_deposit E purchase?

Paridade legado. Os dois disparam Purchase no Pixel (evento Meta canônico). Permite separar audiences "compraram pela primeira vez" vs "compraram em geral" no Meta Ads Manager pela origem do evento.

Eventos NÃO enviados

Estes não disparam pro Meta Pixel (slot meta_pixel: null na matriz):

  • login
  • view_game_page — não há equivalente Meta nativo (ViewContent poderia ser adicionado)
  • withdraw — Meta não tem evento padrão de saque
  • view_promotion / select_promotion — desabilitado intencionalmente (paridade legado)

A matriz completa por evento está em Catálogo de eventos.

Se marketing precisar adicionar, é mudança coordenada (back precisa aceitar evento custom no Meta Events Manager).

Conversions API (CAPI) — Roadmap

Status atual: NÃO implementado.

O que CAPI traz que o Pixel client-side não traz:

CenárioPixel clientCAPI
iOS 14+ ATT promptPode bloquearFunciona
User com ad blockerBloqueadoFunciona
Browser com ITP estrito (Safari)Pode bloquearFunciona
Cookie de terceiro bloqueadoPixel sem matchingCAPI usa external_id first-party
Server-side conversion (compra confirmada no banco)Não funcionaFunciona perfeitamente

Por que CAPI ainda não está implementada?

A integração CAPI exige trabalho coordenado de BFF + front. O front já tem o external_id pronto (cookie de remarketing da brand — rmk7k na 7k, ver Remarketing) — falta:

  1. BFF aceitar external_id no payload de signup/deposit
  2. BFF chamar Meta CAPI após confirmar conversão (server-side, com hashed email/phone + external_id)
  3. Configurar Dataset ID + Access Token no Meta Business Manager
  4. Validar deduplicação (mesmo evento dispara via Pixel client + CAPI server; Meta dedup por event_id ou external_id)

Quando o time de back priorizar, o front habilita sendToBff: true no remarketingFeaturesConfig da brand correspondente (ver Remarketing).

Como debuggar

Meta Pixel Helper (Chrome extension)

Pixel Helper mostra todos os eventos disparados na página com payload completo e pixel ID.

  1. Abre a página
  2. Clica no ícone do Pixel Helper
  3. Vê os eventos disparados ao vivo

Events Manager → Test Events

Meta Business → Events Manager → Test Events → cola o ID do test event no ?test_event_code=TEST... da URL ou setа no Pixel.

Eventos enviados aparecem em real-time com payload completo + status de match.

Cookies Meta

DevTools → Application → Cookies:

  • _fbp — browser ID gerado pelo Pixel (90 dias TTL)
  • _fbc — click ID (vem de fbclid na URL — 7 dias após primeiro clique)

Anti-patterns

  1. Adicionar Pixel novo via GTM tag quando useAnalytics já carrega. Duplica eventos.
  2. Esquecer facebookDomainVerification. Reduz match rate em iOS 14+.
  3. Montar trigger em CompleteRegistration. O front dispara Lead no signup — o trigger nunca vai disparar, sem erro visível.
  4. Disparar Purchase antes de confirmação BFF (em deposit_initiated ao invés de pix_confirmado). Infla conversão com depósitos abandonados. deposit_initiated já tem o seu evento próprio: o custom PixGenerated.
  5. Mudar pixelId em produção sem reset de audiência. Audiences velhas ficam órfãs; reativar com pixel novo perde histórico de matching.