質問

新しいリクエストが発生しないクリックをGoogleアナリティクス経由で追跡しようとしています。具体的には、 jQuery UIタブウィジェットで作成されたタブをクリックします。古いバージョンのコード(「urchinトラッカー」)を使用して、クリックを次のように記録しようとしています。

$('.ui-tabs-nav li a').click(function() {
    val = "/tab/" + $(this).attr('href');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

別の例では、同じ方法が機能しますが、その違いは、私が知る限り、文字列にハッシュ(#)記号がないことです。その文字は、 urchinTracker()によって追跡される文字列で許可されていないのですか、それとも他の原因(誰もリンクをクリックしていない以外!)があるのでしょうか?

役に立ちましたか?

解決

デフォルトでは、Googleアナリティクスはトラッキングを無効にしますアンカータグ。従来のトラッキングコードで有効にするには、次のフォームを使用します:

_uanchor = 1;
urchinTracker(val);

変数 _uanchor に値を設定することは、最新のGAコードベースを使用するときにメソッド _setAllowAnchor を呼び出すことと同等です。 (詳細な比較は、 Googleアナリティクストラッキングコードで確認できます。移行ガイド-このリンクは古くなっています)。

メソッド _setAllowAnchor は、 Googleリファレンスサイト

他のヒント

要するに、Googleアナリティクスは「#」文字を含むページ上のリンクを追跡できません。 index.html#fooのクリックは、index.htmlのクリックと同様に扱われ、「#」以降はすべて無視されます。

「#」文字のエスケープを検討できます:

$('.ui-tabs-nav li a').click(function() {
    val = new String("/tab/" + $(this).attr('href')).replace('#', '&');

    // when uncommented, the following line reports, for example:
    //   /tab/#main
    // as expected.
    // console.log(val);

    res = urchinTracker(val);
});

この例では、 / tab /?main のページビューを記録します。これは、Googleアナリティクスで正常に機能するはずです。

ページ内アンカーのクリックを追跡する場合、以下はグローバルに機能します:

window.onhashchange = function() {
  _gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}

次のような特定の onclick ハンドラーがある場合は注意してください

 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // some more clever stuff
 });

onhashchange

をトリガーするには、手動でハッシュを追加する必要があります
 $('#someid a').click(function(event){
   event.preventDefault();
   var target = $(this).attr('href');
   // triggers onhashchange
   location.hash = target;
   // some more clever stuff
 });

Googleアナリティクスイベントトラッキング例では、onclick =""を使用します。ゴミですが、おそらくこれらをjQueryクリックイベントにバインドすることもできます。

  1. _uanchor = 1; メソッドを使用してみました。それは機能しません 。動作しない理由は、ハッシュ値としてあなたのを送信するのではなく、Googleアナリティクスのパラメーターをハッシュ値として送信するように設計されているためです。

    引用されたガイドから T&#246; r&#246; k G&#225; borの答えで、設定< code> _uanchor には次の効果があります。

      

    有効にすると、デフォルトのの代わりにを使用して、クエリ文字列からリクエストステムを分離します

    これは「キャンペーントラッキング」セクションにあります。

  2. ロブナイトの回答は正常に機能しますが、少し修正しました。擬似コード:

    if (href contains ?) {
    href = href.replace('#', '&');
    } else {
    href = href.replace('#', '?');
    }
    

foo.html&amp; bar = baz のようなURLを持つことがGAにとって本当に重要であるかどうかはわかりませんが、私にとってはよりきれいに見えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top