Quando um lead chega sem origem, a empresa perde parte da historia. O contato pode ser bom, mas fica dificil saber se veio de Google Ads, busca organica, LinkedIn, indicacao, artigo tecnico, material gratuito ou acesso direto. Sem essa trilha, a decisao de investimento vira adivinhacao.
Em sites com React, formularios, Google Ads, Analytics, AdSense e backend proprio, origem de lead nao e apenas assunto de marketing. Ela depende de URL, navegador, captura no frontend, preservacao durante a sessao, envio para a API, persistencia no banco e exibicao no e-mail de notificacao.
Este guia organiza uma investigacao pratica para pequenas empresas descobrirem por que um lead chegou sem origem e como reduzir esse problema nas proximas conversoes.
1. Primeiro, defina o que significa sem origem
Antes de corrigir, separe os cenarios. Um lead pode estar sem UTM, mas ainda ter landing page. Pode estar sem referrer, mas ter source page. Pode ter vindo de acesso direto real. Ou pode ter perdido dados por falha tecnica.
Campos que ajudam a interpretar:
utm_source: origem informada pela campanha;utm_medium: meio, como cpc, social, email ou referral;utm_campaign: campanha;landing_page: primeira pagina acessada na sessao;source_page: pagina onde o formulario foi enviado;referrer: pagina anterior informada pelo navegador;gclid: identificador de clique do Google Ads, quando usado.
Um contato sem UTM nao esta necessariamente sem origem. Ele pode ter vindo de busca organica, link direto, favorito, WhatsApp, aplicativo ou navegador que removeu referrer.
2. Compare e-mail, banco e ferramenta de analytics
O e-mail de notificacao e a parte mais visivel, mas nao deve ser a unica fonte. Se o e-mail mostra hifen nos campos de UTM, ainda vale conferir se o banco recebeu algum dado e se a ferramenta de analytics registrou a visita.
Verifique:
- corpo do e-mail recebido;
- registro salvo na tabela de contatos;
- payload enviado pelo frontend, quando testado em ambiente controlado;
- eventos de analytics ou Google Ads;
- logs do backend durante o envio;
- pagina que o usuario informou na mensagem, se houver pista textual.
Se o banco tem origem e o e-mail nao mostra, o problema pode estar no template da notificacao. Se o payload ja chega sem origem, investigue frontend e URL de entrada. Se o frontend captura, mas a API nao salva, investigue DTO, mapper e persistencia.
3. Reproduza com uma URL de teste
A melhor forma de separar comportamento real de suposicao e criar um teste controlado. Abra uma URL com UTMs claras e envie um contato de teste.
Exemplo:
/diagnostico-tecnico?utm_source=google&utm_medium=cpc&utm_campaign=teste_origem_lead&utm_content=debug
Depois confira se esses valores aparecem:
- na URL inicial;
- no armazenamento de sessao, se o site usa preservacao de atribuicao;
- no payload do formulario;
- no registro salvo no backend;
- no e-mail interno;
- nos relatorios de medicao, depois do tempo normal de processamento.
Esse teste mostra onde a trilha se perde.
4. Em sites React, preserve a atribuicao da primeira entrada
Aplicacoes React podem navegar internamente sem recarregar a pagina. Se o visitante entra por um artigo com UTM, clica em um CTA e depois envia formulario em outra rota, a URL final pode nao ter mais parametros. Sem preservacao de sessao, o formulario envia origem vazia.
Um fluxo mais robusto:
- ao carregar a primeira rota, ler UTMs da URL;
- salvar landing page e referrer da sessao;
- preservar esses dados durante navegacao interna;
- ao enviar formulario, combinar pagina atual com atribuicao original;
- limpar ou renovar a atribuicao conforme a politica definida.
O artigo Tag Assistant e conversao no Google Ads em site React aprofunda a validacao desse fluxo em SPA.
5. Entenda quando o referrer pode estar vazio
Referrer nao e garantia. Navegadores, aplicativos, configuracoes de privacidade e politicas de origem podem remover ou reduzir esse dado. Por isso, ele deve ser tratado como sinal auxiliar, nao como unica fonte de atribuicao.
O referrer pode vir vazio quando:
- a pessoa digitou o endereco direto;
- abriu por favorito;
- veio de aplicativo que nao repassa origem;
- o site anterior usa politica restritiva de referrer;
- houve troca entre ambientes ou protocolos;
- extensoes ou navegadores bloquearam parte da medicao.
Quando o referrer falta, a landing page e a source page ainda ajudam a entender o caminho dentro do site.
6. Confira o sufixo de URL nas campanhas
Se a campanha deveria mandar UTM, mas o lead chegou sem UTM, confira primeiro a propria configuracao do anuncio. O problema pode estar antes do site.
Revise:
- sufixo de URL final no Google Ads;
- URL final do anuncio;
- parametros em nivel de campanha, grupo ou anuncio;
- redirecionamentos que removem query string;
- encurtadores de link;
- links copiados manualmente para publicacoes sociais;
- nomenclatura de campanha.
O artigo Google Ads, UTM e formulario de contato mostra uma base simples de padronizacao.
7. Investigue redirecionamentos e canonicalizacao
Alguns redirecionamentos removem parametros da URL sem que a equipe perceba. Isso pode acontecer em regras de Nginx, Cloudflare, frontend, encurtadores ou paginas antigas.
Teste:
- abrir a URL com UTM e ver se os parametros continuam depois do carregamento;
- testar dominio com e sem www;
- testar HTTP para HTTPS;
- testar barra final e rota React;
- verificar se alguma regra limpa query string;
- conferir se o link de campanha aponta para a rota correta.
Se a UTM some antes do React ler a URL, o problema esta no caminho de entrada, nao no formulario.
8. Valide o payload do formulario
Quando a URL esta certa e a atribuicao esta salva, o proximo ponto e o payload enviado para o backend. Abra as ferramentas de desenvolvedor, envie um teste e confira a requisicao.
Procure:
- se
utmSource,utmMediumeutmCampaignforam enviados; - se
landingPageereferreraparecem; - se
sourcePagerepresenta a pagina atual; - se campos vazios viram nulo, hifen ou string vazia;
- se erro de validacao remove campos opcionais;
- se o envio acontece antes da atribuicao estar carregada.
Um payload correto e uma prova forte de que o frontend fez a parte dele.
9. Valide DTO, mapper e banco no backend
Depois do payload, a origem ainda precisa atravessar a API. Em backend Java ou Spring Boot, um campo pode se perder por DTO incompleto, nome divergente, mapper sem atribuicao ou coluna inexistente.
Checklist de backend:
- DTO de entrada possui os campos de origem?
- nomes JSON batem com o frontend?
- mapper copia os campos para o dominio?
- entidade JPA possui as colunas?
- migration foi aplicada em producao?
- e-mail de notificacao usa os campos salvos?
- logs indicam erro de persistencia ou validacao?
A pagina de evidencias tecnicas ajuda a registrar essas verificacoes sem expor dados pessoais demais.
10. Diferencie ausencia real de falha de captura
Nem todo lead sem UTM e problema. Trafego organico, acesso direto, favoritos e indicacoes podem chegar sem parametros. O problema e quando leads que deveriam ter origem rastreada chegam sem nada.
Compare por tipo:
- Google Ads: deveria ter UTM, gclid ou pelo menos sinal de campanha;
- LinkedIn ou redes sociais: deveria ter UTM se o link foi publicado com parametro;
- Busca organica: pode nao ter UTM, mas landing page e analytics ajudam;
- Acesso direto: pode nao ter referrer nem UTM;
- Material gratuito: deve registrar material slug, titulo ou URL quando houver.
Essa separacao evita corrigir o que nao esta quebrado e ajuda a priorizar o que afeta investimento.
11. Melhore o e-mail de notificacao para investigacao
O e-mail de lead deve ajudar a equipe a agir. Ele nao precisa mostrar dado tecnico demais, mas precisa expor os sinais principais de origem.
Inclua, quando existirem:
- interesse selecionado;
- source page;
- landing page;
- referrer;
- UTM source, medium e campaign;
- UTM content e term;
- material relacionado;
- horario do recebimento;
- identificador interno do contato, se for util.
Se o e-mail sempre mostra hifen, mas o banco salva valores, ajuste a notificacao. Se nem o banco salva, volte para frontend e API.
12. Crie um playbook simples
Quando aparecer um lead importante sem origem, a equipe deve ter um roteiro curto. Isso evita depender de memoria ou tentativa aleatoria.
- identificar o ID ou horario do lead;
- conferir banco e e-mail;
- verificar se havia UTM esperada;
- reproduzir a pagina com UTM de teste;
- validar payload do formulario;
- conferir logs do backend;
- checar redirecionamentos;
- validar campanha ou link externo;
- registrar causa provavel;
- criar acao preventiva.
O playbook de conversao Google Ads sem rastreamento e um bom ponto de partida quando a origem perdida envolve campanha paga.
Erros comuns
- concluir que todo lead sem UTM esta quebrado;
- nao salvar landing page;
- depender apenas de referrer;
- perder UTM ao navegar em SPA;
- usar redirecionamento que remove parametros;
- enviar payload sem origem ao backend;
- criar migration local e esquecer producao;
- mostrar origem no banco, mas nao no e-mail;
- nao testar com URL controlada.
Checklist minimo
- Padronizar UTMs para campanhas.
- Salvar landing page e referrer da sessao.
- Preservar atribuicao durante navegacao React.
- Enviar origem no payload do formulario.
- Persistir campos no backend.
- Mostrar origem no e-mail interno.
- Testar redirecionamentos com query string.
- Validar campanhas com URL de teste.
- Separar trafego direto real de falha tecnica.
- Registrar evidencias e causa provavel.
Lead sem origem nao precisa virar misterio. Com alguns campos bem escolhidos e um roteiro de investigacao, a empresa entende se houve ausencia real de dados, falha de campanha, perda na navegacao ou problema no backend.
Para quem investe em conteudo, Google Ads, AdSense, recomendacoes e materiais gratuitos, essa clareza ajuda a decidir onde melhorar. O site deixa de ser apenas uma vitrine e passa a ser uma fonte de aprendizado sobre o proprio publico.
Termos tecnicos desta leitura
Alguns conceitos aparecem com frequencia neste tema. Abrir o glossario ajuda a comparar definicoes, exemplos e leituras relacionadas sem sair do contexto do artigo.