100 votes

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

Pendant 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 fait ce paramètre ?
À quoi sert-il et quelle est l'utilisation des développeurs ?

Merci pour vos commentaires.

6 votes

À mon avis, il semble juste que Facebook essaie de contourner les lois sur les cookies... Mis à part cela... il semble que personne n'ait trouvé de documentation sur ce traceur...

27 votes

Ce comportement est tellement agaçant, il fait en sorte que tout le trafic de référence s'affiche comme des URL uniques dans mes rapports d'analyse étant donné que le paramètre de requête est différent pour chaque utilisateur.

5 votes

Il y a une discussion sur fbclid dans ce fil de discussion de HN (beaucoup de liens informatifs enfouis quelque part) : news.ycombinator.com/item?id=18275061

35voto

Marcin Milowski Points 401

Je sais que gclid, est l'abréviation de (Google Click Identifier)
C'est un paramètre de suivi unique que Google utilise pour transférer des informations entre votre compte Google Ads et votre compte Google Analytics.

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

42 votes

Tout en cassant la mise en cache à l'échelle mondiale :D en même temps. pour beaucoup de personnes

7 votes

@Luka - vous pouvez toujours utiliser le cache. Il vous suffit d'exclure les paramètres fbclid, gclid et utm de votre cache :) De nombreuses solutions prennent en charge cela.

2 votes

Certains plugins de cache n'ont pas une telle option et ce qu'ils font en réalité est de créer une page de cache séparée pour chaque URL, ce qui équivaut à ne pas du tout mettre en cache (car fbclid n'est jamais le même). L'implémentation de Nginx pour le supprimer est la meilleure. gist.github.com/lynt-smitka/…

17voto

no one special Points 343

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

Voici une citation du lien:

Placez ce code dans votre fichier .htaccess:

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

Si vous travaillez sous 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]

3 votes

Qui ne fonctionne pas les options ci-dessus, essayez ceci : RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+&?(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]

9 votes

La solution de cette réponse remplacera l'ensemble de vos paramètres de requête, par exemple tout ce qui se trouve après '? sera supprimé. Cela peut affecter certaines fonctionnalités des pages web qui utilisent des paramètres de requête. Assurez-vous que c'est ce que vous voulez. De plus, consultez les réponses sur stackoverflow / serverfault pour savoir comment supprimer des paramètres de requête spécifiques.

1 votes

Merci, vous avez sauvé ma journée

15voto

Richard Smith Points 676

Comme je le comprends, le paramètre est un moyen de suivre le visiteur du site afin que si votre site inclut de la publicité de Facebook, ils peuvent la personnaliser pour correspondre aux habitudes de navigation enregistrées du visiteur.

La solution Apache mod_rewrite ci-dessus est problématique car elle supprime 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'ajoute toujours à une URL, donc il est toujours en dernier. Cela simplifie un peu le code mod_rewrite. Voici ce que je fais:

# Supprimer les jetons d'espionnage Facebook
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 servent à limiter la durée pendant laquelle la redirection 301 est mise en cache. Par défaut, de nombreux navigateurs la mettent en cache littéralement pour toujours. Cela réduit cela à une semaine (ou 604 800 secondes). Je peux être dans une minorité en pensant cela, mais cela me semble une bonne pratique. Je ne sais pas combien de temps les jetons fbclid persistent, mais s'ils sont durables, cela signifie que Facebook dirigera les visiteurs vers les mêmes URLs pendant longtemps, et si vous souhaitez un jour 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 pourriez trouver que ces redirections mises en cache de manière permanente reviennent vous hanter. Mais si vous êtes prêt à prendre le risque, vous pouvez supprimer à la fois la directive Header et le drapeau E=limitcache:1.

Les deux tests de %{REQUEST_METHOD} servent à empêcher Apache de rediriger les requêtes POST (ou des requêtes plus ésotériques comme PUT ou DELETE, si elles sont pertinentes). La plupart des navigateurs changent la requête pour qu'elle soit une requête GET lors d'une redirection 301 ou 302, ce qui est explicitement autorisé par RFC 7231. Il existe un nouveau code de redirection 308 ne doit pas avoir sa méthode réécrite, mais malheureusement il n'est pas pris en charge par Internet Explorer sur Windows 7 (et probablement ne le sera jamais).

0 votes

Ne contribuez pas à la surveillance de masse. Supprimez cette ligne de Header si vous l'utilisez, vous ne voudrez pas utiliser le fbclid. Drôle que les redirections "permanent" puissent avoir une date d'expiration, mais c'est la nature organique du web pour vous. :-)

13voto

Pavel Štěrba Points 1951

Une autre approche, comment supprimer ce paramètre (pour que vos utilisateurs puissent partager votre URL sans avoir à le supprimer manuellement) est d'utiliser JavaScript et history.replaceState.

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

Code provenant 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);
        }
})();

0 votes

Une seule ligne pour tout supprimer: history.replaceState(null, '',location.origin+location.pathname)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X