Analytics · Conversões · Tutorial

Como rastrear envio de formulário no Google Analytics?

Para rastrear envio de formulário no Google Analytics, o método confiável é o site enviar generate_lead ao dataLayer só quando o envio é confirmado e o GTM disparar a tag do GA4 a partir dele. O form_submit automático conta cliques, não envios.

Renan Quintanilia, fundador do Grupo KOP, autor do artigo Como rastrear envio de formulário no Google Analytics
Renan QuintaniliaFundador · Grupo KOP
Publicado em 22 de outubro de 2026Analytics · 12 min de leitura

O formulário é a segunda conversão mais comum de um site de serviço, e a mais mal medida. O Google Analytics 4 tem um evento automático chamado form_submit, que muita gente ativa e passa a confiar; ele dispara quando o botão é clicado, não quando o envio é confirmado, e por isso conta tentativas com erro, campos obrigatórios vazios e cliques duplos. O resultado é uma taxa de conversão inflada e campanhas otimizando para pessoas que nunca enviaram nada.

Este tutorial compara os quatro métodos de medição de formulário, mostra o mais confiável (o site avisa o GTM só no sucesso), explica o que fazer em cada plataforma (HTML próprio, WordPress, construtores, sites por IA), como testar, como marcar como evento-chave e como levar a conversão para o Google Ads.

Os quatro métodos para rastrear envio de formulário

MétodoComo funcionaConfiabilidadeQuando usar
Página de obrigadoApós o envio, o site redireciona para /obrigado; a conversão é a visualização dessa páginaAlta, se o redirecionamento só acontece no sucessoFormulários que redirecionam; o mais simples
dataLayer no sucessoO código do formulário executa dataLayer.push({event: "generate_lead"}) quando o servidor confirma o envioMuito altaPadrão recomendado; formulários sem redirecionamento (AJAX)
Acionador "Envio de formulário" do GTMO GTM escuta o evento submit do navegadorMédia; falha em formulários por JavaScript e conta envios inválidosFormulários HTML simples sem validação por script
Medição otimizada do GA4 (form_submit)Evento automático ao interagir e enviarBaixa para conversão; conta cliques no botãoSó como indicador de interação, nunca como conversão

A regra: medir o sucesso, não a tentativa. Só os dois primeiros métodos garantem isso.

Método 1: rastrear formulário pela página de obrigado

O mais simples quando o formulário redireciona após o envio.

  1. Confirmar que o formulário redireciona para uma URL própria (ex.: /obrigado) apenas quando o envio dá certo.
  2. Colocar a página de obrigado com noindex (meta robots), para não aparecer no Google.
  3. No GTM: Acionadores › Novo › Visualização de página › Algumas visualizações › Page Path contém /obrigado.
  4. Tags › Nova › Evento do GA4 › nome generate_lead › parâmetro form_id (ou form_name) com um valor fixo ("contato") e page_path com a variável Referrer ou um parâmetro na URL de obrigado (/obrigado?form=contato&from=implante).
  5. Testar: enviar o formulário, cair na página de obrigado, ver o evento no DebugView.

Limite

Se a pessoa recarrega a página de obrigado ou a acessa direto, conta de novo. Para evitar, o redirecionamento pode incluir um parâmetro único ou a página pode bloquear acesso direto. Para a maioria dos sites de serviço, o erro é pequeno.

Método 2 (recomendado): dataLayer no sucesso do envio

É o método que mede exatamente o que importa: a confirmação de que a mensagem foi enviada. Exige uma linha no código do formulário, no ponto em que o servidor responde com sucesso.

No código do site

No retorno de sucesso do formulário (a função que mostra "Mensagem enviada"), inserir: window.dataLayer = window.dataLayer || []; window.dataLayer.push({event: "generate_lead", form_id: "contato", form_page: window.location.pathname, service: valorDoCampoServico});

No GTM

  1. Variáveis › Nova › Variável da camada de dados › nome form_id; repetir para form_page e service.
  2. Acionadores › Novo › Evento personalizado › nome do evento generate_lead.
  3. Tags › Nova › Evento do GA4 › nome generate_lead › parâmetros form_id = {{dlv - form_id}}, form_page = {{dlv - form_page}}, service = {{dlv - service}} › acionador generate_lead.
  4. Testar no modo de visualização: ao enviar com sucesso, o evento personalizado aparece na linha do tempo com a tag disparada; ao enviar com erro, nada dispara.

