O que é fbclid? o novo parâmetro do facebook [fechado]

87

Por dois dias, notei que no URL que eu publico no Facebook, há um parâmetro adicionado:
?fbclid=uFCrBkUgEvKg...
Para ser mais preciso algo como:http://example.com?fbclid=uFCrBkUgEvKg...

Alguém sabe o que esse parâmetro faz?
Para que serve e para que serve os desenvolvedores?

Obrigado por seus comentários.

Rafael Dorado
fonte
5
Para mim, parece que o Facebook está tentando burlar as leis de cookies ... Parte disso ... parece que ninguém encontrou qualquer documentação sobre este rastreador ...
Antony Gibbs
19
Esse comportamento é tão irritante que faz com que todo o tráfego de referência apareça como urls exclusivas em meus relatórios de análise, já que o parâmetro de consulta é diferente por usuário.
Brian Surowiec
5
Há alguma discussão sobre fbclid neste tópico HN (muitos links informativos enterrados lá em algum lugar): news.ycombinator.com/item?id=18275061
ahiijny
9
Escrevi uma extensão do Chrome que o remove. chrome.google.com/webstore/detail/…
R OMS
1
Esta questão está fechada (grr), mas uma coisa que ninguém mais mencionou é que você mesmo pode usá-lo para rastrear cliques únicos e cruzar a referência com as estatísticas fornecidas pelo Facebook. Você pode usá-lo para ver quantos cliques exclusivos ($$$ pagos) que você obtém realmente resultam em um carregamento completo da página em seu site. (Isso não seria algo que todos gostariam de fazer - mas pode ajudar na otimização do site e no carregamento da página).
Simon_Weaver

Respostas:

31

Eu sei que gclid, é a abreviação de ( G oogle Cl ick Id entifier)
É um parâmetro de rastreamento exclusivo que o Google usa para transferir informações entre sua conta do Google Ads e sua conta do Google Analytics.

O Facebook deve estar fazendo a mesma coisa ou algo semelhante fbclidpara melhorar os sistemas de análise de rastreamento.

Marcin Milowski
fonte
31
enquanto quebra o cache em todo o mundo: D ao mesmo tempo. para muitas pessoas
Luka
5
@Luka - você ainda pode usar o cache. Você só precisa excluir os parâmetros fbclid, gclid e utm do seu cache :) Muitas soluções suportam isso.
LucasRolff
2
Alguns plug-ins de cache não têm essa opção e o que eles fazem é, na verdade, para cada url, criar uma página de cache separada que equivale a nenhum cache (porque o fbclid nunca é o mesmo). A implementação do Nginx para removê-lo é a melhor. gist.github.com/lynt-smitka/…
Luka
6
Se o objetivo dessa consulta for rastrear visitantes, isso deve ter sido declarado nos documentos ou na política de privacidade. Parece que o fblcid é exclusivo por usuário. Se for esse o caso, há um grande problema de privacidade e uma violação do GDPR.
fat_mike
18

Isso me ajudou: https://greasyfork.org/en/forum/discussion/44083/fbclid-tracking-parameter-attached-by-facebook

Aqui está a citação do link:

Coloque este código em seu arquivo .htaccess:

RewriteCond %{QUERY_STRING} "fbclid=" [NC]
RewriteRule (.*) /$1? [R=301,L]

Se você trabalha em WordPress:

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} "fbclid=" [NC]
RewriteRule (.*) /$1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
ninguém especial
fonte
2
Quem não trabalha com as opções acima tente usar este:RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+&?(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
Rafael Dorado
7
A solução nesta resposta substituirá todos os parâmetros de consulta, por exemplo, tudo depois de '?' será jogado fora. Isso pode interromper algumas funcionalidades das páginas da web que usam parâmetros de consulta. Portanto, certifique-se de que é isso que você deseja. Além disso, veja as respostas em stackoverflow / serverfault para saber como remover parâmetros de consulta específicos.
Sybille Peters de
1
obrigado, salve o meu dia
sayalok
1
Me faz pensar que todos os servidores da web deveriam reescrever para algo aleatório e encaminhar uma nova solicitação aos servidores do FB;)
tentar chegar em
12

