← Voltar ao blog
Marketing

O Meta diz 300 leads. O seu CRM tem 180.

Os dois números estão certos e medem coisas diferentes. Como reconciliar o painel de anúncio com o CRM dia a dia, e por que a conferência só resolve metade do problema, já que o ciclo só fecha quando o desfecho da venda volta para a campanha.

Hends Tabanez
Painel de anúncio e CRM lado a lado com contagens de leads divergentes

Toda reunião de marketing chega nesse impasse. O gestor de mídia mostra 300 leads na tela do Gerenciador, o comercial abre o CRM e vê 180.

Alguém assume que o outro está errado. Normalmente ninguém está.

A diferença tem quatro causas, e três delas são de medição. Só a quarta é problema de verdade.

Causa 1: a métrica de resultados não é uma métrica de lead

O campo de resultados do painel responde à pergunta "qual é a ação principal do meu objetivo de campanha". Ele muda de significado conforme o objetivo, e agrega tipos de ação diferentes na mesma coluna.

Uma campanha de mensagens conta conversa iniciada. Uma de tráfego conta clique no link. Uma de cadastro conta formulário enviado.

Se a conta tem campanhas com objetivos diferentes rodando juntas, a soma da coluna de resultados não é a soma de leads. É a soma de coisas que não somam.

Para auditoria existe a métrica de leads, que responde só por cadastro. Ela é a que fecha com o CRM, porque conta o mesmo evento.

MétricaO que contaServe para auditoria
Resultadosação principal do objetivo, varia por campanhaNão, agrega tipos diferentes
Leadstotal de cadastrosSim
Cliques no linkvisita, não cadastroNão

Regra prática: se a coluna muda de sentido quando você troca o objetivo da campanha, ela não entra na planilha de conferência.

Causa 2: as duas datas não são a mesma data

O painel de anúncio atribui a conversão ao dia da impressão que a originou. O CRM registra o lead no dia em que ele entrou.

Isso não é bug, é definição. Um clique na terça às 23h40 que virou formulário na quarta às 00h15 aparece na terça no Meta e na quarta no CRM.

Em volume baixo isso é ruído. Em campanha com pico noturno, é uma diferença que muda o total de dois dias seguidos.

E tem o fuso. O relatório exportado não vem em horário de Brasília por padrão: ele segue o fuso da conta de anúncio, que muitas contas nunca configuraram.

Antes de conferir qualquer coisa, abra as configurações da conta e leia o campo de fuso horário. Se ele vier com offset fixo, como -05, cada linha do seu relatório está deslocada em duas horas em relação ao CRM.

Duas horas de deslocamento não somem no total do mês, mas destroem a conferência diária. Você passa a caçar um erro que é só calendário.

Causa 3: o cruzamento por nome de campanha

Aqui mora o erro mais caro, porque ele parece funcionar.

Nome de campanha é texto editável. Alguém renomeia "Leads Institucional" para "Leads Institucional v2", e a linha do relatório para de casar com a linha do CRM no meio do mês.

O nome também não é único. Duas contas da mesma empresa podem ter campanhas homônimas, e o cruzamento junta lead de uma com custo da outra.

Use o ID da campanha. Ele é imutável, único, e vem em toda linha de relatório do Meta e em todo lead que a integração gravou.

No Zenite, o campo existe dos dois lados: campaign_id na tabela de Meta Ads que o Sync alimenta, e ads_campaign_id no lead do CRM. Esse par é a chave da conferência.

Se o lead não tem esse campo preenchido, ele não entrou por integração. Ele foi digitado, e nenhuma planilha vai atribuí-lo à campanha correta.

Causa 4: o vocabulário que quebra o cruzamento

Este é o detalhe que faz uma conferência tecnicamente correta devolver zero linhas.

O lado de mídia nomeia a plataforma como meta_ads. O lado de CRM, dependendo da origem do registro, grava meta. São a mesma plataforma com duas grafias.

Um filtro por plataforma escrito de um jeito só descarta metade da base em silêncio. Nada quebra, nenhum erro aparece, o total simplesmente vem menor.

Padronize antes de cruzar. Faça a normalização do campo de plataforma no começo da consulta, e liste as grafias que existem na sua base antes de assumir que existe uma só.

A tabela de conferência dia a dia

Monte uma linha por dia, com o fuso já corrigido para Brasília. A planilha é esta:

Dia (BRT)GastoLeads (Meta)Leads no CRMDiferençaCausa
01/09R$ 42012120fecha
02/09R$ 43515132borda de dia, conferir 03/09
03/09R$ 4101113-2borda do dia anterior
04/09R$ 4501495lead sem ID de campanha

