8

誰かがブログ リンク (たとえばhttp://blog ) をたどって、私のサイト (たとえばhttp://mysite/a.php ) にアクセスします。

だから今、彼女はページhttp://mysite/a.php にいて、リファラーはhttp://blogに設定されています

現在、次のリダイレクトを行うページhttp://mysite/a.phpに JavaScript があります。

    document.location = "http://mysite/b.php;
    //これは、Google アナリティクス スクリプトの前に実行されます。

http://mysite/b.phpへのリクエストでは、リファラーはhttp://mysite/a.phpとして設定されます。
そのため (私はそう思います)、私の Google Analytics はhttp://mysite/a.phpからのすべてのトラフィックを表示しています。

解決策を提案してください。
注: JavaScript リダイレクトは重要であり、取り除くことはできません。
また、サーバーから 302 コードを送信しようとしましたが、成功しませんでした。

4

2 に答える 2

11

編集:新しい、推奨される方法

Google アナリティクスには、utm_referrerリダイレクト先のページへのリファラーを渡すことができる特別な URL パラメータ が追加されました。そうすることで、Cookie や関数をいじる必要なく、以下と同じ動作をシミュレートできます。

あなたの例では、コードを次のようにします。

 document.location = "http://mysite/b.php?utm_referrer=" + encodeURIComponent(location.href); ;

古くて難しいが機能的な方法

Google アナリティクスにはsetRefererOverride()という関数があります。設定すると、追跡するリファラーの値が、設定した値に上書きされます。

これを行う最善の方法は、リダイレクトの前に、次のように実際のリファラーを Cookie に保存することです。

document.cookie = "realreferrer="+encodeURIComponent(document.referrer)+"; path=/";

次に、ページの Cookie 値を読み取ります。Cookie が設定されている場合は、ページビューの前にその関数を呼び出します。

var realreferrer = readCookie("realreferrer"); //using a readCookie function of some kind
if (realreferrer) {
 _gaq.push(['_setReferrerOverride', realreferrer ]);
            //if using the old code, use pageTracker._setReferrerOverride(realreferrer);
}
于 2010-11-11T15:18:23.173 に答える
0

a.php最もクリーンな (そしておそらく唯一の) 方法は、リダイレクトを行う前に GA カウントをトリガーすることだと思います。

それができない場合、リファラーを存続させるために私が見ることができる唯一の方法は

document.location = "http://mysite/b.php?referrer="+
                    encodeURIComponent(document.referrer);

(状況によっては IE で動作しません)

しかし、それでも GA にリファラーを適切に設定するように指示することはできません。カウントするときに、Google アナリティクスで強制的に設定する必要があります。それが可能かどうかはわかりません。

于 2010-11-11T14:04:28.147 に答える