2

私のhtmlには次のようなアウトバウンドリンクがあります:

<a href="http://www.example.com" class="gaLink1" 
target="_blank" onCLick="ga_track_link('action', '123', 'abcde', 'fghij')"> 
<img src="http://www.example.com/image.jpg" alt="image name" height="180" style="max-width:153px;max-height:150px;" />
</a>

したがって、この画像をクリックすると、target="_blank" があるため、リンク www.example.com が新しいタブで開くはずです。また、onCLick イベントは、次のように定義されている関数 ga_track_link を呼び出します。

function ga_track_link(action, id, name, source) {
    _gaq.push(['_trackEvent', 'category 1', action, id+': '+name]);
    _gaq.push(['_trackEvent', 'category 2', 'example', source, 15]);
}

この関数は、html の最後 (ボディ セクション内) のスクリプト セクションで定義されます。

GA で観察していますが、両方のイベントが追跡されています (カテゴリ 1 と 2) が、両方が追跡される回数は等しくありません。カテゴリ 2 はほぼ半分の頻度で表示されるため、2 番目のイベントが常に発生しているわけではないと思います。

このリンクhttp://support.google.com/googleanalytics/bin/answer.py?hl=en&answer=55527を見つけました。これ は、関数「ga_track_link」を html の head セクションに配置し、return False をオンクリック機能。

JavaScriptでいつ、なぜ「falseを返す」のような他のいくつかの回答によると? 、return false ステートメントは、イベント (onClick) が発生しないように指示しますが、2 つの GA イベントが発生した後に発生させたいので、これは私が望むものではありません。

だから、私は3つの質問があります:

1) 1 回のクリックで (_trackEvent を使用して) 2 つ以上の GA イベントを発生させることに問題はありますか? それを行う最良の方法は何ですか?

2) 上記の Google アナリティクスのリンクで、関数を html の head セクションに配置する必要があると記載されているのはなぜですか?

3)誰かが「return false」ステートメントの目標とそれを正しく使用する方法を明確にしてもらえますか?

4

2 に答える 2

4

1) 1 回のクリックで (_trackEvent を使用して) 2 つ以上の GA イベントを発生させることに問題はありますか? それを行う最良の方法は何ですか?

いいえ、問題ありませんが、ワンプッシュで両方を行うことができます. ワンプッシュ、複数のコマンド

2) 上記の Google アナリティクスのリンクで、関数を html の head セクションに配置する必要があると記載されているのはなぜですか?

JavaScript がページに読み込まれる前に、ユーザーがリンクをクリックする可能性があるためです。

3)誰かが「return false」ステートメントの目標とそれを正しく使用する方法を明確にしてもらえますか?

私の理解では、要素のデフォルトの動作が妨げられ、関数呼び出しの後にリストされている場合、その関数呼び出しには影響しないはずです。これは、あなたが引用した質問への回答の1つに記載されているとおりです。

<a href="#" onclick="doSomeFunction(); return false;">

あなたが提供したGoogleアナリティクスのサポートリンクでreturn false;は、リンクがユーザーをサイトからすぐに送信するのを止めています. 事前に追跡機能を実行し、遅れてユーザーを外部サイトにリダイレクトします。これにより、リダイレクトの前にトラッキング コードを送信するのに必要な時間を確保できます。

function recordOutboundLink(link, category, action) {
    _gat._getTrackerByName()._trackEvent(category, action); //set tracking
    setTimeout('document.location = "' + link.href + '"', 100); // redirect to external site after delay
}
于 2012-02-23T14:31:51.827 に答える
0

あなたの機能target="_blank"を使用してすべてのリンクを持っていますか?ga_track_link()

リンクが同じウィンドウで開かれている場合、_trackEvent によって行われたトラッキング ピクセルのリクエストが完了するまでに、新しいページの取得が開始されない可能性があります。リンクが新しいウィンドウで開く場合は問題ありません。

于 2012-02-23T15:41:23.160 に答える