Eventos Customizados no GA4: Como Configurar pra Mídia Paga

Eventos Customizados no GA4: Como Configurar pra Mídia Paga - ilustração editorial

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ê.

GP
Por Giorgio Pasquale
·
Especialista em mídia paga
TL;DR · Em 3 linhas

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.

500Eventos custom por property GA4

Limite duro do GA4 por property, mais 25 parâmetros custom por evento e 50 dimensões custom event-scope. O número que move ponteiro, porém, é 5 a 8 eventos bem mapeados ao funil real.

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.

★ Importante

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. purchase espera transaction_id, value, currency e items[]. generate_lead espera currency e value. 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.

1dataLayer.push
2Trigger GTM
3Tag GA4 Event
4GA4 Property
5Conversão Ads

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.

+28%ROAS reportado em 30 dias

Conta de e-commerce de moda, 7 dígitos/mês em ad spend. Refiz arquitetura de eventos custom em 9 dias, parei de mandar Purchase de 4 fontes redundantes e deixei o Smart Bidding receber sinal limpo. ROAS reportado caiu no primeiro relatório (correto), e em 30 dias subiu 28%.

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_id consistente 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: Purchase num lugar, purchase em outro, PURCHASE em 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.

Rolar para cima