有两天时间,我注意到我在Facebook上发布的URL添加了一个参数:
?fbclid=uFCrBkUgEvKg...
更精确地说,例如:http://example.com?fbclid=uFCrBkUgEvKg...
有人知道此参数的作用吗?
它是做什么用的,开发人员有什么用?
感谢您的意见。
有两天时间,我注意到我在Facebook上发布的URL添加了一个参数:
?fbclid=uFCrBkUgEvKg...
更精确地说,例如:http://example.com?fbclid=uFCrBkUgEvKg...
有人知道此参数的作用吗?
它是做什么用的,开发人员有什么用?
感谢您的意见。
Answers:
我知道gclid
,是短期的(g ^ oogle氯ICK标识entifier)
这是一个独特的跟踪参数是谷歌应用到你的谷歌广告之间传输信息帐户,您的谷歌Analytics帐户。
Facebook必须在做相同或相似的事情fbclid
以改善跟踪分析系统。
这对我有帮助: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]
RewriteCond %{QUERY_STRING} ^(.*)&?fbclid=[^&]+&?(.*)$ [NC] RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
删除此参数(以便用户无需手动删除即可共享您的网址)的另一种方法是使用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);
}
})();
据我了解,该参数是跟踪网站访问者的一种手段,因此,如果您的网站包含来自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
。有趣的是,“永久”重定向可以有一个有效期,但这对您来说是网络的有机本质。:-)