我希望使用 Google Analytics (analytics.js) 跟踪网站上的许多出站链接。
谷歌的 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>
我可以简单地省略回调函数并让浏览器打开新标签页,但如果我这样做,Google 说事件有可能不会被注册 - 我的跟踪将不准确。
最佳答案
如果您在点击时跟踪出站链接并且您的链接将在新窗口或选项卡中打开,则您不必担心回调。该页面将很好地跟踪事件。问题来自同一框架中的链接,因为带有点击跟踪的页面在发送点击事件的同时被拆除。因此,对于新窗口/选项卡中带有目标的链接,请不要担心,因为您的正常点击事件会正常工作。
如果您需要跟踪出站链接但担心在当前选项卡/窗口中打开的链接,一种解决方案是使用服务器端重定向脚本来执行 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。- 用户被重定向到最终目的地,这一切通常发生得很快,他们甚至没有注意到。
关于javascript - 谷歌分析 : how to track outbound links that open in a new tab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25646494/