Tag sequencing no GTM pode gerar event IDs diferentes entre a setup tag e a main tag, quebrando a deduplicação entre pixel e CAPI. Entenda a causa e como corrigir definitivamente.
Tag sequencing é uma funcionalidade do GTM que permite especificar a ordem em que as tags disparam. Uma tag de setup (Setup tag) executa antes da tag principal, e uma tag de cleanup executa depois. Isso é útil para garantir que dados estejam prontos antes de enviar eventos.
O caso de uso mais comum é garantir que o GA4 dispare antes do Meta Pixel, para que o event_id gerado pelo GA4 possa ser reutilizado pelo Meta. O problema surge quando a geração desse ID não é coordenada corretamente entre as tags.

Quando você usa uma variável de 'Unique Event ID' gerada por JavaScript no GTM, essa variável é re-avaliada toda vez que é acessada. No contexto de tag sequencing, isso significa que a setup tag gera um event_id, e quando a main tag acessa a mesma variável, ela gera um valor diferente.
O resultado: o pixel do Meta recebe um event_id e a CAPI server-side recebe outro. A deduplicação falha. Conversões são contadas em dobro. Relatórios inflam. O algoritmo otimiza com base em dados distorcidos.

Esse bug é silencioso — o GTM não reporta erro, os eventos chegam às plataformas, mas com IDs diferentes. Só aparece quando você analisa as taxas de deduplicação ou compara volumes entre client-side e server-side.
A causa raiz está em como o GTM avalia variáveis. No GTM, variáveis do tipo 'Custom JavaScript' são funções que executam e retornam um valor a cada chamada. Se a função usa Math.random() ou Date.now() para gerar um ID único, cada chamada produz um resultado diferente.
No tag sequencing, a setup tag é uma invocação separada da main tag. Cada invocação re-avalia todas as variáveis referenciadas. Portanto, o que parece ser 'a mesma variável' na setup e na main tag é, na prática, duas execuções diferentes da mesma função.

A solução é gerar o event_id uma única vez, persistir o valor no dataLayer e referenciá-lo a partir daí. Em vez de usar uma variável que gera o ID a cada chamada, você usa uma variável que lê um valor já fixado no dataLayer.
Nas configurações da tag do Meta Pixel no GTM, ative a opção de event deduplication e configure para usar uma variável de event_id.
Crie uma variável do tipo 'Data Layer Variable' com o nome 'eventId'. Essa variável lê o valor do dataLayer, que é fixo após o push.
Nas tags GA4, substitua a variável de geração dinâmica de ID pela variável Data Layer criada no passo anterior.
Adicione um trigger de evento personalizado que dispara quando o eventId é empurrado ao dataLayer, garantindo a ordem correta.

Para confirmar que o problema foi resolvido, use o GTM Preview Mode e acione o evento (ex: clique no botão de compra). No Preview, navegue até a tag do Meta Pixel e verifique o valor do Event ID. Em seguida, verifique a tag GA4 e confirme que o ID é idêntico.
Na CAPI server-side, acesse os Stape Logs e filtre por eventos de compra. O event_id nos logs de saída deve corresponder exatamente ao event_id que o pixel client-side enviou.


Auditamos e corrigimos toda a estrutura de pixel e CAPI para que cada evento chegue com qualidade máxima às plataformas de anúncio.