Atena
Analytikos
Mãos digitando em um notebook sobre uma mesa, representando o preenchimento e o envio de um formulário online

Como rastrear envio de formulário com o GTM e medir no GA4

NAVEGAÇÃO RÁPIDA

Mais lidas

Carregando posts...

Em sites de serviço e de geração de leads, o envio de formulário é a conversão principal. Mesmo assim, é uma das medições mais erradas do GA4. O acionador nativo do Google Tag Manager (GTM) falha em formulários AJAX, a mesma submissão é contada duas vezes, tentativas com erro de validação viram “lead” e, pior, e-mails e telefones vazam para os relatórios.

Este guia mostra como escolher o método certo para cada tipo de formulário, configurar o evento generate_lead no GTM, marcá-lo como evento principal, validar no Preview e no DebugView e evitar os erros que distorcem a taxa de conversão. Os números dos exemplos são hipotéticos.

Antes de configurar: o que você precisa decidir

Existem duas decisões. A primeira é o que conta como sucesso: o clique no botão, a tentativa de envio ou a confirmação de que o lead foi recebido. Para o GA4, só a última interessa. A segunda é onde o sucesso fica visível: em uma página de agradecimento, em uma mensagem na mesma página ou em um evento emitido pelo código do formulário.

A resposta à segunda pergunta define o método. Antes de escolher, tenha em mãos o GA4 configurado e o GTM instalado, com acesso de edição às duas ferramentas.

Os métodos de rastreamento, comparados

MétodoComo funcionaPontos fortesPontos fracosConfiabilidade
Acionador de envio de formulário (nativo)O GTM escuta o evento de envio do navegadorSem códigoTende a falhar em formulários AJAX e em páginas de aplicação de página única. Pode disparar com erro de validação se não houver verificaçãoMédia a baixa
Página de agradecimentoO lead é contado quando a página de confirmação carregaSimples e fácil de auditarExige redirecionamento. Recarregar ou acessar a URL direto gera conversão falsaAlta
Visibilidade do elementoO GTM dispara quando a mensagem de sucesso apareceNão depende de desenvolvedorFrágil a mudanças de layout e pode disparar duas vezesMédia
Evento no dataLayerO código do formulário emite um evento no sucessoPreciso, com controle total sobre os dadosDepende de desenvolvedor ou de pluginAlta
Medição otimizada do GA4Coleta automática de form_start e form_submitUm clique para ativarRegistra interação básica, sem garantia de sucesso, e parâmetros exigem dimensões personalizadasBaixa para leads
Tabela: Analytikos (avaliação editorial; a documentação do Google não classifica a confiabilidade)

A leitura da tabela é direta: quando houver como escolher, prefira o evento no dataLayer ou a página de agradecimento. As outras opções servem para casos em que não há apoio de desenvolvimento. A avaliação de confiabilidade é nossa, e não classificação do Google.

Árvore de decisão

Qual método usar?
1
Existe página de agradecimento exclusiva?
Sim: use o acionador de visualização de página nessa URL e proteja contra recarga.
2
É um formulário HTML tradicional, sem AJAX?
Sim: use o acionador de envio de formulário com “Verificar validação” e “Aguardar tags”.
3
O plugin emite evento de sucesso (como o Contact Form 7)?
Sim: escute o evento, empurre ao dataLayer e use um acionador de evento personalizado.
4
Há mensagem de sucesso no DOM, mas nada mais?
Use visibilidade do elemento, restrita à mensagem de sucesso, ou peça ao desenvolvedor um evento no dataLayer.
5
Nenhuma das anteriores?
Peça ao desenvolvedor um evento no dataLayer. Em iframes de terceiros, verifique se o fornecedor emite evento ou redireciona.
Imagem: Analytikos

O fluxo acima resolve a maioria dos casos. A etapa mais problemática é a do formulário AJAX, porque o envio acontece sem recarregar a página, e o acionador nativo pode não perceber a submissão.

Método 1: acionador nativo de envio de formulário

Na documentação do GTM, o acionador de envio de formulário tem duas opções importantes. Aguardar tags adia o envio do formulário até que as tags dependentes disparem ou que um tempo limite expire. Verificar validação dispara a tag apenas quando o formulário é enviado com sucesso. A mesma página explica que você pode restringir o acionador a “Alguns formulários”, o que é recomendado para desempenho, e lista as variáveis incorporadas disponíveis (elemento, classes, ID, destino, URL e texto do formulário).

