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

时间:2014-09-03 14:07:17

标签: javascript google-analytics callback

我在网站上有许多出站链接,我希望通过Google Analytics(analytics.js)跟踪这些链接。

Google的docs on outbound link tracking很明确,他们建议的实施对我有用。 问题在于在新标签/窗口中打开的链接。 Google建议通过回调函数打开链接,该功能会在跟踪事件发送到GA后更新document.location。但这显然不会在新标签中打开链接。而且,至关重要的是,使用window.open似乎成为弹出窗口拦截器的受害者。

这是Google建议的实施方式:

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

我可以简单地省略回调功能并让浏览器打开新标签,但如果我这样做,谷歌表示该活动有可能无法注册 - 我的跟踪将不准确。

1 个答案:

答案 0 :(得分:9)

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

如果您需要跟踪出站链接但关注当前标签/窗口中打开的链接,则一种解决方案是使用服务器端重定向脚本执行Google 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将您的活动从服务器端发布到Google Analytics。
  • /yourTrackingScript以302重定向响应查询字符串中传递的任何URL。
  • 用户被重定向到最终目的地,这通常都是快速发生的,甚至没有注意到。