Google Analytics(分析):如何跟踪在新标签中打开的出站链接?

问题描述:

我在网站上有很多出站链接,我希望通过Google Analytics(analytics.js)跟踪。Google Analytics(分析):如何跟踪在新标签中打开的出站链接?

谷歌的docs on outbound link tracking清楚,实现他们建议对我的作品。 问题是在新选项卡/窗口中打开的链接。谷歌建议通过回调函数打开链接,该函数在跟踪事件发送给GA后更新document.location。但是这显然不会在新标签中打开链接。而且,关键的是,使用window.open似乎成为弹出窗口拦截器的受害者。

这是谷歌的建议实施:

<script> 
var trackOutboundLink = function(url) { 
    ga('send', 'event', 'outbound', 'click', url, {'hitCallback': 
    function() { 
    document.location = url; 
    } 
    }); 
} 
</script> 

我可以简单地忽略回调函数,并让浏览器中打开新的标签,但如果我这样做,谷歌说,有该事件将不会获得注册机会 - 我的跟踪将不准确。

+1

如果该链接将在新标签中打开,跟踪将工作而不会回调,因为跟踪代码的标签仍然打开。您可以在那里插入一个if语句,并且只在链接没有'target =“_ blank”'时添加回调。 – Reeno 2014-09-03 14:12:11

如果你要跟踪点击出站链接和链接可在新窗口或标签开启,您不必担心回调。该页面将很好地跟踪事件。问题来自同一帧中的链接,因为点击事件正在发送的同时,点击跟踪页面被拆除。因此,对于新窗口/选项卡中的目标链接,不要担心,因为您的正常点击事件可以正常工作。

如果您需要跟踪的出站链接,但担心在当前标签/窗口打开链接,一个解决方案是有一个服务器端重定向脚本,做谷歌Analytics跟踪。它的工作原理有点像这样:

  • mousedown上,链接的href属性被替换为JavaScript。从http://example.com/yourTrackingScript?gaCategory=Something&gaEvent=Click&gaLabel=SomeLink&url=http%3A%2F%2Fexample.com。在mousedown上发生这种情况很重要,这样如果有人右键单击链接以在新的选项卡/窗口中打开,则仍会插入服务器端跟踪脚本。 Google在其搜索结果页面上使用此方法。
  • /yourTrackingScript打完从使用measurement protocol服务器端谷歌分析您的活动。
  • /yourTrackingScript使用302重定向来响应查询字符串中传递的任何URL。
  • 用户被重定向到最终目的地,而这一切通常发生得很快,甚至没有注意到。