web-dev-qa-db-fra.com

Qu'est-ce que fbclid? le nouveau paramètre facebook

Depuis deux jours, j'ai remarqué que l'URL que je publie sur Facebook, il y a un paramètre qui est ajouté:
?fbclid=uFCrBkUgEvKg...
Pour être plus précis, quelque chose comme: http://example.com?fbclid=uFCrBkUgEvKg...

Est-ce que quelqu'un sait ce que ce paramètre fait?
À quoi ça sert et à quoi servent les développeurs?

Merci pour vos commentaires.

69
Rafael Dorado

Je sais que gclid, est l'abréviation de (G oogle Cl ick Id entifier)
C'est un paramètre de suivi unique utilisé par Google pour transférer des informations entre votre compte Google Ads et votre Google Analytics. Compte.

Facebook doit faire la même chose ou quelque chose de similaire avec fbclid pour améliorer les systèmes d'analyse de suivi.

21
Marcin Milowski

Cela m'a aidé: https://greasyfork.org/en/forum/discussion/44083/fbclid-tracking-parameter-attached-by-facebook

Voici citer le lien:

Mettez ce code dans votre fichier .htaccess:

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

Si vous travaillez dans 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]
16
no one special

Une autre approche, comment supprimer ce paramètre (afin que vos utilisateurs puissent partager votre URL sans la supprimer manuellement), consiste à utiliser JavaScript et history.replaceState.

Tous les crédits vont à l'auteur original - https://www.michalspacek.cz/zmena-url-a-skryvani-fbclid-pomoci-javascript

Code du lien:

(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);
        }
})();
11
Pavel Štěrba

Si je comprends bien, le paramètre est un moyen de suivre le visiteur du site. Ainsi, si votre site inclut des publicités de Facebook, il peut le personnaliser pour correspondre aux habitudes de navigation enregistrées du visiteur.

Apache mod_rewritesolution ci-dessus est problématique car il efface l'intégralité de la chaîne de requête. Si l'URL avait déjà une chaîne de requête, cela la cassera. Pour supprimer uniquement le paramètre fbclid, il est utile de noter que Facebook l'a toujours ajouté à une URL, donc c'est toujours le dernier. Cela simplifie un peu le code mod_rewrite. C'est ce que je fais:

# 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

Le drapeau E=limitcache:1 et la directive Header limitent la durée de mise en cache de la redirection 301. Par défaut, de nombreux navigateurs le cache littéralement pour toujours . Cela réduit cela à une semaine (ou 604 800 secondes). Je suis peut-être minoritaire à penser cela, mais cela me semble être une bonne pratique. Je ne sais pas combien de temps les jetons fbclid persistent, mais s'ils durent longtemps, cela signifie que Facebook dirigera les visiteurs vers les mêmes URL pendant longtemps, et si vous souhaitez jamais soutenir les publicités ciblées de Facebook. , ou s’ils commencent à utiliser le fbclid pour d’autres fonctionnalités dont vous avez besoin, vous constaterez peut-être que ces redirections mises en cache de façon permanente se dégradent. Mais si vous êtes prêt à risquer cela, vous pouvez supprimer à la fois la directive Header et le drapeau E=limitcache:1.

Les deux tests de %{REQUEST_METHOD} empêchent Apache de rediriger les demandes POST (ou plusieurs demandes ésotériques telles que PUT ou DELETE, si elles sont pertinentes). La plupart des navigateurs modifient la demande en requête GET sur une redirection 301 ou 302, ce qui est explicitement autorisé par RFC 7231 . Il y a un nouveau code de redirection 308 ne doit pas avoir sa méthode réécrite, mais malheureusement ce n'est pas supporté par Internet Explorer sous Windows 7 (et ne le sera probablement jamais).

5
Richard Smith