2009-08-11 88 views
0

我试图捕获某些下载链接的点击并在Google Analytics中跟踪它们。这里是我的代码使用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从不会再跟踪gif(就像在“onclick”属性中调用此函数一样)。从我的JS控制台调用跟踪器也能按预期工作。这只在我的听众中。

难道我的听众在没有机会联系Google服务器之前没有推迟默认操作(加载新页面)?我见过其他跟踪脚本,它们没有任何推迟做类似的事情。

回答

0

尝试

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

而且,只是为了好玩确保GA代码此脚本之前先加载。有时遗传算法很挑剔并且很奇怪。

让我知道这是否有助于

@ctrentmarketing

+0

是的,我试过跟踪静态路径如你所说,这也不能工作。肯定确保GA在这个脚本之前加载,并且没有骰子。 – dmrnj 2009-08-12 14:08:50

+0

我觉得自从这差不多一年之后,我就要将这个问题归咎于更新,而且我多次遇到这个问题。 我的_pageTracker对象正在使用_setDomainName(),但我在本地尝试此代码。当域冲突时,跟踪JS显然加载,但跟踪像素永远不会被调用。 – dmrnj 2010-07-21 13:12:04