Por que o nome generate_lead

É um evento recomendado do GA4 (nome reservado com significado de "lead gerado"), que aparece com tratamento especial em relatórios e na importação para o Ads. Usar o nome recomendado evita criar um evento personalizado quando já existe um padrão.

Método 3: acionador de envio de formulário do Google Tag Manager

O GTM tem um acionador nativo "Envio de formulário". Funciona em formulários HTML clássicos que enviam a página; falha nos formulários modernos, que enviam por JavaScript sem recarregar e muitas vezes interrompem o evento submit.

  1. Variáveis › Configurar › marcar Form ID, Form Classes, Form URL.
  2. Acionadores › Novo › Envio de formulário › marcar "Aguardar tags" e "Verificar validação" › Alguns formulários › Form ID igual a [id do formulário].
  3. Tag do GA4 com evento generate_lead e form_id = {{Form ID}}.
  4. Testar com envio válido e com envio inválido: se o inválido também dispara, o método não serve para esse formulário.

Sinais de que não funciona

  • O formulário mostra "enviado" sem recarregar e o GTM não registra nada.
  • O acionador dispara ao clicar em "Enviar" mesmo com campos vazios.
  • O formulário é de um plugin ou serviço externo (embed) que roda em iframe: o GTM da página não enxerga.

Como rastrear formulário em cada plataforma

PlataformaMétodo recomendadoComo
HTML próprio (feito à mão, ChatGPT, exportado do Lovable)dataLayer no sucessoUma linha no retorno de sucesso do script de envio
WordPress com Contact Form 7dataLayer no sucessoOuvir o evento wpcf7mailsent e fazer o push; ou plugin que já envia ao dataLayer
WordPress com Elementor / WPForms / GravitydataLayer ou página de obrigadoConfiguração de "ação após envio": redirecionar para /obrigado ou executar script
WixPágina de obrigado ou integração nativaConfigurar redirecionamento após envio; ou usar o evento de formulário da integração do GA4 do Wix
Hostinger Website BuilderPágina de obrigadoConfigurar a página de sucesso do formulário e medir a visualização
LovabledataLayer no sucessoPedir no chat: "no sucesso do envio do formulário, execute dataLayer.push({event: 'generate_lead', form_id: 'contato'})"
Formulário externo em iframe (Typeform, RD, HubSpot)Evento da própria ferramenta ou página de obrigadoEssas ferramentas enviam mensagens de conclusão que o GTM pode escutar, ou redirecionam

Como instalar o GTM em cada plataforma está em como instalar o Google Tag Manager no site.

Como testar o rastreamento do formulário

  1. Modo de visualização do GTM conectado ao site.
  2. Envio inválido (campo obrigatório vazio): nenhuma tag de conversão deve disparar.
  3. Envio válido: o evento generate_lead aparece na linha do tempo com a tag do GA4 em "Tags Fired" e os parâmetros corretos.
  4. DebugView do GA4: o evento aparece com form_id e form_page.
  5. Repetir em celular.
  6. Conferir que o e-mail do formulário chegou (medição boa de formulário que não entrega não serve).
  7. Publicar o contêiner com descrição.

Como conferir depois de publicado

Comparar, a cada mês, o número de eventos generate_lead no GA4 com o número de e-mails recebidos pelo formulário. Diferença de até 10% é aceitável; acima disso, um dos dois lados está errado. A verificação geral está em como saber se o Google Analytics está funcionando.

Como transformar o envio de formulário em evento-chave e conversão do Ads

  1. No GA4: Administrador › Eventos › localizar generate_lead › ativar "Marcar como evento-chave" (ou criar em Eventos-chave › Novo).
  2. Em Definições personalizadas, registrar form_id e service como dimensões para usar nos relatórios.
  3. No Google Ads, importar o evento-chave como conversão (Metas › Conversões › Importar › GA4) com contagem "Uma"; ou criar uma tag de conversão do Ads ligada ao mesmo acionador generate_lead, como em como criar uma tag de conversão no Google Tag Manager.
  4. Ver a taxa de conversão por página e canal em Aquisição de tráfego, como em como calcular a taxa de conversão do site.

Exemplo

