UTMs que chegam até o checkout: como não perder a origem da venda

UTM é o jeito mais simples de saber de onde veio uma venda: qual campanha, qual conjunto, qual anúncio. O problema é que ela costuma morrer no meio do caminho, entre a landing page e o checkout, e poucas operações conseguem levar as UTMs até o checkout.

Como a UTM se perde

O anúncio leva a pessoa para:

https://suaoferta.com.br/?utm_source=facebook&utm_campaign=lancamento&utm_content=video-03

Daí ela:

  • clica num botão que leva para https://checkout.gateway.com/produto/123, sem os parâmetros;
  • navega para outra página do site e volta;
  • sai e volta dois dias depois, direto pelo link salvo.

Em todos esses casos, a venda chega no gateway sem origem.

Passo 1: guardar os parâmetros na primeira visita

Assim que a página carrega, leia os parâmetros da URL e guarde num cookie do seu próprio domínio (cookie primário):

const params = new URLSearchParams(location.search);
const chaves = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'fbclid', 'gclid'];

chaves.forEach((chave) => {
    const valor = params.get(chave);
    if (valor) {
        document.cookie = `${chave}=${encodeURIComponent(valor)}; max-age=${60 * 60 * 24 * 30}; path=/; SameSite=Lax`;
    }
});

Assim, mesmo que a pessoa navegue ou volte depois, a origem continua guardada.

Passo 2: levar as UTMs até o checkout

Antes de mandar para o checkout, junte os parâmetros guardados ao link do botão:

document.querySelectorAll('a[href*="checkout"]').forEach((link) => {
    const url = new URL(link.href);
    chaves.forEach((chave) => {
        const valor = lerCookie(chave);
        if (valor && !url.searchParams.has(chave)) url.searchParams.set(chave, valor);
    });
    link.href = url.toString();
});

Confira na documentação do seu checkout quais parâmetros ele aceita. Muitos aceitam as UTMs padrão, e alguns usam parâmetros próprios para rastreio, como src e sck na Hotmart.

Passo 3: um padrão de UTMs que não muda

Ferramenta nenhuma salva uma UTM bagunçada. Defina um padrão e use em todos os anúncios. No Meta, os parâmetros dinâmicos preenchem os nomes sozinhos:

utm_source=facebook
&utm_medium=paid
&utm_campaign={{campaign.name}}|{{campaign.id}}
&utm_content={{ad.name}}|{{ad.id}}
&utm_term={{adset.name}}|{{adset.id}}

Com o ID junto do nome, você continua sabendo qual anúncio vendeu, mesmo que alguém renomeie a campanha depois.

Passo 4: conferir com uma compra de teste

Faça o caminho completo como um cliente: clique num link com UTMs, navegue, vá ao checkout e finalize um pedido de teste. Depois confira no painel do gateway se a venda chegou com a origem certa. Se não chegou, o problema está no passo 1 ou no 2.

Parece detalhe, mas sem isso você investe no anúncio e não sabe qual deles pagou a conta.

Serviço Trackeamento de vendas Configuro o rastreamento do clique no anúncio até a venda aprovada, para as campanhas otimizarem com dados certos e você decidir com base em números.

Quer isso funcionando na sua oferta?

Me conta o seu cenário em poucas linhas. Eu leio pessoalmente e te respondo pelo WhatsApp.

Ao enviar, você concorda com a política de privacidade. Uso seus dados só para responder ao seu contato. Protegido pelo reCAPTCHA: valem a privacidade e os termos do Google.

Voltar