Google Analyticsでアンカータグを追跡する方法
-
06-07-2019 - |
質問
新しいリクエストが発生しないクリックを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クリックイベントにバインドすることもできます。
-
_uanchor = 1;
メソッドを使用してみました。それは機能しません 。動作しない理由は、ハッシュ値としてあなたのを送信するのではなく、Googleアナリティクスのパラメーターをハッシュ値として送信するように設計されているためです。引用されたガイドから T&#246; r&#246; k G&#225; borの答えで、設定< code> _uanchor には次の効果があります。
有効にすると、デフォルトの
?
の代わりに#
を使用して、クエリ文字列からリクエストステムを分離しますこれは「キャンペーントラッキング」セクションにあります。
-
ロブナイトの回答は正常に機能しますが、少し修正しました。擬似コード:
if (href contains ?) { href = href.replace('#', '&'); } else { href = href.replace('#', '?'); }
foo.html&amp; bar = baz
のようなURLを持つことがGAにとって本当に重要であるかどうかはわかりませんが、私にとってはよりきれいに見えます。
_gaq.push(['_setAllowAnchor', true]);