Uma escola media formulários pelo form_submit automático e registrava 90 "conversões" por mês. Ao mudar para o dataLayer no sucesso, caíram para 31, o número real de pedidos de visita. A campanha de matrículas, que otimizava para o evento inflado, passou a otimizar para o real; em dois meses, os pedidos subiram para 48 com o mesmo orçamento.

Código de exemplo: formulário HTML que avisa o GTM só no sucesso

Para quem tem um site em HTML (feito à mão, pelo ChatGPT ou exportado), o trecho abaixo mostra a lógica completa de um formulário que envia por JavaScript e só registra a conversão quando o servidor confirma. O assistente de IA escreve o código a partir desta descrição.

Estrutura

  1. Um formulário com id="form-contato", campos nome, WhatsApp, serviço (seleção) e mensagem, e um botão "Enviar".
  2. Um script que intercepta o envio (evento submit), impede o recarregamento, valida os campos e envia os dados para o serviço de e-mail (um endpoint próprio, um serviço como FormSubmit ou a função do construtor).
  3. No retorno de sucesso (resposta 200), o script: mostra a mensagem "Recebemos sua mensagem"; executa window.dataLayer.push({event: "generate_lead", form_id: "contato", form_page: location.pathname, service: valorSelecionado}); e, opcionalmente, redireciona para /obrigado.
  4. No retorno de erro, mostra "Não foi possível enviar; fale pelo WhatsApp" e não executa o push.

Pedido ao assistente

"Escreva o HTML e o JavaScript de um formulário de contato com os campos nome, WhatsApp, serviço (opções: [lista]) e mensagem, que envia por fetch para [endpoint] sem recarregar a página. Valide os campos obrigatórios. Só quando a resposta for de sucesso, mostre uma mensagem de confirmação e execute window.dataLayer.push({event: 'generate_lead', form_id: 'contato', form_page: window.location.pathname, service: [valor do campo serviço]}). Em caso de erro, mostre uma mensagem com link para o WhatsApp e não execute o push."

No GTM, para esse formulário

ItemConfiguração
Variáveisdlv - form_id, dlv - form_page, dlv - service (Variável da camada de dados)
AcionadorTrigger - CE - generate_lead (Evento personalizado, nome generate_lead)
Tag GA4GA4 - Evento - generate_lead com os três parâmetros
Tag Ads (se houver campanha)Ads - Conversão - Lead Formulário, mesmo acionador
GA4generate_lead como evento-chave; form_id e service como dimensões personalizadas

Teste em quatro cenários

  1. Campo obrigatório vazio: nada dispara.
  2. Endpoint fora do ar (simular desligando a rede): mensagem de erro, nada dispara.
  3. Envio correto no computador: evento com os três parâmetros no DebugView.
  4. Envio correto no celular: idem.

Esse é o mesmo padrão que os sites do Grupo KOP usam em formulários, Jornadas e simuladores: a conversão só existe quando o contato chegou.

Formulários que abrem em pop-up ou em várias etapas

Formulários em pop-up seguem a mesma regra: o push acontece no sucesso do envio, não na abertura do pop-up. Formulários de várias etapas (quiz, pré-qualificação) merecem dois eventos: um de início (journey_open, evento comum) e um de conclusão (journey_complete ou generate_lead, evento-chave). A taxa entre os dois mostra onde as pessoas desistem, e as etapas intermediárias podem enviar um parâmetro step para análise de funil no GA4 (Explorar › Funil).

Formulários do WhatsApp Business e agendamento externo

Quando o contato termina fora do site (um link que abre o WhatsApp com os dados preenchidos, ou um sistema de agendamento em outro domínio), o site só consegue medir o clique de saída. Nesses casos, o evento é o clique (whatsapp_click ou schedule_click), e a conclusão é registrada pela equipe ou pelo sistema externo. Tentar medir a conclusão pelo site produz zero ou números inventados.

Resumo de decisão por tipo de formulário

TipoMétodoEvento
Contato simplesdataLayer no sucesso ou página de obrigadogenerate_lead
Pré-qualificação em etapasdataLayer no início e na conclusãojourney_open / journey_complete
Agendamento externoClique de saídaschedule_click
NewsletterdataLayer no sucessosign_up
Download de materialMedição otimizada ou cliquefile_download

Em todos os tipos, a regra é a mesma: o evento-chave é a conclusão confirmada, e o início é evento comum. Com essa separação, o relatório de Eventos mostra o funil de cada formulário sem precisar de ferramenta extra.

