6

(非同期バージョンの) Google アナリティクスでアウトバウンド リンクを追跡するための公式の提案は、次のような追跡イベントをキューにプッシュすることです。

gaq.push(['_trackEvent', 'Outbound', 'http://foo.bar/']);
setTimeout('document.location = "http://foo.bar"', 100);

次のように、無名関数を GA キューにプッシュする方がよいのではないでしょうか。

gaq.push(['_trackEvent', 'Outbound', 'http://foo.bar/']);
gaq.push(function() { document.location = 'http://foo.bar/'; });

バージョンではsetTimeout、リダイレクトが発生する前にイベントが処理されるという保証はありませんが、2 番目のバージョンでは、イベントが処理された後にのみリダイレクトされます。

4

2 に答える 2

2

提案を行う際の問題は、ページが変更される前にリクエストを行う時間がないことです。

ブラウザは、ユーザーを先に進める前に、これら2つのイベントが完了するのを待ちません。jQueryに精通している場合は、clickイベントハンドラーをリンクに追加し、ajaxそのハンドラーにリクエストを追加するのと似ていますがevent.preventDefault()、そこには入れません。つまり、ユーザーはすでに次のページに移動しているため、ajaxリクエストは処理されません。

コメントで述べたように編集return falseします。リンクにも適用する場合、これは関係ありません。

例で示したような関数を実際にプッシュできる場合、最初のリクエストが何らかの理由でタイムアウトになり、ユーザーが彼らは通常100msします。

グーグルがブロックしたユーザーはどうですか?グーグルアナリティクス、アドセンスなどを完全にブロックすることができるアドオン/プログラムなどがたくさんあります。それらのユーザーは通常のユーザーエクスペリエンスを持っていますか?

于 2011-06-06T18:13:51.227 に答える
0

最良の方法はhitCallback、GA でサポートされている関数を使用することです。hitCallbackヒットが正常に送信されるとすぐに呼び出される関数です。

あなたの場合、次のようなことができます:

     // if after 300 ms, we still didn't get any action from hitCallback,
     // redirect manually
    setTimeout(function() {
      document.location = 'http://foo.bar/';
    }, 300);

    _gaq.push(['_set', 'hitCallback', function() {
      document.location = 'http://foo.bar/';
    }]);

    _gaq.push(['_trackEvent', 'outbound link ','click', 'http://foo.bar/']);

ここで要旨を作成しました:https://gist.github.com/jonasva/aa20811003e7077360fcb1b297f0311d

于 2016-10-10T03:40:23.720 に答える