01 Como funciona a atribuição do Meta
Para entender por que a atribuição às vezes parece inconsistente, é preciso entender o mecanismo por trás dela. A atribuição no Meta Ads funciona conectando dois eventos: a interação com o anúncio (clique ou visualização) e o evento de conversão (compra, lead, etc.).
Para fazer essa conexão, o Meta usa identificadores como:
fbclid— ID do clique, presente na URL após o clique no anúnciofbc— identificador de clique armazenado em cookie; derivado dofbclidfbp— identificador de navegador; identifica o usuário entre sessões- Dados hasheados do usuário — e-mail, telefone e outros identificadores enviados pela CAPI
O fluxo funciona assim:
Quando o usuário clica num anúncio do Meta, a URL de destino recebe o parâmetro fbclid. O pixel do Meta (ou a tag do GTM no servidor) converte esse parâmetro em um cookie fbc. O Meta registra o evento de clique com timestamp e metadados da campanha — e o usuário fica "marcado" para atribuição futura.
Se o usuário converter depois (ex: finalizar uma compra), o Meta recebe o evento via pixel (client-side) e via CAPI ou Gateway (server-side, se configurado). Cada evento inclui sinais como fbp, fbc e dados do usuário. O Meta então tenta associar essa conversão ao clique no anúncio. Se conseguir, a conversão é atribuída à campanha.
A atribuição depende também das janelas configuradas na sua conta: clique de 1 ou 7 dias, visualização de 1 dia. Conversões fora dessas janelas não são atribuídas. Se seu ciclo de vendas é longo (ex: high ticket com 30 dias de nurture), a janela padrão pode estar subcontando conversões reais.
02 Causas de atribuição imprecisa no Meta Ads
Pixel do Meta não dispara corretamente
A causa mais óbvia — e sempre a primeira a verificar. Se o pixel (ou a CAPI/Gateway) não dispara, ou dispara com erros, você recebe menos conversões do que o real no Meta. Isso afeta diretamente a atribuição porque o Meta não tem como conectar a conversão ao clique se o evento nunca chegou.
Antes de investigar fbc/fbp ausentes ou problemas de Safari, confirme que o pixel está disparando em todas as páginas críticas do funil. Um pixel ausente na página de confirmação de compra é um erro simples que causa impacto enorme na atribuição.
Safari e limitações de rastreamento (ITP)
Se uma parcela significativa dos seus leads ou clientes usa iPhone ou Mac com Safari, o ITP (Intelligent Tracking Prevention) da Apple — ativo desde 2021 — está impactando sua atribuição.
Cookies de terceiros são amplamente bloqueados no Safari. Sem eles, dois identificadores críticos são afetados:
- Dados do usuário — cookies first-party podem compensar parcialmente. Quanto mais dados de qualidade você envia (e-mail, telefone, etc.), melhor o Meta consegue fazer o match de conversões com usuários reais.
fbc(click ID) — o Safari encurta drasticamente a vida útil de cookies, o que pode fazer o identificador de clique expirar antes da conversão acontecer. Quando isso ocorre, a precisão da atribuição cai.
Parâmetros fbc/fbp ausentes no payload do evento
Como explicado acima, o Meta depende dos identificadores fbc e fbp para conectar conversões a cliques e sessões de navegador. Quando esses parâmetros estão ausentes no payload do evento enviado à CAPI, o Meta perde sinais de matching — o que resulta em score de Event Match Quality mais baixo e conversões classificadas como "Outra" ou sem atribuição.
Webhooks mal configurados (conversões offline)
Webhooks são usados para rastrear conversões offline — compras por telefone, fechamentos via CRM, atendimentos presenciais. Assim como nas conversões online, o payload do webhook precisa incluir fbc/fbp para que o Meta consiga atribuir a conversão ao anúncio correto. O diagnóstico é diferente do pixel — por isso tratamos como causa separada.
03 Ferramentas para diagnosticar problemas de atribuição
As etapas abaixo assumem uma configuração com rastreamento client-side + server-side (pixel do navegador + CAPI ou Gateway). Essa combinação é mais confiável que pixel sozinho e é a recomendada pelo próprio Meta para atribuição precisa.
1. GTM Preview Mode
O modo de pré-visualização do Google Tag Manager permite ver o que acontece no navegador e no servidor quando um usuário interage com o site. Com ele você verifica se as tags do Meta pixel e da CAPI estão disparando corretamente e inspeciona o payload de cada evento — incluindo a presença (ou ausência) dos parâmetros fbc e fbp.
2. Extensão Chrome do Stape
A extensão facilita o diagnóstico: você identifica rapidamente quais tags dispararam ou falharam, inspeciona os payloads das requisições (incluindo eventos do Meta) com JSON formatado e parâmetros de URL legíveis. Especialmente útil para depurar a página de checkout em lojas Shopify, que tem acesso restrito no GTM padrão.
3. Stape Logs
Diferente de outras soluções de rastreamento server-side (como GCP), o Stape oferece tanto logs de entrada quanto de saída — ou seja, você vê exatamente o que foi enviado ao Meta, não apenas o que chegou ao seu servidor. No contexto de diagnóstico de atribuição, isso é decisivo: você analisa se o payload enviado ao Meta realmente contém os parâmetros fbc e fbp.
4. Stape Store (para webhooks offline)
Para conversões offline via webhook, o corpo do POST não é logado por padrão no Stape Logs. Para acessá-lo, você configura a tag Logger, que armazena o payload completo do webhook no Stape Store. Com isso é possível inspecionar exatamente o que chegou no webhook e verificar se os identificadores de atribuição estão presentes.
04 Passo 1: Verificar se o pixel e a CAPI estão funcionando
1.1 — Ativar o Preview Mode nos containers web e servidor
1.2 — Ativar a extensão Chrome do Stape
Com a extensão ativa, você tem visibilidade completa dos eventos disparados — mesmo em páginas de checkout com acesso restrito.
1.3 — Disparar eventos no site e verificar as tags
Navegue pelo site e execute as ações que disparam eventos (visualização de página, adicionar ao carrinho, compra). No container web do GTM, você deve ver as tags do Meta disparando:
E no container servidor:
1.4 — Conferir os event_id nos dois containers
O Meta recomenda usar pixel + CAPI simultaneamente para rastreamento mais preciso — mas sem um identificador único, os eventos ficam duplicados. O event_id é esse identificador. Você deve ver o mesmo event_id para o mesmo evento tanto no container web quanto no servidor.
Container web — tag do pixel:
Container servidor — tag da CAPI:
Se o event_id do container web e do servidor for diferente para o mesmo evento, o Meta vai contar duas conversões. Isso infla o ROAS reportado e distorce a otimização das campanhas. Configure uma variável compartilhada que gera o mesmo ID em ambos os containers.
1.5 — Verificar erros nos Stape Logs
O Preview Mode testa o ambiente de desenvolvimento. Para ver o que está acontecendo em produção (com usuários reais), use o Stape Logs:
- Acesse a seção Logs no painel do Stape
- Clique na aba Outgoing requests (requisições de saída)
- Filtre por plataforma (Facebook) e por evento (ex: Purchase)
- Procure requisições com status de erro:
- 4xx — a requisição chegou ao servidor mas não foi processada (caminho errado ou container não publicado)
- 5xx — a requisição foi recebida mas falhou durante o processamento
Para cada requisição com erro, clique em More para ver os detalhes e identificar a causa raiz. Você também pode baixar o relatório em CSV para análise no Google Sheets.
05 Passo 2: Validar fbc/fbp em eventos online
2.1 — Acessar Stape Logs e filtrar requisições de saída
No Stape Logs, filtre as Outgoing requests selecionando o período, a plataforma Facebook e o evento desejado (geralmente Purchase).
2.2 — Analisar o payload das requisições enviadas ao Meta
Clique em More ao lado de um registro e procure pelos parâmetros:
fbc— identificador do clique no anúncio. É a chave para atribuição precisa de conversões a campanhas específicas.fbp— identificador de navegador. Permite identificar o usuário entre diferentes sessões no mesmo dispositivo.
Na maioria dos casos de atribuição incorreta, o que você vai encontrar é o parâmetro fbc ausente:
2.3 — Quantificar o impacto com CSV + Google Sheets
Se o volume de requisições for grande, baixe o relatório em CSV:
No Google Sheets, use estas fórmulas para quantificar:
- Total de requisições:
=COUNTIF(H2:H, "*") - Com parâmetro
fbp:=COUNTIF(H:H, "*fbp*") - Com parâmetro
fbc:=COUNTIF(H:H, "*fbc*")
2.4 — O que fazer quando fbc/fbp estão ausentes
Se os parâmetros estiverem zerados ou ausentes em todas as requisições, a causa mais provável é que eles não foram configurados nas tags do GTM. Verifique no Preview Mode: acesse a aba Event Data do evento e procure por fbc e fbp. Se não estiverem lá, o Client do sGTM não conseguiu extraí-los do HTTP request.
Se você registrou 100 compras mas o Ads Manager mostra 30 cliques, no máximo 30 eventos de Purchase devem ter o fbc — e somente se cada clique resultou em conversão. Se o GA4 indica tráfego do Facebook em mais compras e ainda assim não há nenhum fbc nos logs, aí há um problema real de captura.
Se o seu container servidor está hospedado num domínio diferente do seu site (ex: gtm-msr.appspot.com em vez de tracking.seusite.com.br), o navegador bloqueia o envio de cookies por política de segurança. Configure um subdomínio próprio para resolver — isso transforma cookies de terceiro em first-party, com vida útil muito maior.
Outros fatores que removem o fbc:
- Ad blockers que removem parâmetros de rastreamento da URL antes da tag disparar. Mitigar com Custom Loader.
- ITP do Safari que encurta a vida útil do cookie. Mitigar com Cookie Keeper para estender a duração dos identificadores.
06 Passo 3: Verificar fbc/fbp em conversões offline
Se você usa webhooks para enviar conversões offline ao Meta (vendas por telefone, fechamentos via CRM, atendimentos presenciais), vale verificar se esses webhooks estão incluindo os identificadores de atribuição.
3.1 — Configurar a tag Logger
O Stape Logs registra apenas a requisição original de entrada — para webhooks, isso não é suficiente. Configure a tag Logger no seu container servidor para capturar o corpo completo do POST request e armazená-lo no Stape Store.
O Stape Store está incluído sem custo adicional nos planos Pro e superiores do Stape.
3.2 — Analisar o payload via Stape Store
Após configurar o Logger, acesse a coleção logger no Stape Store:
Nos campos do payload, procure por:
fbc/fbp— se estão presentes e com valor- Dados de usuário — e-mail ou outro identificador único
Se os parâmetros estiverem em branco:
Se o usuário clicou num anúncio mas a compra foi concluída por outro canal (ex: ligação espontânea, indicação), o fbc naturalmente não estará no webhook. O problema é quando usuários que vieram de anúncios também chegam sem fbc — isso indica que o dado está se perdendo no caminho.
3.3 — Como corrigir a atribuição de conversões offline
O fluxo ideal para preservar fbc/fbp em conversões offline:
- Capturar os parâmetros
fbc/fbpjunto com um identificador único do usuário (e-mail) no momento da visita ao site - Salvar esses dados no CRM ou no Stape Store
- Quando o webhook chegar ao sGTM, extrair o identificador do usuário do payload
- Comparar com os dados salvos e recuperar o
fbc/fbpcorrespondente - Anexar os parâmetros ao payload do webhook antes de enviar ao Meta
Para implementar com o Stape Store, configure quatro elementos:
1. Tag Stape Store Writer
Salva os dados de fbc, fbp e e-mail do usuário no momento do evento online (ex: Lead ou InitiateCheckout).
2. Variável de identificador do usuário
Extrai o e-mail (ou outro ID único) do payload do webhook recebido.
3. Variável Stape Store Lookup para fbp
Usa o e-mail extraído para buscar o fbp salvo anteriormente no Stape Store.
- Lookup Type: Document path
- Document ID: variável com o e-mail do webhook
- Key Path:
user_data.fbp
Crie a mesma variável para o fbc, alterando o Key Path para user_data.fbc:
4. Mapear variáveis na tag do Meta
Na tag Facebook Conversions API, seção User data, mapeie os campos Click ID e Browser ID para as duas variáveis Lookup criadas acima:
Com esse fluxo, mesmo conversões offline que chegam via webhook carregam os identificadores capturados na visita original ao site — permitindo que o Meta atribua a conversão ao anúncio correto.
07 Perguntas frequentes
fbc é o identificador de clique em anúncio — ele registra qual clique específico originou uma conversão. O fbp é o identificador de navegador — identifica o usuário entre sessões diferentes no mesmo browser. Os dois são essenciais para que o Meta consiga associar uma conversão a uma campanha. Sem eles, a conversão cai em 'Outra' ou fica sem atribuição.fbc já foi apagado e a conversão não é atribuída ao clique. A solução é rastreamento server-side com cookies first-party (usando subdomínio próprio), que têm duração muito maior.event_id: o mesmo identificador único é enviado tanto pelo pixel (navegador) quanto pela CAPI (servidor). O Meta detecta eventos com o mesmo event_id e conta apenas uma conversão. Sem event_id configurado, os eventos podem ser duplicados — inflando o ROAS reportado no Gerenciador de Anúncios.fbc — supondo que cada clique resultou em conversão. Mas se o GA4 indica que conversões vieram do Facebook e seus logs não têm nenhum evento de compra com fbc, isso aponta para problema real: o parâmetro não está sendo armazenado ou repassado corretamente.fbc, fbp), maior o score. Score alto significa mais conversões atribuídas corretamente, otimização de campanha mais precisa e públicos Lookalike de maior qualidade. Score abaixo de 6.0 já é sinal de problema de configuração.event_id. Para atribuição, as duas funcionam igualmente bem quando configuradas corretamente.Configuramos pixel + CAPI com atribuição otimizada
Auditamos seu setup atual, corrigimos parâmetros fbc/fbp ausentes, configuramos deduplicação e garantimos Match Quality acima de 8.0 — para que cada venda seja atribuída à campanha correta.