Erros comuns ao rastrear envio de formulário

  1. Usar form_submit da medição otimizada como conversão: conta cliques.
  2. Acionador de clique no botão "Enviar": mesma coisa.
  3. Página de obrigado acessível direto e indexada: conversões falsas e página no Google.
  4. Push do dataLayer antes da confirmação do servidor: conta envios que falharam.
  5. Formulário em iframe medido pelo GTM da página: nada dispara.
  6. Nomes de evento diferentes por formulário (contato, contato_enviado, lead): consolidar em generate_lead com form_id.
  7. Não registrar form_id como dimensão: impossível saber qual formulário converte.
  8. Medir e não entregar: e-mail do formulário caindo em spam ou não chegando.

Perguntas sobre rastrear envio de formulário

Como rastrear envio de formulário no Google Analytics

O método mais confiável é o site executar dataLayer.push({event: "generate_lead"}) só quando o envio é confirmado e o GTM disparar a tag do GA4 a partir desse evento; alternativas são a página de obrigado e o acionador de formulário do GTM.

O evento form_submit do GA4 serve como conversão

Não. Ele dispara na interação com o botão, contando tentativas com erro. Serve apenas como indicador de interação.

O que é generate_lead

Um evento recomendado do GA4 para lead gerado; usar esse nome evita criar eventos personalizados e facilita relatórios e importação para o Ads.

Como rastrear formulário no WordPress

Com o evento de sucesso do plugin (ex.: wpcf7mailsent no Contact Form 7) enviando ao dataLayer, ou redirecionando para uma página de obrigado.

Como rastrear formulário no Wix ou na Hostinger

Configurando uma página de sucesso após o envio e medindo a visualização dela no GTM, ou usando a integração nativa de GA4 quando disponível.

Como rastrear formulário em site feito no Lovable

Pedindo no chat para executar dataLayer.push({event: "generate_lead"}) no sucesso do envio e criando o acionador de evento personalizado no GTM.

Como saber se a medição do formulário está certa

Comparando mensalmente os eventos generate_lead no GA4 com os e-mails recebidos; diferença acima de 10% indica erro.

Como levar o formulário para o Google Ads

Marcando generate_lead como evento-chave e importando no Ads, ou criando uma tag de conversão do Ads ligada ao mesmo acionador.

Resumo · como rastrear envio de formulário no Google Analytics

  1. Medir o sucesso, não a tentativa: form_submit automático e clique no botão não servem como conversão.
  2. Recomendado: dataLayer.push generate_lead no retorno de sucesso + acionador de evento personalizado no GTM.
  3. Alternativa simples: página de obrigado com noindex e acionador de visualização.
  4. Acionador de formulário do GTM: só para HTML clássico; testar envio inválido.
  5. Por plataforma: HTML/Lovable (dataLayer), WordPress (evento do plugin), Wix/Hostinger (página de obrigado), iframe (evento da ferramenta).
  6. Testar: inválido não dispara, válido dispara; DebugView; celular; e-mail chegou.
  7. Evento-chave no GA4, dimensões form_id e service, conversão no Ads com contagem "Uma".

Medir o formulário no sucesso muda o número e muda as decisões: a taxa cai para a real e as campanhas passam a otimizar por lead de verdade. O Grupo KOP entrega essa medição em todos os pontos de captação de cada site e a usa para operar campanhas, como mostra a página de Google Ads. O próximo passo é entender o que são eventos no Google Analytics 4.

Renan Quintanilia, fundador e diretor do Grupo KOP, autor de Como rastrear envio de formulário no Google Analytics
Sobre o autor

Renan Quintanilia

Fundador e Diretor · Grupo KOP

Atua há mais de 10 anos com marketing digital especializado em Google. Fundou a KOP em 2016 e desde então constrói operações digitais auditáveis para profissionais regulamentados e empresas em todo o Brasil. Especialista em SEO técnico, Google Ads, GEO, recuperação de sites e Google Search Console, escreve sobre o que aplica todos os dias nos clientes da agência.

A KOP mede formulários, Jornadas e simuladores no sucesso e otimiza campanhas por lead real.

Ler ajuda. Aplicar resolve.

Responda cinco perguntas e descubra se a KOP é para a sua empresa. A tabela de preços abre no fim da Jornada; o orçamento vai pronto para o WhatsApp.

Agência de Google Ads