Passo a passo:

  • No GTM, crie um acionador do tipo Envio de formulário.
  • Marque “Aguardar tags” (com tempo limite) e “Verificar validação”.
  • Em “Este acionador é disparado em”, escolha “Alguns formulários” e restrinja por ID do formulário ou por URL.
  • Crie uma tag de evento do GA4 chamada generate_lead e associe o acionador.

A documentação não trata de formulários AJAX nem de aplicações de página única. Que o acionador nativo tende a falhar nesses casos é uma prática técnica geral, e deve ser confirmada no Preview. Se nada disparar, passe para um dos métodos seguintes.

Método 2: evento no dataLayer (o mais confiável)

Neste método, o código do formulário avisa o GTM quando o envio foi bem-sucedido. A documentação da camada de dados orienta a usar dataLayer.push com um nome de evento, a não sobrescrever a camada (use window.dataLayer = window.dataLayer || [];) e lembra que o nome do evento diferencia maiúsculas de minúsculas. Para entender a camada de dados em detalhe, veja o guia de dataLayer no GTM.

Exemplo genérico, para ser executado apenas quando o servidor ou a interface confirmar o sucesso:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'form_lead_sucesso',
  form_id: 'orcamento-home',
  form_name: 'Orçamento'
});

No GTM, crie um acionador do tipo Evento personalizado com o mesmo nome (form_lead_sucesso) e uma variável de camada de dados para form_id e form_name. Depois, associe-o à tag de evento do GA4.

Exemplo com Contact Form 7

A documentação do plugin informa que, após o envio por AJAX, o plugin emite eventos no navegador, entre eles wpcf7mailsent (e-mail enviado), wpcf7invalid, wpcf7spam, wpcf7mailfailed e wpcf7submit (dispara sempre). Para contar só o sucesso, escute wpcf7mailsent:

document.addEventListener('wpcf7mailsent', function (e) {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    event: 'form_lead_sucesso',
    form_id: String(e.detail.contactFormId),
    form_name: 'cf7'
  });
}, false);

Atenção: o objeto e.detail também traz os valores digitados no formulário. Não copie e.detail.inputs para o dataLayer, porque isso levaria e-mail e telefone para o GTM e, de lá, para o GA4.

Conheça a Orakulo, by Analytikos: WhatsApp, e-mail e atendimento de vários canais no mesmo CRM. Teste 7 dias grátis

Método 3: página de agradecimento e visibilidade do elemento

Página de agradecimento. Crie um acionador de visualização de página com a condição “Caminho da página igual a /obrigado/” (ou uma regex ancorada como ^/obrigado/?$). É simples e fácil de auditar. O risco é a conversão falsa: quem recarrega a página ou digita a URL direto é contado. Mitigue com um tempo de vida na sessão (por exemplo, impedindo nova contagem na mesma sessão) ou, melhor, trocando para o método do dataLayer.

Visibilidade do elemento. O acionador dispara quando a mensagem de sucesso aparece. Restrinja ao seletor exato da mensagem de sucesso e dispare uma vez por página. Sem essas restrições, mensagens ocultas, reexibições e atualizações de layout geram contagens duplicadas. Os nomes exatos dos menus do GTM para esse acionador devem ser conferidos no seu contêiner.

Configurando o evento no GA4

O Google recomenda o evento generate_lead para quando o usuário envia um formulário online ou informações offline. Ele alimenta o relatório de aquisição de leads. Configure a tag de evento do GA4 com esse nome e os parâmetros form_id e form_name, sem dados pessoais. Se o lead tiver valor estimado, consulte a referência de eventos do GA4 para os parâmetros de valor e moeda. Os parâmetros específicos de generate_lead não foram confirmados na documentação aberta para este texto.

Três passos obrigatórios

  • Registrar as dimensões personalizadas. Parâmetros como form_id e form_name só aparecem nos relatórios quando registrados como dimensões personalizadas, conforme a página de medição otimizada. Veja dimensões e métricas personalizadas no GA4.
  • Marcar como evento principal. Em Administrador, Eventos principais, marque generate_lead. No pt-BR, a Ajuda do Google usa “eventos principais” para o que em inglês é “key events”. Veja também eventos-chave no GA4.
  • Conferir a Medição otimizada. A Medição otimizada pode coletar form_start (primeira interação na sessão) e form_submit (envio). Se você usa uma tag própria, avalie desativar a coleta automática de interações com formulário para evitar duplicidade. Ela exige a detecção automática de eventos da tag do Google e não pode coletar dados pessoais.

