blog

Click id perdido no redirect: por que gclid e fbclid somem na cadeia

Redação Safely
Click id perdido no redirect: por que gclid e fbclid somem na cadeia

Uma campanha de afiliado típica envia o clique do anúncio para um domínio de filtro de tráfego, depois para uma pré-lander e por fim para a oferta final. Em cada salto o parâmetro de click id pode desaparecer, quebrando postback, enhanced conversions e deduplicação no tracker.

O problema não é teórico: quando o gclid some, o Google não consegue mais associar a conversão ao clique pago e a conta perde sinal de qualidade. O mesmo vale para "fbclid" no Meta e "ttclid" no TikTok.

Anatomia da cadeia real de uma campanha de afiliado

A URL que sai da rede de anúncios já carrega o click id na query string. O primeiro destino costuma ser o domínio protegido por um filtro de tráfego. Esse filtro decide em milissegundos se libera o visitante para a oferta ou o manda para uma página segura. Depois da decisão vem o redirecionamento para a pré-lander e, por último, para a página de conversão.

O parâmetro original viaja na query string da requisição HTTP inicial. Quando o filtro ou a pré-lander executa um redirecionamento, ele precisa copiar explicitamente esse parâmetro para o cabeçalho Location do novo destino. Qualquer etapa que não faça isso apaga o identificador.

Em logs reais é comum ver o clique chegar com ?gclid=abc123 e sair do filtro sem nenhum parâmetro. O tracker que recebe a visita final registra um clique sem click id e a postback posterior não consegue mais fechar o ciclo.

As cinco causas concretas de perda do click id

A primeira causa é o redirecionamento 302 ou 301 que não repassa a query string original. De acordo com a RFC 3986, quando o caminho do destino não está vazio, a query da origem não é herdada automaticamente.

A segunda causa é o meta refresh no HTML da página intermediária. O navegador segue o refresh, mas a query string que chegou não é incluída na nova URL.

A terceira é o JavaScript window.location.href = novaURL sem concatenar window.location.search. Muitos scripts de redirecionamento copiam apenas o pathname e perdem a query inteira.

A quarta causa são encurtadores de URL que reescrevem o link sem manter os parâmetros originais. Ferramentas de cloaking caseiras ou serviços de encurtamento genéricos frequentemente ignoram tudo que vem depois do ?.

A quinta causa é o formulário POST que troca de página. O clique chega via GET com o click id, mas o formulário envia os dados por POST e o parâmetro some na próxima requisição.

Tabela por plataforma: onde cada parâmetro chega

PlataformaParâmetroChega até o filtroChega até a ofertaRequer forward explícito
Google AdsgclidSimSó se repassadoSim
Meta AdsfbclidSimSó se repassadoSim
TikTok AdsttclidSimSó se repassadoSim
Microsoft AdsmsclkidSimSó se repassadoSim
Outras redesScCidSimSó se repassadoSim

Cada plataforma usa o parâmetro para associar conversões offline ou server-to-server. Quando ele não chega, a deduplicação e as enhanced conversions param de funcionar.

Como testar a perda em três minutos

Abra o link do anúncio com um valor de teste na query string, por exemplo https://seu-dominio.com/?gclid=TESTE123.

Siga manualmente todos os redirecionamentos usando as ferramentas de desenvolvedor do navegador ou curl com -L.

Na URL final, verifique se TESTE123 ainda aparece. Se sumiu, inspecione cada cabeçalho Location para identificar o salto que cortou o parâmetro.

No tracker, confirme se o payload de conversão recebeu o click id ou se chegou vazio. Repita o teste com fbclid e ttclid para cobrir todas as plataformas usadas.

Padrão correto para preservar o click id

O filtro de tráfego precisa tomar a decisão bot/humano antes de qualquer redirecionamento e, em seguida, repassar a query string original intacta para o destino seguinte. Qualquer lógica que reescreva a URL sem copiar os parâmetros queima o rastreamento inteiro.

A persistência em first-party cookie ou localStorage deve acontecer na entrada, no momento em que o clique chega, e não na saída. Assim o valor fica disponível mesmo que redirecionamentos posteriores apaguem a query string.

Evite usar UTM como solução. UTM serve para classificação de tráfego no analytics, mas não substitui o click id necessário para postback e enhanced conversions.

Meu tracker recebe o clique mas o gclid aparece vazio. Qual o motivo mais comum?

O redirecionamento do filtro ou da pré-lander está copiando apenas o pathname e descartando a query string. Verifique o cabeçalho Location de cada salto.

Posso usar window.location.replace para repassar parâmetros?

Sim, desde que concatene explicitamente window.location.search ou os parâmetros individuais antes de montar a nova URL.

O Meta Conversions API funciona sem fbclid no servidor?

Não de forma completa. O fbc gerado a partir do fbclid é necessário para deduplicação e enhanced conversions.

Testar com gclid=TESTE123 é suficiente para todas as plataformas?

Sim para diagnóstico rápido, mas repita o teste com fbclid e ttclid para garantir que o forward funciona em todas as redes usadas.

O filtro da Safely altera a URL original?

Não. A decisão acontece antes do redirect e a query string é repassada sem modificação para o destino.

O ponto mais acionável é simples: configure o filtro para copiar a query string inteira em todo redirecionamento e armazene o click id em first-party storage na entrada da visita.

Leia também: Atribuição de anúncio para WhatsApp com ctwa_clid e CAPI de mensagens

Leia também: Cadeia de redirecionamento em anúncios: o que Google e Meta veem em cada salto

Leia também: Postback S2S que não registra conversão: onde o subid se perde no funil

RE

Escrito por

Redação Safely