Outra abordagem, como remover este parâmetro (para que seus usuários possam compartilhar seu URL sem removê-lo manualmente) é usar JavaScript e history.replaceState.

Todos os créditos vão para o autor original - https://www.michalspacek.cz/zmena-url-a-skryvani-fbclid-pomoci-javascriptu

Código do link:

(function() {
        var param = 'fbclid';
        if (location.search.indexOf(param + '=') !== -1) {
                var replace = '';
                try {
                        var url = new URL(location);
                        url.searchParams.delete(param);
                        replace = url.href;
                } catch (ex) {
                        var regExp = new RegExp('[?&]' + param + '=.*$');
                        replace = location.search.replace(regExp, '');
                        replace = location.pathname + replace + location.hash;
                }
                history.replaceState(null, '', replace);
        }
})();
Pavel Štěrba
fonte
um liner para remover tudo: history.replaceState (null, '', location.origin + location.pathname)
Zibri
12

Pelo que entendi, o parâmetro é um meio de rastrear o visitante do site para que, se o seu site incluir publicidade do Facebook, eles possam personalizá-lo para corresponder aos hábitos de navegação registrados do visitante.

A mod_rewrite solução do Apache acima é problemática porque remove toda a string de consulta. Se o URL já tiver uma string de consulta, isso irá quebrá-lo. Para retirar apenas o fbclidparâmetro, é útil observar que o Facebook sempre o anexa a uma URL, então é sempre o último. Isso simplifica mod_rewriteum pouco o código. Isto é o que eu faço:

# Strip Facebook spyware tokens
RewriteCond %{REQUEST_METHOD} =GET [NC,OR]
RewriteCond %{REQUEST_METHOD} =HEAD [NC]
RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+$ [NC]
RewriteRule ^/?(.*)$ /$1?%1 [NE,L,R=301,E=limitcache:1]
Header always set Cache-Control "max-age=604800" env=limitcache

O E=limitcache:1sinalizador e a Headerdiretiva são para limitar por quanto tempo o redirecionamento 301 é armazenado em cache. Por padrão, muitos navegadores armazenam em cache literalmente para sempre . Isso reduz para uma semana (ou 604.800 segundos). Posso estar em minoria pensando assim, mas parece uma boa prática para mim. Não sei por quanto tempo os fbclidtokens persistem, mas se durarem muito, significa que o Facebook direcionará os visitantes para os mesmos URLs por um longo tempo e se você quiser oferecer suporte aos anúncios direcionados do Facebook ou se eles começarem usando o fbclidpara outra funcionalidade de que você precisa, você pode descobrir que esses redirecionamentos permanentemente armazenados em cache voltam a funcionar. Mas se você estiver disposto a arriscar, pode excluir a Headerdiretiva e o E=limitcache:1sinalizador.

Os dois testes %{REQUEST_METHOD}são para evitar que o Apache redirecione solicitações POST (ou solicitações mais esotéricas como PUT ou DELETE, se forem relevantes). A maioria dos navegadores altera a solicitação para ser uma solicitação GET em um redirecionamento 301 ou 302, o que é explicitamente permitido pelo RFC 7231 . Há um novo código de redirecionamento 308 que não deve ter seu método reescrito, mas infelizmente não é compatível com o Internet Explorer no Windows 7 (e provavelmente nunca será).

Richard Smith
fonte
Não contribua para a vigilância em massa. Remova essa Headerlinha se você usar isso, você não vai querer usar o fbclid. Engraçado que redirecionamentos "permanentes" podem ter uma data de validade, mas essa é a natureza orgânica da web para você. :-)
clacke