2012-09-13 83 views
0

我们目前的外部链接代码没有正常工作,所以我被要求制定一个新的集。这是我从另一个网站取下的代码,但它看起来好像正常工作(保存$()。准备好它缺失)。我很清楚Google建议你手动将onclick放到每个外部链接中,但是在我的网站上有太多这样做是不切实际的,所以我正在使用JQuery作为一个整体。我一直无法在用户通常无法访问的多个页面上执行此操作(由于监督偏执狂),因此不得不激活页内分析以查看该页面的统计信息。没有点击外部链接注册,但我发现(使用警报),_gaq.push至少发射。下面是代码(现在固定):谷歌分析外部链接代码不起作用

$().ready(function(){ 
    $("a").on('click',function(e){ 
     var url = $(this).attr("href"); 
     if (e.currentTarget.host != window.location.host) { 
      _gaq.push(['_trackEvent', 'Outbound Link', e.currentTarget.host, url, 0]); 
      if (e.metaKey || e.ctrlKey || this.target=="_blank") { 
       var newtab = true; 
      } 
      if (!newtab) { 
       e.preventDefault(); 
       setTimeout('document.location = "' + url + '"', 100); 
      } 
     } 
    }); 
}); 

的(!NEWTAB)如果是为了确保使用超时_gaq.push火灾。任何想法来解决它?

编辑:可能值得注意的是,这是一个外部文件。

编辑2:代码已更正错误,以便其他人愿意使用它的复制/粘贴。非常感谢迈克。

回答

3

您的代码没有明显的错误。我试图检查__utm.gif跟踪像素请求,而不是尝试通过页内分析来验证事件。有几种不同的方法:

我的偏好设置是使用Chrome开发者工具或提琴手。

页面上的分析代码可能有一个_trackPageview,所以当页面加载时,您会看到一个初始__utm.gif。

当_trackEvent触发时,您应该看到正在创建一个新的__utm.gif请求。在物联网将__utm.gif URL核实的部分包括:

  • utme = 5(出站链接*主机* URL) - _trackEvent参数
  • utmac = UA-1234567-8 - 的分析UID

更正 - 小错误:target=="_blank"应在this.target=="_blank"在检查中打开一个新的窗口。

+0

谢谢。加载时,页面上会显示_utm.gif。然而,当点击一个链接时,一切 - 我的意思是一切 - 在网络标签中消失。有什么特别的我应该关注_utm.gif网址?在对它进行一些基础研究之后,似乎实际上可以告诉我如何做到这一点。 此外,GA调试器并不适合我。我要去的网站要么没有GA,要么没有最新版本(无论哪种方式,调试器都没有响应)。也许我错用了它? – user1583044

+0

所有消失的原因是因为当前窗口中正在加载新页面。为了防止这种情况发生,使用开发人员工具在chrome中,可以将target ='_ blank'属性添加到其中一个链接,这会导致链接在新窗口中打开。我添加了一些关于_trackEvent的附加信息__utm.gif – mike

+0

对不起,迟到的反应 - 得到了这个和其他事情。我正在处理的网站有一项政策,即所有外部链接都转到新标签,因此我测试的每个标签都有“target ='_ blank'”作为限定符。然而,出于一个奇怪的原因(可能与这个代码有关,因为它只在这个特定的页面上),“target”属性不再起作用(没有新的标签页,相同的页面)。显然,这使得_utm.gif很难跟踪。有什么可能导致这种情况的建议?有问题的页面是[在这里](http://library.uis.edu/sandbox201209.html)。 – user1583044