特定のダウンロードリンクのクリックをキャプチャしてGoogleアナリティクスでトラッキングしようとしています。ここに私のコードですGoogle AnalyticsでtrackPageviewを実行すると問題が発生する
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
linkpath = links[i].pathname;
if(linkpath.match(/\.(pdf|xls|ppt|doc|zip|txt)$/) || links[i].href.indexOf("mode=pdf") >=0){
//this matches our search
addClickTracker(links[i]);
}
}
function addClickTracker(obj){
if (obj.addEventListener) {
obj.addEventListener('click', track , true);
} else if (obj.attachEvent) {
obj.attachEvent("on" + 'click', track);
}
}
function track(e){
linkhref = (e.srcElement) ? e.srcElement.pathname : this.pathname;
pageTracker._trackPageview(linkhref);
}
pageTracker._trackPageview()コールが動作するまでのすべてです。私のデバッグでは、linkhrefは文字列として正常に渡されています。異常な文字はありません。問題は、私のhttpリクエストを見て、Googleが(この関数を "onclick"プロパティで呼び出した場合と同じように)トラッキングgifを2度も呼び出さないことです。 JSコンソールからトラッカーを呼び出すと、期待どおりに動作します。それは私の聞き手の中だけです。
Googleのサーバーに連絡する前に、リスナーがデフォルトの操作(新しいページを読み込む)を延期していない可能性がありますか?私は、遅延なしで同様のことを行う他のトラッキングスクリプトを見てきました。
を@ctrentmarketing
を助けている場合、私に教えてください、私は静的なパスを追跡してみました。間違いなく、このスクリプトの前にGAがロードされ、ダイスがないことを確認しました。 – dmrnj
私はこの質問に謝罪しているようですが、それはほぼ1年後です。何度もこの問題にぶつかりました。 私の_pageTrackerオブジェクトは_setDomainName()を使用していましたが、このコードをローカルで試していました。ドメインが競合すると、追跡JSが明らかに読み込まれますが、追跡ピクセルは決して呼び出されません。 – dmrnj