2009-08-11 9 views
0

J'essaie de capturer les clics de certains liens de téléchargement et de les suivre dans Google Analytics. Voici mon codeProblème d'exécution de trackPageview avec 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); 

} 

Tout jusqu'à ce que l'appel de pageTracker._trackPageview() fonctionne. Dans mon débogage, linkhref est transmis comme une chaîne. Pas de caractères anormaux, rien. Le problème est que, en regardant mes requêtes http, Google n'effectue jamais un second appel au gif de suivi (comme si vous appeliez cette fonction dans une propriété "onclick"). L'appel du tracker depuis ma console JS fonctionne également comme prévu. C'est seulement dans mon auditeur.

Mon auditeur ne peut-il pas différer l'action par défaut (en chargeant la nouvelle page) avant de pouvoir contacter les serveurs de Google? J'ai vu d'autres scripts de suivi qui font la même chose sans aucun report.

Répondre

0

Essayez

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

Aussi, juste pour le plaisir assurez-vous que le code GA est d'abord chargé avant ce script. Parfois GA est difficile et bizarre comme ça.

Laissez-moi savoir si cela aide

@ctrentmarketing

+0

Ouais, j'ai essayé le suivi d'un chemin statique comme vous le suggérez, qui ne fonctionne pas non plus. Certainement assuré que GA est chargé avant ce script, et pas de dés. – dmrnj

+0

Je me sens comme je dois une mise à jour à cette question depuis que c'est presque un an plus tard et j'ai rencontré ce problème plusieurs fois. Mon objet _pageTracker utilisait _setDomainName(), mais j'essayais ce code localement. Lorsque le domaine est en conflit, le suivi JS se charge évidemment, mais le pixel de suivi n'est jamais appelé. – dmrnj

Questions connexes