リファラーの重要性
HTTP リクエストにはリファラー ヘッダーがあり、現在のトラフィックのソース参照ページを示すために使用されます。たとえば、www.sina.com.cn/sports/ のリンクをクリックして cctv.com のホームページにアクセスすると、参照元は www.sina.com.cn/sports/ になります。 Javascript では、document.referrer を通じて同じ情報を取得できます。この情報により、訪問者がどのチャネルから現在のページにアクセスしたかを知ることができます。これはウェブ分析にとって非常に重要であり、このリファラー情報を分析することで、さまざまなチャネルからのトラフィックの分布やユーザーが検索したキーワードなどがわかります。
しかし、さまざまな理由により、JavaScript で読み取られるリファラーが空の文字列になる場合があります。リファラーが失われる状況を以下にまとめます。
ページ ナビゲーション用の Location オブジェクトを変更する
Location オブジェクトは、ページ ナビゲーション用の非常に実用的なオブジェクトです。 URL の一部のみを変更できるためです。たとえば、cn ドメイン名から com ドメイン名に切り替える場合、他の部分は変更されません。
IE5.5 では空の文字列が返されます
Chrome3.0、Firefox3.5、Opera9.6、Safari3.2.2 はすべて正常にソース Web ページに戻ります
window.open メソッドで新しいウィンドウを開きます
例:
IE5.5 では空の文字列が返されます
Chrome3.0、Firefox3.5、Opera9.6、Safari3.2.2 はすべて正常にソース Web ページに戻ります
同じドメイン名がこのメソッドを通じてリダイレクトされる場合、windoww.opener オブジェクトにアクセスすることで失われたリファラー情報を取得できます。コードは次のとおりです:
マウス ドラッグで新しいウィンドウを開きます
マウス ドラッグは、現在非常に人気のあるユーザーの習慣であり、多くのブラウザーにマウス ドラッグ ブラウジングのサポートが組み込まれています。ただし、この方法で開かれたページは基本的にリファラーを失います。さらに、この場合、window.opener を使用して失われたリファラーを取得することはできません。
テスト済み:
Maxthon2.5.2、Firefox、Chrome3.0、Opera9.6、Safari3.2 用の FireGesture プラグイン。
Flash 内部リンクをクリックします
Flash をクリックして別の Web サイトにアクセスすると、リファラーの状況はさらに複雑になります。
IE では、クライアント Javascript の document.referrer を通じて読み取られた値は空ですが、トラフィック監視ソフトウェアを使用して確認すると、HTTP リクエストの Referer ヘッダーが実際には Valuable であることがわかります。これは、 IEで実装されたバグ。同時に、この値はソース Web ページのアドレスではなく、Flash ファイルのアドレスを指します。
Chrome 4.0 で Flash をクリックして新しいウィンドウにアクセスすると、リファラーもソース Web ページのアドレスではなく、Flash ファイルのアドレスを指します。
Chrome 3.0 と Safari 3.2 は同じですが、両方ともリファラー情報が失われます。
Opera は Firefox と同じで、Referrer の値はソース Web ページのアドレスです。
HTTPS から HTTP
HTTPS Web サイトから HTTP Web サイトにジャンプする場合、ブラウザーはリファラーを送信しません。すべての主要なブラウザの動作は同じです。
たとえば、HTTPS で Google Reader または Gmail を使用し、リンクをクリックして別の Web サイトに移動する場合、技術的に言えば、そのようなアクセスとユーザーが URL を直接入力することとの間に違いはありません。
リファラーの喪失が広告トラフィックのモニタリングに及ぼす影響
リファラーが失われると、Web Analytics は情報の非常に重要な部分を失い、特に広告トラフィックの場合は不可能になります。実際のソースを知るために。現在、Google Adsense 広告を使用している国内 Web サイトの多くは、広告リンクを開くために window.open メソッドを使用しているため、IE ではリファラーが失われ、現時点で最大の市場シェアを持つブラウザは IE であることがわかっていますので、その影響は次のとおりです。大きいものです。したがって、多くのトラフィック統計ツールは、トラフィックのこの部分を「直接トラフィック」として分類します。これは、ユーザーが URL を直接入力するのと同じです。
このような状況に備えて、広告主は広告を掲載する際にランディング ページの URL に特定のトラッキング パラメーターを追加する必要があります。
たとえば、Flash 広告をクリックすると、到達する URL は http://www.example.com/ になります。このトラフィックがどのチャネルから来たのかを監視するために、この広告のランディング URL を変更できます。このメソッドと同様に http.://www.example.com/?src=sina にアクセスし、JavaScript コードを使用してランディング ページでこの src パラメータを抽出すると、広告ソース情報を取得できます。
Google Adwords を実行する場合、バックグラウンド システムには「自動タグ設定」オプションがあり、このオプションを有効にすると、Google はすべての広告のランディング ページ URL を生成するときに gclid パラメータを自動的に追加します。このパラメータは、 Google Analytics バックエンドと Adwords 広告バックエンド。これにより、広告トラフィックがどの広告キャンペーンに該当するか、どの広告ソースや広告キーワードなどの情報を知ることができます。このアイデアは実際には上記のものと似ています。 Google が自動的に URL を変更しただけです。
IE での空のリファラーの解決策
window.location.href メソッドを使用して IE でジャンプすると、リファラーの値が空になります。タグ内でジャンプすると、リファラーは空になりません。したがって、この IE の問題は、次のコードを使用して解決できます
•新しい html5 ソリューションを使用し、rel="noreferrer" を使用し、接続属性を noreferrer として宣言します。現在、chrome4 でのみサポートされています。
•中間ページを使用しますが、実際には Google のメソッドを使用するなどしてリファラーを送信します。接続リダイレクト、noreferrer.js.
•JavaScript プロトコルのリンク転送を使用します。以下の手順を参照してください。
target="_blank" に相当する新しいウィンドウを開きます: