javascript - 谷歌分析 : how to track outbound links that open in a new tab?

标签 javascript google-analytics callback

我希望使用 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/

相关文章:

android - 谷歌分析推荐人 Activity

javascript - GTM Google Analytics 自定义维度变量仅在某些时候触发

javascript - 将函数传递给刺激

javascript - 已添加类型 “…” 消息的未捕获处理程序

javascript - 这符合您对回调的定义吗?

javascript - 帮助将数组循环到现有 div 中

javascript - 替换字符串中第 N 次出现的位置 - JavaScript

regex - RegEx可以匹配具有给定路径的所有url,但不能以单词“search”结尾

javascript - Angular 6 : Property 'fromEvent' does not exist on type 'typeof Observable'

javascript - 使用 Baobab 影响多个组件的状态