Quatro regras para a planilha não mentir:

  1. Use a métrica de leads, nunca a de resultados.

  2. Converta o fuso do relatório para Brasília antes de agrupar por dia.

  3. Cruze por ID de campanha.

  4. Normalize a grafia da plataforma dos dois lados.

Some a coluna de diferença no mês. Se o acumulado fica perto de zero e só as bordas de dia oscilam, sua medição está sã.

Quando a diferença é erro e quando é lead esquecido

Depois de aplicar as quatro correções, sobra uma diferença real. Ela tem outro nome.

Lead que chegou no CRM, nunca foi aberto e nunca recebeu contato não é problema de medição. É problema de operação, e a planilha acabou de encontrá-lo.

Separe as duas contas. A primeira responde "quantos leads o anúncio gerou". A segunda responde "quantos leads o time trabalhou".

A primeira é discussão de dashboard. A segunda é discussão de reunião semanal, e costuma valer mais dinheiro.

A conferência é metade do problema. A outra metade é o que volta.

Conferir 300 contra 180 responde quantos leads chegaram. Não diz nada sobre quais deles viraram dinheiro.

E essa é a informação que falta do outro lado. A plataforma de anúncio otimiza pelo que ela consegue enxergar, e o que ela enxerga por padrão é "formulário enviado".

Otimizar por formulário enviado tem uma consequência previsível: o algoritmo fica muito bom em encontrar gente que preenche formulário. Não gente que compra.

O ciclo só fecha quando o desfecho da venda volta para a campanha. Ganhou, perdeu, por quanto. É isso que transforma a otimização de "gerar lead" em "gerar lead que fecha".

Esse retorno tem nome e tem API. Na Meta é a Conversions API, e existe um objetivo de campanha desenhado para consumi-la. Mas ele só funciona se o dado voltar mesmo.

E três regras decidem se ele volta:

  1. Prazo. A Meta aceita eventos com até 7 dias. Venda que fecha no décimo segundo dia não entra na conta, por mais real que tenha sido.

  2. Identidade. É preciso e-mail, telefone ou o identificador do Lead Ads. Sem um dos três a Meta não reconhece a pessoa, e o evento é descartado. Os identificadores de navegador só existem se o lead passou pelo seu site.

  3. Valor. Objetivo baseado em valor recusa evento sem valor preenchido. Oportunidade ganha com o campo de valor vazio não conta.

Some a isso um quarto problema, que é de produto e não de API: quase toda integração de conversão falha em silêncio. A fila trava, ninguém vê, e meses depois alguém descobre que a campanha nunca recebeu nada.

Onde isso acontece no Zenite

A Zenite Cloud é Meta Business Partner, e o aplicativo é homologado pela Meta Developers: as permissões que ele usa passaram por App Review.

Para quem está lendo este artigo, isso significa duas coisas concretas. A integração roda na Conversions API oficial, documentada e suportada. E o envio acontece dentro das regras da plataforma, com o acesso concedido à conta do cliente. Não é ponte improvisada nem token emprestado de outro lugar.

O centro dessa história não é o painel, é o CRM. É ele que guarda o ID da campanha no lead, carrega esse ID para a oportunidade e sabe o desfecho da venda.

Dentro de cada oportunidade existe um bloco chamado Retorno para mídia. Ele mostra exatamente o que a Meta recebeu sobre aquele negócio: se está na fila, se foi entregue, se está aguardando conexão, se ficou fora do prazo dos 7 dias ou fora do objetivo configurado.

Quando falha, ele explica em português por quê. "A venda foi ganha, mas o valor ainda não foi preenchido." "O lead de origem não tem e-mail, telefone nem identificador do Lead Ads." "A Meta só aceita eventos com até 7 dias."

Isso resolve o quarto problema. A integração deixa de ser uma caixa-preta que ou funciona ou não, e vira um estado que o vendedor e o gestor enxergam no mesmo lugar onde a venda acontece.

O reenvio existe, com uma trava: só quem tem papel de administrador no CRM pode disparar. Mandar conversão mexe no dataset de anúncios do cliente e não tem desfazer.

O resto do caminho é o que já foi descrito aqui. O Sync normaliza a grafia da plataforma e preserva o ID da campanha em toda linha que importa do Meta. O Dash cruza custo e lead pela mesma chave e mostra a diferença por dia, com o fuso resolvido.