Para criar o evento sem GTM, a Ajuda do GA4 descreve um tutorial de evento principal baseado no carregamento da página de confirmação. Pode levar de minutos a horas para ser aplicado.

Conheça a Athena, by Analytikos: GA4, loja e mídia em um só painel. Testar 30 dias grátis

Dados pessoais e consentimento

A orientação do Google sobre dados pessoais é clara: e-mail, telefone pessoal e documentos são PII. Não os envie em URLs, títulos de página, parâmetros de evento, dimensões personalizadas, parâmetros UTM nem em ID de usuário. Se um formulário redireciona para uma URL com o e-mail na query string, ajuste o redirecionamento. Nada disso é uma interpretação da LGPD: é política do Google. A adequação à lei exige revisão jurídica.

Sobre consentimento, o GA4 e o GTM trabalham com o Consent Mode, que inclui os sinais ad_user_data e ad_personalization. A página do GTM sobre a política da União Europeia os menciona. Na prática, sem o consentimento de armazenamento de analytics, o evento pode não aparecer no DebugView. Teste os dois cenários.

Como validar

Use o Preview do GTM e o DebugView. A documentação do DebugView indica ativar por Assistente de tags ou pelo parâmetro debug_mode: true. Atenção: definir false não desativa a depuração, é preciso remover o parâmetro.

TesteResultado esperado
Enviar o formulário corretamenteA tag dispara uma vez, generate_lead aparece no DebugView com form_id e sem dados pessoais
Enviar com erro de validaçãoA tag não dispara
Enviar sem consentimentoComportamento conforme sua configuração de Consent Mode
Recarregar a página de agradecimentoNão conta de novo
Verificar a Medição otimizadaSem duplicidade com a tag própria
Marcar como evento principalO evento aparece em Tempo real e em Eventos principais
Tabela: Analytikos

Se o resultado do teste for diferente do esperado, interrompa a publicação. Um acionador que dispara fora de hora distorce semanas de dados antes de alguém notar.

Exemplo numérico (hipotético)

Num mês fictício, a página do formulário recebeu 5.000 sessões. Houve 400 form_start, 120 tentativas de envio e 100 envios válidos.

  • Taxa de conversão de sessão em lead = 100 ÷ 5.000 = 2,0%.
  • Taxa de conclusão = 100 ÷ 400 = 25%.
  • Se o acionador contar as 120 tentativas, a taxa aparece como 120 ÷ 5.000 = 2,4%, um erro de 20% sobre o valor real.

O erro parece pequeno, mas se propaga: o custo por lead de mídia paga fica 17% menor do que o real, e a decisão de escala sai errada. O mesmo vale para a análise de qualidade de dados. Quando o lead entra no CRM, ainda há uma segunda conta a fazer: a que liga o formulário à venda. O Google Ads descreve as conversões otimizadas para leads em enhanced conversions for leads, que envia dados do usuário com hash coletados no formulário e guardados no CRM. É um tema à parte, que exige base legal e consentimento.

Erros comuns

Esta seção reúne os erros por natureza. Cada um traz a causa, o efeito e a correção.

Erros de configuração

ErroPor que aconteceEfeitoComo corrigir
Contar envio com erro de validaçãoAcionador nativo sem “Verificar validação”Leads inflados e taxa de conversão acima do realMarcar a opção ou usar evento de sucesso no dataLayer
Contar duas vezesMedição otimizada ativa e tag própria, ou dois acionadoresTaxa de conversão duplicadaDesativar a coleta automática ou ajustar o acionador
Usar o acionador nativo em formulário AJAXNão há navegação nem envio tradicionalZero envios registradosMudar para dataLayer ou página de agradecimento
Esquecer “Aguardar tags” em formulário que redirecionaO navegador muda de página antes da tag dispararTag cancelada e perda de eventosMarcar “Aguardar tags” com tempo limite
Sobrescrever o dataLayerUso de window.dataLayer = [] no códigoPerda de eventos do GTMUsar window.dataLayer = window.dataLayer || []
Nome do evento diferente entre código e acionadorErro de maiúscula ou digitaçãoA tag não disparaPadronizar o nome e testar no Preview
Parâmetros sem dimensão personalizadaRegistro nunca feitoRelatórios sem form_idRegistrar as dimensões no GA4
Tabela: Analytikos

