1

我在我网站上的所有页面上都使用了以下 Universal Analytics 代码:

<script>
 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 ga('create', 'UA-XXXXXX-XX', 'mydomain.edu');
 ga('send', 'pageview');
</script>

在一些外部链接上,我需要能够跟踪这些链接。所以我尝试添加这样的 onclick 代码:

 <a href="http://www.externalsite.com" onclick="ga('send', 'pageview', {'page': '/myexternalpage','title': 'External Page'});">External page</a>

但是,当我观看实时分析时,它似乎并没有识别出这些。

有任何想法吗?

4

1 回答 1

1

这是由于在浏览器开始加载外部链接之前跟踪请求未完成而导致的竞争条件。

您需要做的是使用 hitCallback 参数,并通过return false在点击处理程序中使用来防止链接导航:

onclick="trackAndRedirect(); return false;"

<script>
function trackAndRedirect() {
  ga('send', 'pageview', {
    'page': '/myexternalpage',
    'title': 'External Page',
    'hitCallback': function() {
      //alert('analytics.js done sending data');
      document.location = "http://www.externalsite.com";
    }
  });
}
</script>

https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback

于 2013-08-30T16:44:55.143 回答