2日間、Facebookで公開しているURLに、
?fbclid=uFCrBkUgEvKg...
次のようなパラメータが追加されていることに気付きました。より正確には、次のようになります。http://example.com?fbclid=uFCrBkUgEvKg...
このパラメータが何をするのか誰か知っていますか?
それは何のためにあり、開発者の用途は何ですか?
コメントしてくれてありがとう。
2日間、Facebookで公開しているURLに、
?fbclid=uFCrBkUgEvKg...
次のようなパラメータが追加されていることに気付きました。より正確には、次のようになります。http://example.com?fbclid=uFCrBkUgEvKg...
このパラメータが何をするのか誰か知っていますか?
それは何のためにあり、開発者の用途は何ですか?
コメントしてくれてありがとう。
回答:
私はそれを知っているgclid
、の略です(G oogleのCl ICKのId entifier)
それはユニークだのトラッキングパラメータというのGoogleはGoogleの広告間の伝達情報に使用するアカウントとGoogle 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]
別のアプローチとして、このパラメーターを削除する方法(ユーザーが手動で削除せずに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);
}
})();
私が理解しているように、パラメーターはサイト訪問者を追跡する手段であり、サイトにFacebookからの広告が含まれている場合、訪問者の記録された閲覧習慣に一致するようにカスタマイズできます。
上記のApachemod_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リダイレクトがキャッシュされる期間を制限することです。デフォルトでは、多くのブラウザが文字通り永久にキャッシュします。これにより、1週間(または604,800秒)に短縮されます。私はこれを考えるのに少数派かもしれませんが、それは私には良い習慣のようです。fbclid
トークンの存続期間はわかりませんが、トークンが長続きする場合は、Facebookが訪問者を同じURLに長期間誘導し、Facebookのターゲット広告をサポートしたい場合、または開始する場合を意味します。使用してfbclid
、あなたが必要とするための他の機能を、あなたは、これらの永続的にキャッシュされたリダイレクトを噛まないように戻ってくるかもしれません。ただし、リスクを冒してもかまわない場合は、Header
ディレクティブとE=limitcache:1
フラグの両方を削除できます。
の2つのテストは%{REQUEST_METHOD}
、ApacheがPOSTリクエスト(または、関連する場合はPUTやDELETEなどのより難解なリクエスト)をリダイレクトしないようにすることです。ほとんどのブラウザは、リクエストを301または302リダイレクトでのGETリクエストに変更します。これは、RFC7231で明示的に許可されています。あり、新たな308リダイレクトコードは、そのメソッドを書き換えてはいけませんが、残念ながらそれは、Windows 7上のInternet Explorerでサポートされていない(おそらくできなくなります決して)。
Header
これを使用する場合は、その行を削除してください。を使用する必要はありませんfbclid
。「永続的な」リダイレクトには有効期限がありますが、それがWebの有機的な性質です。:-)