Análise & Tracking
/
9 min de leitura
/
Atualizado mai 2026
Eventos Customizados no GA4: Como Configurar pra Mídia Paga
O que separa tracking que serve pra Smart Bidding de tracking que enche dashboard: 5 a 8 eventos bem mapeados ao funil, deduplicação correta e parâmetros que o algoritmo realmente lê.
O que você vai entender lendo isso
- Limites que importam. GA4 aceita 500 eventos custom por property, 25 parâmetros custom por evento e 50 dimensões custom event-scope. Mas o número real é 5 a 8 eventos bem mapeados ao funil.
- Deduplicação destrava ROAS. Em conta de e-commerce de moda, refiz arquitetura de eventos custom em 9 dias. ROAS reportado pelo Smart Bidding subiu 28% em 30 dias depois que parei de mandar Purchase de 5 fontes diferentes.
- GTM > gtag.js direto. Versionamento, preview, QA controlado. Cada deploy do site sem GTM arrisca quebrar tracking.
Por que evento custom no GA4 importa pra mídia paga?
Eu já tinha rodado mais de R$50M em mídia paga pra Amazon, Hering, Calvin Klein e UOL Edtech antes do GA4 forçar todo mundo a abandonar o Universal Analytics. A migração foi dolorosa por um motivo simples: no UA, evento era Category / Action / Label. No GA4, evento é um objeto com até 25 parâmetros, e o que você manda nesses parâmetros define se o Smart Bidding consegue otimizar ou se vai cuspir CPA inflado.
Vou contar um caso. E-commerce de moda, 7 dígitos/mês em ad spend, tracking quebrado em 3 lugares: Purchase disparava do pixel do tema Shopify, do plugin da Hotjar, do GTM client-side e do server-side via Stape. Quatro eventos Purchase pra mesma venda. O Google Ads recebia conversion data inflada, o Smart Bidding achava que tava performando bem, mas o cliente sangrava margem. Refiz a arquitetura de eventos custom em 9 dias. ROAS reportado caiu no primeiro relatório (correto), CPA real subiu menos que o esperado, e em 30 dias o Smart Bidding tava entregando 28% melhor porque finalmente recebia sinal limpo.
Esse post é o que eu queria ter encontrado naquela época.
O Smart Bidding do Google Ads e o CAPI do Meta Ads usam eventos do GA4 (e do Pixel/CAPI direto) como sinal de otimização. Se você manda evento Purchase sem value e currency, o algoritmo otimiza pra quantidade, não pra receita. Se manda lead sem qualificação, o algoritmo otimiza pra qualquer formulário preenchido, inclusive bot e curioso. Evento custom existe pra você mandar exatamente o que importa pro seu funil.
Citation capsule: O GA4 oferece eventos automatic, recommended e custom. Os automatic disparam sozinhos (page_view, session_start, first_visit). Os recommended têm parâmetros pré-definidos (purchase, sign_up, generate_lead). Os custom são qualquer evento que você cria. Limite: 500 eventos custom únicos por property, 25 parâmetros por evento, 50 event-scoped custom dimensions. Fonte: Google Analytics Help.
Na prática, o que move ponteiro de mídia paga é evento que o Smart Bidding consegue otimizar como conversão. Recomendo ler antes meu post sobre conversion tracking de Google Ads com GTM, porque a arquitetura de eventos custom no GA4 precisa conversar com a de conversões do Ads.
Eventos default GA4 vs custom: quando vale criar custom?
Antes de criar evento custom, verifica se existe um recommended event com a mesma semântica. Se existe, usa o nome recomendado (purchase, add_to_cart, generate_lead, sign_up) porque os relatórios pré-construídos do GA4 e os enhanced measurement do Google Ads esperam esses nomes. Inventar compra_realizada em vez de purchase quebra o relatório de monetização e o Smart Bidding fica cego pra value.
GTM é mais robusto que gtag.js direto. No GTM, o evento vive numa Tag versionada, com publicação controlada, preview e QA antes de publicar em produção. gtag.js direto funciona, mas é frágil: mudança de tema, plugin ou framework quebra tracking silenciosamente. Recomendo gtag só pra SPA simples ou quando o time de dev controla tracking via PR review.
Citation capsule: Eventos recommended têm naming convention que o GA4 reconhece automaticamente.
purchaseesperatransaction_id,value,currencyeitems[].generate_leadesperacurrencyevalue. Usar o nome custom equivalente perde os relatórios automáticos. Fonte: Google Recommended Events.
Crio evento custom quando: (1) o evento é específico do meu funil (ex: video_50_percent_watched num lead magnet de vídeo), (2) preciso de parâmetro que nenhum recommended carrega (ex: plan_tier em SaaS), (3) o evento é de qualificação interna (ex: qualified_lead depois do SDR validar).
Como configurar evento custom via GTM (passo a passo)?
Configurar via GTM é mais robusto. gtag.js direto funciona mas é mais frágil porque mudança de tema, plugin ou framework quebra. No GTM, o evento vive numa Tag versionada, com publicação controlada.
O fluxo é: (1) Site dispara dataLayer.push() com nome do evento e parâmetros. (2) GTM tem Trigger que escuta o evento custom. (3) Tag do tipo “Google Analytics: GA4 Event” envia pro GA4 com os parâmetros mapeados. (4) Em GA4 Admin, registra os parâmetros como custom dimensions/metrics pra aparecerem em relatório.
Citation capsule: No GTM, a Tag GA4 Event aceita campo Event Parameters onde você mapeia chave-valor. Parâmetros default (page_location, page_title) são herdados da Configuration Tag. Custom parameters precisam ser registrados em GA4 > Admin > Custom definitions pra ficarem disponíveis em Explorations. Fonte: Simo Ahava blog.
Passo a passo que eu sigo: crio uma Variable do tipo Data Layer Variable pra cada parâmetro (ex: dlv.value, dlv.lead_type). Crio Trigger Custom Event com o nome exato do evento (ex: generate_lead). Crio Tag GA4 Event apontando pra Configuration Tag, com Event Name generate_lead e parâmetros mapeados nas Variables. Publico no Preview, testo no Tag Assistant, publico em produção.
Como configurar evento custom via gtag.js direto?
Se o site não tem GTM (ou se você quer evitar a tag manager por algum motivo), dá pra disparar evento via gtag.js. O código é direto:
// Lead gen
gtag('event', 'generate_lead', {
'currency': 'BRL',
'value': 150.00,
'lead_type': 'demo_request',
'plan_interest': 'enterprise'
});
// E-commerce purchase
gtag('event', 'purchase', {
'transaction_id': 'T_12345',
'value': 297.90,
'currency': 'BRL',
'items': [{
'item_id': 'SKU_001',
'item_name': 'Camiseta Basic',
'item_category': 'Vestuario',
'price': 99.30,
'quantity': 3
}]
});
Citation capsule: gtag.js é a interface direta com GA4 sem camada de tag manager. Funciona, mas perde versionamento, preview e controle de QA. Cada deploy do site arrisca quebrar tracking. Recomendo gtag.js só pra single-page apps simples ou quando o time de dev controla tracking via PR review. Fonte: GA4 Developer Docs.
O equivalente em dataLayer pra GTM:
// Lead gen via GTM
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'generate_lead',
'currency': 'BRL',
'value': 150.00,
'lead_type': 'demo_request',
'plan_interest': 'enterprise'
});
// Purchase via GTM
window.dataLayer.push({
'event': 'purchase',
'ecommerce': {
'transaction_id': 'T_12345',
'value': 297.90,
'currency': 'BRL',
'items': [
{
'item_id': 'SKU_001',
'item_name': 'Camiseta Basic',
'item_category': 'Vestuario',
'price': 99.30,
'quantity': 3
}
]
}
});
Quais eventos eu recomendo pra e-commerce?
Pra e-commerce, o conjunto mínimo viável é: view_item, add_to_cart, begin_checkout, add_payment_info, purchase. Cinco eventos. Não adianta mandar scroll_50, video_watched, newsletter_signup e mais 30 micro-conversões se você não consegue otimizar Smart Bidding em cima de nenhuma delas.
Citation capsule: O Enhanced Ecommerce do GA4 (sucessor do EE no Universal) usa os 5 eventos do funil acima como padrão. Eles populam o relatório Monetization > Ecommerce purchases e alimentam o Item Performance. Mandar parâmetro
items[]em todos é o que destrava o relatório por produto. Fonte: Google Tag Platform Events Reference.
Configurei isso recentemente numa conta usando Performance Max no Google Ads, e o Smart Bidding começou a alocar budget melhor entre asset groups depois que recebia value por SKU. Sem o items[] populado, o PMax otimizava pra Purchase agregado, ignorando que SKU de R$30 e SKU de R$300 têm margem diferente. Tem mais sobre isso no meu post de ROAS no Meta Ads, onde a lógica de value-based bidding é parecida.
Quais eventos eu recomendo pra SaaS e lead gen?
Pra SaaS e lead gen B2B, o funil é: generate_lead (formulário preenchido), qualified_lead (SDR validou, custom event), trial_start (recommended), paid_conversion (custom, primeiro pagamento), expansion (custom, upsell). Cinco eventos de novo. Cada um com value estimado baseado no LTV médio do estágio.
Citation capsule: Em B2B SaaS, o ciclo de venda longo torna o sinal de conversão pobre se você só manda lead bruto. Charles Farina recomenda mandar eventos de qualificação com
value= LTV médio multiplicado pela taxa de conversão histórica do estágio. Isso transforma o GA4 em fonte de sinal de receita esperada, não só de conversão crua. Fonte: Charles Farina blog.
O qualified_lead eu mando via server-side, geralmente do CRM (HubSpot, RD, Salesforce) usando Measurement Protocol API. Assim o lead que o SDR descartou não vira sinal pro Smart Bidding. Recomendo ver como o Google Ads funciona por dentro pra entender por que essa qualificação muda o leilão.
Como mandar parâmetros custom como value, categoria e plan_tier?
Parâmetro custom é o segundo nível depois do nome do evento. Você pode mandar qualquer chave-valor no dataLayer.push() ou no gtag('event', ...). Mas pra esses parâmetros aparecerem em relatório, precisa registrar como Custom Dimension (texto) ou Custom Metric (número) em GA4 Admin.
Citation capsule: GA4 distingue custom dimensions (event-scope ou user-scope) e custom metrics. Event-scope é por evento, user-scope persiste no usuário. Limite: 50 event-scoped + 25 user-scoped custom dimensions e 50 event-scoped custom metrics por property. Parâmetros não registrados são coletados mas não aparecem em Standard Reports. Fonte: GA4 Custom Definitions.
Erro comum: mandar value como string (“150.00”) em vez de número (150.00). O Smart Bidding ignora strings. Outro erro: mandar value em BRL e configurar Property com USD. O GA4 converte automaticamente usando câmbio do dia anterior, e o número fica diferente do que aparece no Shopify. Define a moeda da Property antes de tudo.
Como marcar evento como conversão pra Google Ads e Smart Bidding?
Em GA4 Admin > Events, você liga o toggle “Mark as conversion” no evento. Pronto, virou conversão no GA4. Pra essa conversão ir pro Google Ads, precisa linkar GA4 com Ads e importar a conversão em Ads > Tools > Conversions > Import from GA4. Pra Smart Bidding usar, a conversão precisa ter contagem suficiente (Google recomenda 30+ por 30 dias por campanha).
Citation capsule: Conversões importadas do GA4 chegam no Google Ads com delay de ~9 horas em média (não real-time como gtag.js direto no Ads). Pra Smart Bidding em conta pequena, recomendo manter conversão primária direto no Ads (gtag ou GTM) e usar GA4 como secundária pra análise. Em conta grande com 30+ conversões/dia, GA4 sozinho funciona. Fonte: Google Ads Help.
Configurei recentemente num cliente que rodava Meta Ads e Google Ads em paralelo. Mandar a mesma conversão pra Pixel/CAPI e pro Google via GA4 é onde a duplicação acontece. Tem que decidir: ou desativa GA4 conversion no Ads e usa só gtag direto, ou desativa Pixel server-side e usa só CAPI via GTM server. Não pode ter dois caminhos pro mesmo evento.
Como debugar eventos custom no GA4?
Três ferramentas eu uso, nessa ordem: (1) GTM Preview Mode pra ver se a tag dispara. (2) Tag Assistant pra ver se a request chega no GA4 com os parâmetros certos. (3) DebugView em GA4 (Admin > DebugView) pra ver o evento chegar em tempo real com todos os parâmetros. Ativa debug mode via extensão Chrome “GA Debugger” ou adicionando debug_mode: true no gtag.
Citation capsule: DebugView mostra eventos em tempo real (latência de ~5 segundos) com todos os parâmetros, mas só pra usuários com debug mode ativo. Eventos comuns chegam em Realtime Report com latência de 30 segundos. Já o relatório Standard tem latência de 24-48h. Fonte: GA4 DebugView Help.
Pra dashboards pós-implementação, faço o setup descrito no meu post de dashboards de KPIs em Google Data Studio, conectando GA4 + Google Ads pra cruzar conversion data.
Quais são os erros que mais matam tracking de conversão?
Em ordem de frequência que vejo em auditoria de conta:
- Duplicação de Purchase: plugin do tema + GTM + server-side mandando o mesmo evento. Ajusta com
transaction_idconsistente e desativa fontes redundantes. - Value como string:
"value": "150.00"em vez de"value": 150.00. Quebra Smart Bidding silenciosamente. - Moeda errada: mandar BRL mas Property em USD, ou esquecer
currency. GA4 assume default da Property. - Nome de evento inconsistente:
Purchasenum lugar,purchaseem outro,PURCHASEem outro. GA4 é case-sensitive. - Items[] sem item_id: o relatório de Item Performance fica vazio.
- Parâmetro não registrado como Custom Dimension: coletado mas não aparece em relatório.
- Conversão importada duas vezes: do GA4 e direto via gtag no Ads. Inflaciona conversões.
Citation capsule: Auditoria de tracking de conta de mídia paga revela em média 3-4 problemas de tracking por conta, sendo duplicação de Purchase e value mal formatado os top 2. Resolver isso costuma melhorar CPA reportado em 15-30% sem mudar nada na campanha, porque o Smart Bidding recebe sinal limpo. Fonte: experiência prática em 50+ auditorias.
Pra benchmarks de CPA e ROAS que você deveria estar atingindo depois do tracking limpo, veja meu post de benchmarks de mídia paga no Brasil.
Perguntas frequentes
Qual o limite de eventos customizados no GA4?
500 eventos custom únicos por property. Mas o limite que importa é prático: 5 a 8 eventos bem mapeados ao funil é melhor que 50 eventos mal configurados.
Posso mandar mais de 25 parâmetros num evento?
Não. Limite é 25 parâmetros custom por evento. Se precisar mais, considera dividir em dois eventos ou usar User Properties (limite separado de 25).
Custom dimensions têm limite?
Sim. 50 event-scoped + 25 user-scoped custom dimensions por property. E 50 event-scoped custom metrics. Parâmetro coletado sem ser registrado não vira dimension.
GTM ou gtag.js direto, qual usar?
GTM. Sempre que possível. Versionamento, preview, QA controlado, separação entre time de marketing e dev. gtag.js direto só pra SPA simples ou quando o time de dev controla tracking via PR.
Quanto tempo demora pra evento custom aparecer no GA4?
DebugView: ~5 segundos. Realtime Report: ~30 segundos. Standard Reports: 24-48h. Exploração com dados completos: 24h depois do dia fechar.
Preciso registrar todo parâmetro custom como Custom Dimension?
Só se quiser que apareça em Standard Reports e Explorations. Parâmetros default (page_location, page_title, etc) e os de eventos recommended já vêm registrados. Custom parameters precisam ser registrados manualmente.