Junto, isso muda a pergunta da reunião. Em vez de "por que o Meta diz 300 e o CRM diz 180", vira "qual campanha trouxe os leads que fecharam", e a Meta passa a saber a resposta junto com você.

Conheça o Zenite CRM e feche o ciclo entre o anúncio, a venda e a plataforma.

Perguntas frequentes

Por que o Meta mostra mais leads do que o meu CRM?

Por quatro causas, e três são de medição. A métrica de resultados agrega tipos de ação diferentes conforme o objetivo da campanha. O painel atribui a conversão à data do clique e o CRM à data de chegada do lead. O relatório sai no fuso da conta de anúncio, não em Brasília. E o cruzamento costuma ser feito por nome de campanha, que é texto editável. Só depois de corrigir as quatro é que sobra uma diferença real.

Qual métrica do Meta fecha com o CRM: resultados ou leads?

Leads. A métrica de resultados responde pela ação principal do objetivo da campanha, então muda de significado conforme o objetivo: mensagens conta conversa iniciada, tráfego conta clique no link, cadastro conta formulário enviado. Com campanhas de objetivos diferentes rodando juntas, a soma da coluna não é a soma de leads. A métrica de leads responde só por cadastro, que é o mesmo evento que o CRM registra.

Por que os relatórios do Meta e do CRM mostram dias diferentes?

Porque o painel atribui a conversão ao dia da impressão que a originou e o CRM registra o lead no dia em que ele entrou. Um clique na terça às 23h40 que virou formulário na quarta às 00h15 aparece na terça no Meta e na quarta no CRM. Isso não é bug, é definição, e vira diferença visível em campanha com pico noturno.

Como o fuso horário da conta de anúncio afeta a conferência?

O relatório exportado segue o fuso da conta de anúncio, que muitas contas nunca configuraram, e não o horário de Brasília. Se o campo vier com offset fixo, cada linha do relatório fica deslocada em relação ao CRM. O total do mês não some, mas a conferência diária é destruída, e você passa a caçar um erro que é só calendário. Leia o campo de fuso nas configurações da conta antes de conferir qualquer coisa.

Devo cruzar mídia e CRM por nome de campanha ou por ID?

Por ID. Nome de campanha é texto editável: basta alguém acrescentar um v2 e a linha do relatório para de casar com a do CRM no meio do mês. O nome também não é único, então duas contas com campanhas homônimas fazem o cruzamento juntar lead de uma com custo da outra. O ID é imutável, único, e vem em toda linha de relatório e em todo lead que a integração gravou.

Minha consulta de conferência devolveu zero linhas. O que pode ser?

Provavelmente a grafia da plataforma. O lado de mídia costuma gravar meta_ads e o lado de CRM grava meta, dependendo da origem do registro. Um filtro escrito de um jeito só descarta metade da base em silêncio: nada quebra, nenhum erro aparece, o total simplesmente vem menor. Normalize o campo no começo da consulta e liste as grafias que existem na base antes de assumir que existe uma só.

Depois de corrigir a medição, o que a diferença que sobra significa?

Operação, não medição. Lead que chegou no CRM, nunca foi aberto e nunca recebeu contato é lead que o time não trabalhou. Separe as duas contas: quantos leads o anúncio gerou é discussão de dashboard; quantos leads o time trabalhou é discussão de reunião semanal, e costuma valer mais dinheiro.

Por que devolver o resultado da venda para a Meta?

Porque a plataforma otimiza pelo que ela consegue enxergar, e por padrão ela só enxerga formulário enviado. Otimizar por formulário enviado tem uma consequência previsível: o algoritmo fica muito bom em encontrar gente que preenche formulário, não gente que compra. Quando o desfecho da venda volta para a campanha (ganhou, perdeu, por quanto), a otimização deixa de ser por gerar lead e passa a ser por gerar lead que fecha. Na Meta esse retorno é feito pela Conversions API, e existe um objetivo de campanha desenhado para consumi-la.

Quais são os requisitos para enviar uma conversão de venda para a Meta?

Três. Prazo: a Meta aceita eventos com até 7 dias, então venda que fecha no décimo segundo dia não entra na conta. Identidade: é preciso e-mail, telefone ou o identificador do Lead Ads, porque sem um dos três a Meta não reconhece a pessoa e descarta o evento. Os identificadores de navegador só existem se o lead passou pelo site. E valor: objetivo baseado em valor recusa evento com o campo de valor vazio. Some a isso um quarto ponto, que é de produto: a fila precisa ser visível, porque integração de conversão que falha em silêncio só é descoberta meses depois.