web-dev-qa-db-ja.com

Fbclidとは何ですか?新しいfacebookパラメータ

2日間、私は自分がFacebookに公開しているURLにパラメータが追加されていることに気付きました。
?fbclid=uFCrBkUgEvKg...
より正確には、次のようになります。http://example.com?fbclid=uFCrBkUgEvKg...

誰もがこのパラメータが何をするのか知っていますか?
それは何のためにあり、開発者は何を使用していますか?

コメントしてくれてありがとう。

60
Rafael Dorado

gclidは、( _ g _ oogle Cl ick Id entifier)の略です。
これは一意の トラッキングパラメータ that Google で、Google AdsアカウントとGoogle Analyticsアカウントの間で情報を転送するために使用されます。

Facebook はトラッキング分析システムを改善するためにfbclidと同じことか類似したことをしていなければなりません。

19
Marcin Milowski

これは私を助けました: 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]
17
no one special

もう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);
        }
})();
11
Pavel Štěrba

ご存じのとおり、このパラメータはサイトの訪問者を追跡する手段であり、サイトに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ではサポートされていません (そしておそらく決してそうなることはありません).

5
Richard Smith