Erros de interpretação e de privacidade

ErroPor que aconteceEfeitoComo corrigir
Página de agradecimento acessível diretamenteURL sem proteçãoConversões falsasImpedir nova contagem na sessão ou usar dataLayer
Visibilidade do elemento sem restringir o seletorRegra ampla demaisDisparo na carga ou em reexibiçãoRestringir à mensagem de sucesso e disparar uma vez
Enviar e-mail ou telefone no eventoCopiar todos os campos do formulárioViolação da política do Google e risco de LGPDEnviar só identificadores do formulário
Esquecer de marcar como evento principalO evento existe, mas não vira conversãoNão aparece em relatórios de eventos principais nem no Google AdsMarcar em Eventos principais
Deixar o debug_mode ligadoDepuração esquecida ao publicarTráfego de teste misturado e depuração contínuaRemover o parâmetro (não basta mudar para false)
Ignorar o consentimentoTestes só com cookies aceitosPerda de dados ou coleta sem base legalTestar com e sem consentimento
Ler o lead sem olhar a qualidadeFoco na contagemVolume alto e vendas baixasCruzar com o CRM e com a taxa de qualificação
Tabela: Analytikos

Em comum, os erros acima mostram que o rastreamento de formulário é um problema de definição, mais do que de ferramenta: o que conta como lead, onde o sucesso fica visível e quais dados podem sair do site.

Checklist

  • Definição escrita do que é um lead válido.
  • Método escolhido conforme o tipo de formulário.
  • Tag generate_lead com form_id e form_name, sem dados pessoais.
  • Dimensões personalizadas registradas no GA4.
  • Evento marcado como principal.
  • Medição otimizada revisada para evitar duplicidade.
  • Teste de sucesso, de erro de validação, de recarga e de consentimento.
  • debug_mode removido após os testes.

Perguntas frequentes

Qual é o melhor método para rastrear formulário no GTM?

O evento no dataLayer emitido no sucesso do envio. Ele conta só o sucesso e dá controle sobre os dados. Se não houver apoio de desenvolvimento, a página de agradecimento é a alternativa mais auditável.

Por que o acionador de envio de formulário não dispara?

Em formulários AJAX, o envio acontece sem navegação tradicional, e o acionador nativo pode não capturá-lo. A documentação do GTM não trata desse caso, então confirme no Preview e, se necessário, mude para dataLayer.

O que é o evento generate_lead?

É o evento recomendado do GA4 para quando o usuário envia um formulário online ou informações offline. Alimenta o relatório de aquisição de leads e pode ser marcado como evento principal.

Preciso marcar generate_lead como evento principal?

Sim, se quiser tratá-lo como conversão nos relatórios e no Google Ads. No pt-BR, a Ajuda do Google chama de eventos principais o que em inglês é key events.

Posso enviar o e-mail do lead para o GA4?

Não. A política do Google proíbe enviar dados pessoais, como e-mail e telefone, em URLs, parâmetros de evento, dimensões personalizadas e ID de usuário. Envie apenas identificadores do formulário.

A Medição otimizada serve para rastrear leads?

Ela coleta form_start e form_submit, mas não garante que o envio foi bem-sucedido, e os parâmetros exigem dimensões personalizadas. Para leads, use um método próprio e evite duplicidade com a coleta automática.

Como testar antes de publicar?

Use o Preview do GTM para ver se a tag dispara uma vez, e o DebugView do GA4 para conferir o evento e os parâmetros. Teste envio válido, erro de validação, recarga da página e consentimento.

Conteúdos Relacionados

Compartilhar esse post
Facebook
WhatsApp
LinkedIn
Leia também:

Mais lidas

Carregando posts...

Conteúdos Relacionados:

Receba conteúdos exclusivos e novidades

SEO, GEO, GA4, CRM e IA aplicados a e-commerce, direto no seu e-mail.

Analytikos

Estratégia e resultados baseados em dados. SEO, GEO, CRM e IA para e-commerce, de Itajaí (SC) para o Brasil.

© 2026 Analytikos. Todos os direitos reservados.
Rolar para cima