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