gclid, fbclid e ttclid: o que são, onde se perdem e como não perder a atribuição
gclid, fbclid e ttclid são identificadores opacos que Google, Meta e TikTok anexam à URL de destino no momento do clique para reconhecer depois qual anúncio gerou aquela visita. Eles não contêm dados legíveis: são chaves que só a plataforma que as emitiu sabe interpretar. Perdem-se em redirecionamentos que descartam a query string, em links de app, em formulários que recarregam a página, em checkouts de terceiros e em qualquer ponto onde a URL é reescrita sem os parâmetros. A forma de não perder é capturar o parâmetro no primeiro clique, guardá-lo junto de um identificador próprio e propagar esse identificador por toda a jornada, em vez de depender do parâmetro original sobreviver até a conversão.
Todo media buyer já viu uma URL de destino cheia de coisa que ele não escreveu. Esses parâmetros são a espinha dorsal da atribuição paga, e entender exatamente o que eles fazem — e o que eles não fazem — evita a maior parte dos problemas de conversão que "some".
O que cada parâmetro é
Os três são identificadores opacos de clique. A plataforma gera um valor único no instante em que alguém clica no anúncio, anexa esse valor à URL de destino e guarda internamente a associação entre aquele valor e o anúncio, o conjunto, a campanha, o horário e o dispositivo.
| Parâmetro | Plataforma | Onde aparece | Formato típico |
|---|---|---|---|
gclid |
Google Ads | URL final do anúncio | string longa alfanumérica com traços e sublinhados |
gbraid / wbraid |
Google Ads | Campanhas em ambiente iOS/app | similar ao gclid, contexto diferente |
fbclid |
Meta Ads | URL de destino do anúncio | string com prefixo e corpo alfanumérico |
ttclid |
TikTok Ads | URL de destino do anúncio | string alfanumérica longa |
Um ponto que gera confusão: eles não carregam informação legível. Não dá para extrair nome de campanha, palavra-chave ou criativo de dentro de um gclid. Quem quer esse detalhe no relatório precisa passá-lo explicitamente em parâmetros próprios — utm_campaign, utm_term, sub1 a sub5 — preenchidos pelas macros da plataforma.
Exemplo de URL final bem montada para Google Ads:
https://track.seudominio.com.br/r/oferta-x
?gclid={gclid}
&utm_source=google
&utm_medium=cpc
&utm_campaign={campaignid}
&utm_term={keyword}
&utm_content={creative}
&sub1={adgroupid}
&sub2={device}
Para Meta, as macros mudam de nome:
https://track.seudominio.com.br/r/oferta-x
?fbclid={{ad.id}}
&utm_source=facebook
&utm_medium=paid
&utm_campaign={{campaign.name}}
&utm_content={{ad.name}}
&sub1={{adset.id}}
E para TikTok:
https://track.seudominio.com.br/r/oferta-x
?ttclid=__CLICKID__
&utm_source=tiktok
&utm_campaign=__CAMPAIGN_NAME__
&sub1=__CID__
&sub2=__AID__
A sintaxe das macros é diferente em cada plataforma — chaves simples, chaves duplas, sublinhados duplos. Os detalhes de cada uma estão em integração com Google Ads, integração com Meta Ads e integração com TikTok Ads.
Para não reescrever esse mapa a cada campanha, vale montar um template de fonte de tráfego com o mapeamento de parâmetro para macro — por exemplo kw={keyword} — e reaproveitar. O modelo está descrito em tracking e atribuição.
Os oito lugares onde o parâmetro se perde
Esta é a parte útil. Em ordem aproximada de frequência:
1. Redirect que descarta a query string
O caso clássico. Um redirecionamento de http para https, de www para raiz, ou de uma URL antiga para a nova, configurado sem preservar os parâmetros. O usuário chega, a página carrega, e a URL está limpa.
Teste: abra o link com ?teste=1 no fim e veja se o parâmetro sobrevive ao carregamento.
2. Encurtador ou intermediário mal configurado
Encurtadores que não fazem forward de query string quebram a cadeia inteira. Se você precisa de link curto, ele tem que repassar os parâmetros recebidos.
3. Navegação dentro do app
Cliques em anúncios no Instagram, Facebook ou TikTok abrem um navegador dentro do app. Se a landing usa um botão que chama uma nova janela, um deep link ou um esquema de app, os parâmetros podem não acompanhar a transição.
4. Formulário que recarrega a página
Envio de formulário com método GET que reescreve a URL, ou POST que redireciona para uma página de confirmação sem repassar nada. Depois do envio, o parâmetro de clique deixou de existir.
5. Checkout de terceiro
O usuário sai do seu domínio e vai para o checkout do anunciante, do gateway ou da plataforma de infoproduto. Se esse destino não recebe nem preserva seu identificador, a conversão acontece num lugar que não sabe de onde o tráfego veio.
6. Single-page application que limpa a URL
Frameworks que fazem history.replaceState ou trocam de rota descartando a query string. O valor existia no primeiro milissegundo e sumiu antes de qualquer script salvar.
7. Codificação dupla
A URL de destino já vem codificada, o intermediário codifica de novo, e %3D vira %253D. O parâmetro chega — corrompido.
8. Truncamento por limite de tamanho
Alguns sistemas cortam URLs muito longas. Com três macros grandes e cinco UTMs, isso acontece mais do que se imagina. O ttclid truncado é o sintoma mais comum.
A estratégia que resolve: transformar o parâmetro em identificador próprio
A lição dos oito pontos acima é que depender do gclid sobreviver até a conversão é uma aposta ruim. A alternativa é inverter a ordem.
No primeiro clique, o link de redirect /r/{slug} faz três coisas ao mesmo tempo:
- Gera um
click_idúnico, controlado por você. - Captura e guarda o que veio da fonte:
gclid,fbclid,ttclid,utm_source,utm_medium,utm_campaign,utm_term,utm_content,sub1asub5, país e dispositivo. - Redireciona para a oferta carregando o
click_idno parâmetro que aquele destino aceita.
A partir daí, o gclid não precisa mais viajar. Ele já está armazenado do lado de cá, associado a um identificador que só precisa cumprir um percurso, no parâmetro que a rede reserva para o afiliado:
https://oferta.exemplo.com/lp
?aff_sub=8f2c1a7e-4b9d-4e11-9f30-2a5c7d10b4aa
&kw=tenis+corrida
&geo=BR
&dev=mobile
Quando a conversão acontece, o merchant devolve o mesmo valor por postback server-side:
https://track.seudominio.com.br/postback
?click_id=8f2c1a7e-4b9d-4e11-9f30-2a5c7d10b4aa
&event=sale
&amount=189.90
&txn_id=ORD-77120
O sistema casa o evento com o clique original e, com ele, com todo o contexto guardado no passo 2 — inclusive o gclid. É assim que o relatório consegue dizer que aquela venda veio da palavra-chave X, no dispositivo Y, no país Z, mesmo tendo o parâmetro do Google desaparecido três redirecionamentos antes.
Detalhes de montagem que evitam retrabalho
Use um domínio de tracking próprio. Com CNAME apontando para a plataforma e certificado emitido automaticamente, o clique roda no seu domínio, não num domínio compartilhado de terceiros. Isso reduz a chance de o link inteiro ser tratado como redirecionador genérico e facilita auditar o que está acontecendo.
Escolha o parâmetro de destino certo. Cada rede reserva um campo para o afiliado: subid, aff_sub, s1, clickid, transaction_id, sub_id1. Use o que a documentação da rede indica, não o que parece mais óbvio.
Não quebre placeholders da rede. Se a URL da oferta já vem com marcadores próprios do anunciante, macro desconhecida deve ficar intacta em vez de ser substituída por vazio. As 33 macros disponíveis — {click_id}, {country}, {keyword}, {campaign_id}, {device} e as demais — cobrem o que você precisa passar; o que não for reconhecido passa adiante sem alteração.
Evite acumular macro sem uso. URL longa aumenta risco de truncamento. Passe o que você vai realmente ler no relatório.
Diferenças de comportamento entre as três plataformas
Tratar os três parâmetros como iguais funciona até certo ponto. Depois disso, as diferenças aparecem.
Google Ads trabalha com mais de um identificador. Além do gclid, existem gbraid e wbraid, usados em contextos de app e de ambiente iOS. Se a sua captura só olha para gclid, parte do tráfego chega sem nada. Capturar os três resolve. Além disso, o Google oferece a opção de anexar o parâmetro automaticamente ou de você controlá-lo no modelo de rastreamento — e as duas coisas juntas podem gerar parâmetro duplicado na URL.
Meta Ads é o caso em que a maior parte da perda acontece dentro do app. O navegador interno do Instagram e do Facebook tem comportamento próprio em redirecionamentos e em abertura de nova aba. Vale sempre testar o link exatamente pelo caminho que o usuário vai percorrer: anúncio no feed, toque no botão, navegador interno.
TikTok Ads usa macros com sublinhado duplo e produz valores longos. É a plataforma onde truncamento e codificação dupla aparecem com mais frequência, principalmente quando há um intermediário entre o anúncio e a landing. Quanto menos saltos, melhor.
Em comum, os três compartilham a mesma regra: o valor é útil enquanto chega inteiro. Meio gclid não é meio dado — é dado nenhum.
Quanto tempo o parâmetro vale
Outro mal-entendido comum é achar que o identificador de clique tem validade eterna. Não tem — e a validade é decidida pela plataforma que o emitiu, não por você.
O que está sob seu controle é o registro do clique do seu lado. O click_id gerado no redirect continua existindo e continua casável com um postback que chegue dias depois, o que importa em ofertas com aprovação lenta, período de validação ou pagamento por evento recorrente. A janela que importa para o seu relatório é a do seu sistema, e ela é explícita.
Essa separação é o que permite medir conversão tardia sem depender de a plataforma de anúncio ainda reconhecer aquele clique.
Como testar antes de gastar dinheiro
Um roteiro de dez minutos que evita semanas de dado sujo:
- Monte o link final e abra no celular, em rede móvel, não no desktop com a rede do escritório.
- Na landing, verifique na barra de endereço se o
click_idchegou íntegro. - Compare o valor recebido com o gerado, caractere a caractere. Procure
%25— sinal de codificação dupla. - Complete uma conversão de teste.
- Abra o log de postbacks e confirme o status. Casado significa que a cadeia fechou.
- Se aparecer órfão, o
click_idchegou diferente. Se aparecer inválido, faltou parâmetro obrigatório. Se aparecer duplicado sem você ter feito duas conversões, o merchant está reenviando — a deduplicação por transação cuida disso. - Repita o mesmo teste por plataforma: o comportamento do navegador interno do TikTok não é igual ao do Chrome.
Quando algum passo falha e não é óbvio onde, o roteiro de diagnóstico está em atribuição quebrada.
E quando não há parâmetro nenhum?
Acontece: tráfego direto, aplicativos que abrem a URL limpa, usuários que copiam e colam o link. Nesses casos, o clique existe e o contexto de fonte fica vazio — o registro continua válido, mas sem origem atribuída.
Duas providências reduzem o volume disso:
- Garantir que todo link publicado passe pelo redirect, inclusive links em bio, QR code e mensagens. O
slugdistingue a origem mesmo sem parâmetro. - Usar
sub1asub5como marcadores fixos por criativo ou canal, além das macros dinâmicas. Assim, mesmo que a macro não seja substituída, resta um rótulo.
A abordagem que não depende de armazenamento no navegador está descrita em tracking sem cookies.
O que o relatório passa a mostrar
Com a captura funcionando, cada clique carrega origem, campanha, palavra-chave, país e dispositivo; cada conversão carrega evento, valor e transação; e o custo entra por modelo CPC, CPM ou CPA fixo, ou por lançamento manual por dia e campanha. O cruzamento por dia, campanha e fonte está em relatórios, e a estrutura completa de recursos em plataforma.
Para quem trabalha com ofertas de aposta, onde o evento de conversão tem nomenclatura própria, vale ler também o que significam CPA, FTD e RevShare e o passo a passo de postback da Betano e Superbet. Dúvidas pontuais de terminologia ficam no glossário e no FAQ.
Preservar o identificador de clique não melhora campanha por si só. O que ele faz é garantir que o número no seu relatório corresponda ao que aconteceu — e é sobre esse número que qualquer decisão de escala deveria ser tomada.
Perguntas frequentes
gclid e GCLID do Google Analytics são a mesma coisa?
É o mesmo parâmetro. O Google Ads anexa o gclid à URL de destino e o Google Analytics o utiliza para associar a sessão à campanha. A diferença é o que cada produto faz com ele depois, não o valor em si.
Posso decodificar um gclid ou fbclid para saber a campanha?
Não. São identificadores opacos, sem estrutura pública. Se você precisa saber campanha, grupo e criativo, use as macros da própria plataforma em parâmetros separados, como utm_campaign ou sub1 a sub5.
O fbclid some porque o usuário bloqueou cookies?
Não necessariamente. O fbclid viaja na URL, não no cookie. Ele costuma sumir por reescrita de URL, redirect que descarta query string ou navegação dentro do app. Bloqueio de cookie afeta o armazenamento posterior, não a chegada do parâmetro.
O que fazer quando a oferta não aceita parâmetro extra na URL?
Use o parâmetro que a rede reserva para o afiliado, normalmente algo como subid, aff_sub, s1 ou clickid, e coloque ali o seu identificador de clique. Se a rede não oferece nenhum campo livre, não há como fechar a cadeia server-side com aquele merchant.
Preciso capturar gclid, fbclid e ttclid ao mesmo tempo?
Sim, se você roda as três plataformas. A captura é por parâmetro presente no clique, então cada visita traz o parâmetro da sua origem e os outros ficam vazios. Isso não causa conflito.
Por que meu ttclid aparece truncado no destino?
Quase sempre por codificação dupla ou por limite de tamanho em algum redirecionador no meio do caminho. Vale testar o link real, do celular, e comparar o valor recebido com o valor original caractere a caractere.
Time que constrói e opera o Affilitrack. Escrevemos a partir de operação real de tracking de afiliados no Brasil — postback de casa de aposta, infoproduto e mídia paga.
Teste o Affilitrack com a sua operação
Postback server-side, atribuição por clique e repasse automático para sub-afiliados. Planos a partir de R$ 97/mês, com Pix ou cartão.