2009-08-11 6 views
0

Ich versuche, die Klicks bestimmter Download-Links zu erfassen und sie in Google Analytics zu verfolgen. Hier ist mein CodeProblem beim Ausführen von trackPageview mit Google Analytics

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); 

} 

Alles bis zum Aufruf der pageTracker._trackPageview() funktioniert. In meinem Debugging wird Linkhref als String übergeben. Keine ungewöhnlichen Charaktere, nichts. Das Problem ist, dass Google, wenn er meine http-Anfragen beobachtet, niemals einen zweiten Aufruf an das Tracking-GIF sendet (wie es der Fall ist, wenn Sie diese Funktion in einer "onclick" -Eigenschaft aufrufen). Das Aufrufen des Trackers über meine JS-Konsole funktioniert ebenfalls wie erwartet. Es ist nur in meinem Zuhörer.

Kann es sein, dass mein Listener die Standardaktion (Laden der neuen Seite) nicht verzögert, bevor er die Google-Server kontaktieren kann? Ich habe andere Tracking-Skripts gesehen, die eine ähnliche Funktion ohne Verzögerung ausführen. Versuchen

Antwort

0

pageTracker._trackPageview ('/ pageX/downloadlink.html')

Auch nur zum Spaß machen, dass der GA-Code zunächst vor diesem Skript geladen wird. Irgendwann ist GA wählerisch und komisch.

Lassen Sie mich wissen, ob das

@ctrentmarketing

+0

Ja hilft, habe ich versucht, einen statischen Weg Tracking, wie Sie vorgeschlagen, die entweder nicht funktioniert hat. Stellen Sie sicher, dass GA vor diesem Skript geladen wurde und keine Würfel. – dmrnj

+0

Ich habe das Gefühl, dass ich diese Frage ein Update verdanke, da es fast ein Jahr später ist und ich dieses Problem viele Male erlebt habe. Mein _pageTracker-Objekt verwendete _setDomainName(), aber ich habe diesen Code lokal versucht. Wenn die Domäne kollidiert, lädt das Tracking-JS offensichtlich, aber das Tracking-Pixel wird nie aufgerufen. – dmrnj

Verwandte Themen