1. Início
  2. Blog
  3. UTM Contact Form 7
Contact Form 7

Como rastrear UTMs no Contact Form 7

O Contact Form 7 é um dos plugins de formulário mais usados no WordPress, mas por padrão ele não captura nenhuma informação sobre a origem do visitante. Veja como resolver isso — desde a abordagem manual com campos hidden até a integração automática.

O problema com CF7 e UTMs

Quando um visitante preenche um formulário do Contact Form 7, você recebe por e-mail os dados que ele digitou — nome, e-mail, mensagem, telefone. Mas não recebe nenhuma informação sobre como ele chegou até ali.

Para fechar essa lacuna e saber se aquele lead veio do Google Ads, de um e-mail marketing ou de um post orgânico, você precisa capturar os parâmetros UTM e incluí-los no envio do formulário.

O desafio: UTMs que somem antes do formulário

O cenário mais simples é: o visitante clica no anúncio, chega na página com UTMs na URL, vê o formulário nessa mesma página e converte. Nesse caso, ler os parâmetros da URL atual funciona.

O problema é que muitos fluxos são mais longos:

  • O formulário está numa página diferente da landing page
  • O usuário navega pelo site antes de converter
  • O usuário sai, volta dias depois e converte

Em todos esses casos, os UTMs da URL de entrada não estarão mais disponíveis quando o formulário for submetido. É necessário um mecanismo que persista os dados entre páginas e visitas.

Para entender a fundo por que isso acontece, veja: Como descobrir de qual campanha veio um lead no WordPress.

Opção 1: campos ocultos com JavaScript

A abordagem manual envolve:

  1. Adicionar campos [hidden] ao formulário CF7
  2. Escrever um script JavaScript que lê UTMs da URL e preenche esses campos

No editor do CF7, adicione os campos ocultos:

[hidden utm_source id:utm_source]
[hidden utm_medium id:utm_medium]
[hidden utm_campaign id:utm_campaign]

No functions.php ou em um plugin customizado, adicione o script:

add_action('wp_footer', function() { ?>
<script>
document.addEventListener('DOMContentLoaded', function() {
    var params = new URLSearchParams(window.location.search);
    var fields = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'];
    fields.forEach(function(name) {
        var val = params.get(name) || sessionStorage.getItem(name) || '';
        // Salva no sessionStorage para persistir entre páginas
        if (params.get(name)) sessionStorage.setItem(name, params.get(name));
        var input = document.querySelector('input[name="' + name + '"]');
        if (input) input.value = val;
    });
});
</script>
<?php }); 
Limitação desta abordagem O sessionStorage persiste apenas enquanto a aba do navegador está aberta. Se o usuário fechar o navegador e voltar dias depois, os dados não estarão mais disponíveis. Para rastrear retornos de longo prazo, é necessário usar cookies ou armazenamento server-side.

Opção 2: integração nativa com plugin de rastreamento

Uma abordagem mais robusta e sem código manual é usar um plugin que já tenha integração nativa com o Contact Form 7.

O UTM Tracker DL tem integração nativa com CF7: quando um formulário é enviado com sucesso (hook wpcf7_mail_sent), o plugin captura automaticamente os dados de atribuição do visitante atual — incluindo First Touch e Last Touch — e registra um lead associado a esse envio.

Não é necessário modificar o formulário nem adicionar campos ocultos manualmente para o registro da conversão no painel do plugin.

Como funciona a integração com UTM Tracker DL

O que acontece nos bastidores:

  1. O visitante chega ao site via link com UTMs (ex: de um Google Ads)
  2. O plugin detecta os UTMs na requisição PHP e os armazena no banco de dados, associando um identificador de visitante em cookie first-party
  3. O visitante pode navegar por várias páginas — os dados de First Touch estão armazenados
  4. Se o visitante retornar com novos UTMs, o Last Touch é atualizado
  5. Quando o formulário CF7 é enviado com sucesso, o plugin registra automaticamente um lead com o snapshot de First Touch e Last Touch daquele visitante

Incluindo dados UTM no e-mail do CF7 (opcional)

Se você quiser que os dados UTM também apareçam no e-mail enviado pelo CF7 para você, é necessário adicionar campos hidden ao formulário e populá-los. O UTM Tracker DL disponibiliza os dados via JavaScript para inputs com o atributo data-utmdl:

<!-- No template do formulário CF7 -->
[hidden first_source id:first_source ""]
[hidden last_source id:last_source ""]
[hidden first_campaign id:first_campaign ""]
<!-- No HTML da página, nos inputs ocultos gerados pelo CF7 -->
<!-- Adicione os atributos via JS ou via snippet -->
<input type="hidden" name="first_source" data-utmdl="first_source">

O script do plugin lê o objeto utmdlData localizado server-side e preenche automaticamente todos os inputs que tenham o atributo data-utmdl com o valor correspondente.

O que você recebe em cada lead

Com a integração ativa, cada lead registrado no UTM Tracker DL contém:

DadoFirst TouchLast Touch
Source
Medium
Campaign
Term
Content
Landing page
Referrer
Click ID (gclid, fbclid, etc.)

Esses dados ficam disponíveis no painel do WordPress (UTM Tracker DL → Leads) e podem ser exportados em CSV.

Limitações a considerar

  • Usuários sem cookie: visitantes que bloqueiam cookies não são rastreados corretamente.
  • Janela de atribuição: o cookie tem duração configurável. Leads que convertem após muito tempo podem não ter First Touch disponível.
  • Não substitui um CRM: o plugin registra leads com dados UTM, mas não é um sistema de gestão de relacionamento. Para acompanhamento completo do lead, você ainda precisa do seu CRM ou ferramenta de e-mail marketing.

Quer registrar automaticamente as UTMs dos seus leads do Contact Form 7?

O UTM Tracker DL tem integração nativa com CF7: cada envio de formulário registra First Touch e Last Touch sem nenhuma configuração adicional.

Baixar gratuitamente