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

В течение двух дней я заметил, что к URL, который я публикую на Фейсбуке, добавлен параметр:
?fbclid=uFCrBkUgEvKg...
Чтобы быть более точным что-то вроде: http://example.com?fbclid=uFCrBkUgEvKg...

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

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

Ответ 1

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

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

Ответ 2

Это помогло мне: 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]

Ответ 3

Другой подход, как удалить этот параметр (чтобы ваши пользователи могли делиться вашим 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);
        }
})();

Ответ 4

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

Приведенное выше решение Apache mod_rewrite проблематично, поскольку оно удаляет всю строку запроса. Если в 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 токены 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 (и, вероятно, никогда не будет).

Ответ 5

Сортированный, этот код отсортировал меня по этой проблеме скрипта на моем веб-сайте WordPress, тем больше у меня проблемы с загрузкой моего переводчика, но затем я использовал меньший, и все прошло так же хорошо, как золото.

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

"RewriteCond% {QUERY_STRING}" fbclid = "[NC]

RewriteRule (. *)/$ 1? [R = 301, L],"

Большое вам спасибо за ваш вклад в более справедливую сеть. Флорида