什么是fbclid?新的facebook参数[关闭]


87

有两天时间,我注意到我在Facebook上发布的URL添加了一个参数:
?fbclid=uFCrBkUgEvKg...
更精确地说,例如:http://example.com?fbclid=uFCrBkUgEvKg...

有人知道此参数的作用吗?
它是做什么用的,开发人员有什么用?

感谢您的意见。


5
对我来说,似乎Facebook正在尝试绕过Cookie法律...部分原因...似乎没有人在此示踪剂上找到任何文档...
Antony Gibbs

19
这种行为非常令人讨厌,由于所有用户的查询参数不同,因此所有引荐流量都在我的分析报告中显示为唯一的url。
Brian Surowiec

5
在此HN线程中有一些关于fbclid的讨论(很多信息链接埋藏在某处):news.ycombinator.com/item?id=18275061
ahiijny

9
我写了一个Chrome扩展程序将其删除。chrome.google.com/webstore/detail/...
- [R OMS

1
这个问题是封闭的(grr),但是没有人提到的一件事是,您可以自己使用它来跟踪唯一的点击并与Facebook提供的统计信息进行交叉引用。您可以使用它查看实际获得了多少次唯一(付费$$)点击,从而在您的网站上加载完整的页面。(这不是每个人都想做的,但是可以帮助网站优化和页面加载)。
Simon_Weaver

Answers:


31

我知道gclid,是短期的(g ^ oogleICK标识entifier)
这是一个独特的跟踪参数谷歌应用到你的谷歌广告之间传输信息帐户,您的谷歌Analytics帐户。

Facebook必须在做相同或相似的事情fbclid以改善跟踪分析系统。


31
同时打破全球范围内的缓存:D。对于很多人来说
卢卡

5
@Luka-您仍然可以使用缓存。您只需要从缓存中排除fbclid,gclid和utm参数即可:)许多解决方案都支持此功能。
LucasRolff '19

2
一些缓存插件没有这种选择,它们实际上是为每个URL创建一个单独的缓存页面,该页面等于没有缓存(cuz 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]
Rafael Dorado

7
此答案中的解决方案将覆盖您的整个查询参数,例如,“?”之后的所有内容 将被扔掉。这可能会破坏使用查询参数的网页的某些功能。因此,请确保这是您想要的。另外,请查看关于stackoverflow / serverfault的答案,以了解如何删除特定的查询参数。
Sybille Peters '18

1
谢谢你保存我的一天
sayalok

1
让我认为所有Web服务器都应该重写为随机内容,然后将新请求转发给FB的服务器;)
youcantryreachingme,2016年

12

删除此参数(以便用户无需手动删除即可共享您的网址)的另一种方法是使用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)。大多数浏览器将请求更改为301或302重定向上的GET请求,这是RFC 7231明确允许的。有一个新的308重定向代码一定不能重写其方法,但是不幸的是Windows 7上的Internet Explorer不支持它(并且可能永远不会)。


请勿参与大规模监视。Header如果使用此行,请删除该行,您将不想使用fbclid。有趣的是,“永久”重定向可以有一个有效期,但这对您来说是网络的有机本质。:-)
clacke
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.