Что такое fbclid? новый параметр facebook [закрыто]

87

За два дня я заметил, что к URL, который я публикую в Facebook, добавлен параметр:
?fbclid=uFCrBkUgEvKg...
Точнее, что-то вроде:http://example.com?fbclid=uFCrBkUgEvKg...

Кто-нибудь знает, что делает этот параметр?
Для чего это нужно и в чем польза разработчиков?

Спасибо за ваши комментарии.

Рафаэль Дорадо
источник
5
Для меня это просто похоже на то, что facebook пытается обойти законы о файлах cookie ... Отчасти это ... кажется, никто не нашел никакой документации по этому трассировщику ...
Энтони Гиббс,
19
Такое поведение настолько раздражает, что приводит к тому, что весь реферальный трафик отображается как уникальные URL-адреса в моих аналитических отчетах, поскольку параметры запроса различаются для каждого пользователя.
Brian Surowiec
5
В этой ветке HN есть обсуждение fbclid (много информативных ссылок где-то спрятано
ahiijny
9
Я написал расширение для Chrome, которое его убирает. chrome.google.com/webstore/detail/…
R OMS
1
Этот вопрос закрыт (grr), но никто больше не упомянул о том, что вы можете использовать его самостоятельно для отслеживания уникальных кликов и перекрестных ссылок со статистикой, предоставленной Facebook. Вы можете использовать его, чтобы узнать, сколько уникальных (платных $$$) кликов вы получаете в результате полной загрузки страницы на вашем сайте. (Это не то, чем все захотят заниматься, но может помочь в оптимизации сайта и загрузке страницы).
Simon_Weaver

Ответы:

31

Я знаю, что gclidэто сокращение от ( G oogle Cl ick Id entifier).
Это уникальный параметр отслеживания, который Google использует для передачи информации между вашей учетной записью Google Рекламы и вашей учетной записью Google Analytics.

Facebook должен делать то же самое или что-то подобное, fbclidчтобы улучшить системы отслеживания и аналитики.

Марцин Миловски
источник
31
при этом взламывая кеширование по всему миру: D заодно. для многих
Лука
5
@Luka - еще можно кешировать. Вам просто нужно исключить из кеша параметры fbclid, gclid и utm :) Многие решения это поддерживают.
LucasRolff
2
Некоторые плагины кеширования не имеют такой опции, и на самом деле они создают для каждого URL отдельную страницу кеширования, что равносильно отсутствию кеширования (потому что fbclid никогда не бывает одинаковым). Реализация Nginx для его удаления - лучшая. gist.github.com/lynt-smitka/…
Лука,
6
Если целью этого запроса является отслеживание посетителей, это должно быть указано в документации или в политике конфиденциальности. Кажется, что fblcid уникален для каждого пользователя. Если это действительно так, существует огромная проблема с конфиденциальностью и нарушение GDPR.
fat_mike
18

Это мне помогло: https://greasyfork.org/en/forum/discussion/44083/fbclid-tracking-parameter-attached-by-facebook

Вот цитата из ссылки:

Поместите этот код в свой файл .htaccess:

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

Если вы работаете в 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]
никто особенный
источник
2
У кого не работают варианты выше, попробуйте использовать это:RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+&?(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
Рафаэль Дорадо
7
Решение в этом ответе переопределит все параметры вашего запроса, например все, что находится после '?' будет выброшен. Это может нарушить некоторые функции веб-страниц, использующих параметры запроса. Итак, убедитесь, что это именно то, что вам нужно. Также посмотрите ответы на stackoverflow / serverfault, чтобы узнать, как удалить конкретный параметр запроса.
Sybille Peters
1
спасибо, спаси мой день
sayalok
1
Это заставляет меня думать, что все веб-серверы должны переписываться на что-то случайное и пересылать новый запрос на серверы FB;)
youcantryreachingme
12

Другой подход, как удалить этот параметр (чтобы ваши пользователи могли делиться вашим URL-адресом, не удаляя его вручную), заключается в использовании JavaScript и history.replaceState.

Все кредиты принадлежат оригинальному автору - https://www.michalspacek.cz/zmena-url-a-skryvani-fbclid-pomoci-javascriptu

Код по ссылке:

(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);
        }
})();
Павел Штерба
источник
один лайнер для удаления всего: history.replaceState (null, '', location.origin + location.pathname)
Zibri
12

Насколько я понимаю, этот параметр является средством отслеживания посетителя сайта, поэтому, если ваш сайт включает рекламу из Facebook, они могут настроить ее в соответствии с записанными привычками просмотра посетителей.

Приведенное mod_rewrite выше решение Apache проблематично, поскольку оно удаляет всю строку запроса. Если в URL-адресе уже была строка запроса, это сломает ее. Чтобы удалить только fbclidпараметр, полезно отметить, что Facebook всегда добавляет его к URL-адресу, поэтому он всегда последний. Это немного упрощает mod_rewriteкод. Это то чем я занимаюсь:

# 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

E=limitcache:1Флаг и Headerдиректива , чтобы ограничить как долго кэшируется 301 редирект. По умолчанию многие браузеры кешируют его буквально навсегда . Это сокращает это до одной недели (или 604 800 секунд). Возможно, я в меньшинстве так думаю, но мне это кажется хорошей практикой. Я не знаю, как долго fbclidтокены сохраняются, но если они существуют долго, это означает, что Facebook будет направлять посетителей по одним и тем же URL-адресам в течение длительного времени, и если вы когда-нибудь захотите поддержать таргетированную рекламу Facebook, или если они начнут используя fbclidдругие функции, которые вам нужны, вы можете обнаружить, что эти перенаправления с постоянным кешем снова перестают работать. Но если вы готовы рискнуть, вы можете удалить и Headerдирективу, и E=limitcache:1флаг.

Эти два теста %{REQUEST_METHOD}предназначены для предотвращения перенаправления Apache запросов POST (или более эзотерических запросов, таких как PUT или DELETE, если они актуальны). Большинство браузеров изменяют запрос на GET-запросы при перенаправлении 301 или 302, что явно разрешено RFC 7231 . Существует новый код перенаправления 308, который не должен переписывать свой метод, но, к сожалению, он не поддерживается Internet Explorer в Windows 7 (и, вероятно, никогда не будет).

Ричард Смит
источник
Не участвуйте в массовой слежке. Удалите эту Headerстроку, если вы используете это, вы не захотите использовать fbclid. Забавно, что «постоянные» переадресации могут иметь дату истечения срока действия, но это естественная природа Интернета для вас. :-)
clacke