UTMs Não Chegam no Checkout? Resolva com Uma Linha de Código
Se os parâmetros UTM somem quando o visitante clica no botão de compra, esse script resolve. Copie, cole e nunca mais perca dados de rastreamento.
Os UTMs não chegam no checkout porque o link do botão de compra é fixo e não inclui os parâmetros da URL. Quando o visitante clica, ele é redirecionado para o checkout sem nenhuma informação de rastreamento -- e você perde o dado de qual anúncio gerou aquela venda.
"Você gasta horas configurando UTMs no Facebook Ads e eles desaparecem em um clique. Um script de 10 linhas resolve isso."
Resumo rápido:
- O botão de checkout tem um link fixo, sem parâmetros
- Os UTMs ficam na URL da página de vendas, mas não são repassados
- Um script JavaScript captura e adiciona os parâmetros automaticamente
- Existe também uma função para capturar parâmetros específicos
Por que os UTMs desaparecem?
O cenário é este: você configura UTMs no Facebook Ads, o visitante clica no anúncio e chega na sua página com uma URL como:
suapagina.com.br?utm_source=facebook&utm_campaign=lancamento
Os parâmetros estão ali, na barra de endereço. Mas o botão "Comprar Agora" aponta para algo como checkout.plataforma.com.br/produto/123 -- um link fixo definido quando você criou a página, sem nenhum parâmetro dinâmico.
O clique no botão descarta tudo que estava na URL. A plataforma de vendas recebe o visitante como se ele tivesse digitado o endereço diretamente.
A solução: repasse automático de parâmetros
Adicione este script antes do </body> na sua página de vendas:
<script>
// Quando a página carregar, repassa os parâmetros para todos os links
window.onload = function () {
var links = document.getElementsByTagName("a");
for (var i = 0, n = links.length; i < n; i++) {
// Concatena os parâmetros da URL atual ao href de cada link
var href = links[i].href.trim() +
(links[i].href.indexOf("?") > 0 ? '&' : '?') +
document.location.search.replace('?', '').toString();
links[i].href = href;
}
}
</script>
O script percorre todos os links da página e adiciona os parâmetros da URL atual a cada um. Se o link já tinha parâmetros, usa & para concatenar. Se não tinha, usa ?.
Para aplicar apenas nos links de checkout, troque getElementsByTagName("a") por querySelectorAll("a.checkout-link") e adicione a classe checkout-link ao seu botão de compra. O artigo Como Passar UTMs Para o Checkout detalha essa variação.
Alternativa: capturar parâmetros específicos
Se você precisa capturar um parâmetro específico da URL -- para exibir em um campo de formulário, enviar para uma API ou usar em lógica condicional -- use esta função:
// Captura o valor de um parâmetro específico da URL
function getUrlParameter(name) {
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
var results = regex.exec(location.search);
return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
}
Uso prático:
// Exemplos de captura de parâmetros individuais
var source = getUrlParameter('utm_source'); // retorna "facebook"
var campaign = getUrlParameter('utm_campaign'); // retorna "lancamento"
var clickId = getUrlParameter('click_id'); // retorna o ID do clique
Essa abordagem é ideal quando você quer preencher campos ocultos de um formulário com os dados de rastreamento, ou quando precisa enviar parâmetros específicos para um sistema externo.
Quando usar cada abordagem
- Script de repasse automático -- quando você quer que todos os parâmetros da URL cheguem ao checkout sem precisar saber quais são. Solução mais simples e universal.
- Função getUrlParameter -- quando você precisa do valor de um parâmetro específico para usar no código. Útil para formulários, campos ocultos e integrações.
As duas abordagens podem ser usadas juntas na mesma página sem conflito.
Como verificar se está funcionando
Acesse sua página com parâmetros de teste na URL (por exemplo, ?teste=abc). Clique com o botão direito no botão de checkout, selecione "Inspecionar" e verifique o atributo href do link. Se os parâmetros estiverem lá, o script está funcionando corretamente.
Para quem gerencia múltiplas campanhas e precisa monitorar se os dados estão chegando corretamente, o Trafius acompanha suas métricas do Meta Ads e envia alertas no WhatsApp sempre que algo foge do esperado.
Perguntas frequentes
O script funciona com botões que não são links (tag button)?
Não diretamente. O script altera o atributo href de tags <a>. Se o seu botão usa uma tag <button> com JavaScript para redirecionar, você precisa adaptar o script para interceptar o evento de clique e adicionar os parâmetros antes do redirecionamento.
Posso usar esse script em landing pages feitas no WordPress?
Sim. No WordPress, você pode adicionar o script usando um plugin de inserção de código (como "Insert Headers and Footers") ou diretamente no template da página. Se usar Elementor, cole no widget de HTML personalizado.
Os parâmetros UTM afetam o SEO da página?
Não. Os parâmetros UTM são ignorados pelo Google para fins de indexação. O Google trata suapagina.com.br e suapagina.com.br?utm_source=facebook como a mesma página. Se quiser garantir, use a tag canonical no <head> da página.
O que fazer se a plataforma de checkout não reconhece os UTMs?
Verifique na documentação da sua plataforma de vendas quais parâmetros ela captura automaticamente. Algumas plataformas reconhecem utm_source e utm_campaign nativamente, enquanto outras exigem parâmetros com nomes específicos como src ou sck.
Consulte suas métricas pelo WhatsApp
Com o Trafius, você pergunta "quanto gastei hoje?" e recebe CPC, ROAS, gastos e conversões em segundos, direto no WhatsApp.



