我在网站上有许多出站链接,我希望通过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>
我可以简单地省略回调功能并让浏览器打开新标签,但如果我这样做,谷歌表示该活动有可能无法注册 - 我的跟踪将不准确。
答案 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。