什么是fbclid?新的facebook参数

Raf*_*ado 75 url facebook ads

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

有谁知道这个参数是做什么的?
它的用途是什么,开发人员的用途是什么?

感谢您的意见.

小智 25

A gclid,是(G oogle Cl ick Id entifier)
的简称.这是Google用于在您的Google广告帐户和Google Analytics帐户之间传输信息的唯一跟踪参数.

我认为Facebook正在做同样的事情或类似的改进跟踪分析系统.

  • 同时打破全球缓存:D同时.对许多人来说 (19认同)
  • @Luka-您仍然可以使用缓存。您只需要从缓存中排除fbclid,gclid和utm参数即可:)许多解决方案都支持此功能。 (4认同)
  • 如果此查询的重点是跟踪访客,则应在文档或隐私权政策中进行说明。似乎fblcid对每个用户都是唯一的。如果确实如此,则存在巨大的隐私问题和GDPR违规行为。 (3认同)
  • 一些缓存插件没有这样的选项,它们实际上是为每个 url 创建单独的缓存页面,这等于没有缓存(因为 fbclid 永远不会相同)。Nginx 实现删除它是最好的。https://gist.github.com/lynt-smitka/b5ff2cab70443c17a214006a4d5bc48c?fbclid=IwAR1Oxrf4zvchNGSKWjtYdQ_4XXVGAcz-27ucaqGcAzRk2DXbT9SzoU (2认同)

no *_*ial 16

这帮助了我:https://greasyfork.org/en/forum/discussion/44083/fbclid-tracking-parameter-attached-by-facebook

以下链接引用:

将此代码放在.htaccess文件中:

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

如果你在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]
Run Code Online (Sandbox Code Playgroud)

  • 此答案中的解决方案将覆盖您的整个查询参数,例如"?"之后的所有内容 会被扔掉 这可能会破坏使用查询参数的网页的某些功能.所以,确保这是你想要的.另外,请查看stackoverflow/serverfault上的答案,了解如何删除特定的查询参数. (6认同)
  • 谁不使用上面的选项尝试使用这个:`RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+&?(.*)$ [NC] RewriteRule ^(.*)$ /$1 ?%1%2 [R=301,L]` (2认同)
  • 让我觉得所有网络服务器都应该重写为随机的东西并将新请求转发到 FB 的服务器;) (2认同)

Pav*_*rba 11

另一种方法是,如何删除此参数(以便您的用户可以共享您的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);
        }
})();
Run Code Online (Sandbox Code Playgroud)


Ric*_*ith 7

据我了解,该参数是跟踪网站访问者的一种手段,因此,如果您的网站包含来自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
Run Code Online (Sandbox Code Playgroud)

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不支持它(并且可能永远不会)。