Javascript 无法使用Universal Analytics代码为外部链接创建自定义页面跟踪URL

Javascript 无法使用Universal Analytics代码为外部链接创建自定义页面跟踪URL,javascript,google-analytics,Javascript,Google 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.pa

我在我网站的所有页面上使用以下通用分析代码:

<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>

(函数(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]| |函数(){
(i[r].q=i[r].q | |[]).push(参数)},i[r].l=1*新日期();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(窗口,文档,“脚本”,“www.google-analytics.com/analytics.js”,“ga”);
ga(“创建”、“UA-XXXXXX-XX”、“mydomain.edu”);
ga(‘发送’、‘页面浏览’);
在一些外部链接上,我需要能够跟踪这些。因此,我尝试添加如下onclick代码:

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

然而,当我观看实时分析时,它似乎没有意识到这些


有什么想法吗?

这是由于在浏览器开始加载外部链接之前,赛道请求未完成而导致的比赛状态

您需要做的是使用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>
onclick=“trackAndRedirect();返回false;”
函数trackAndRedirect(){
ga('send'、'pageview'{
“页面”:“/myexternalpage”,
“标题”:“外部页面”,
“hitCallback”:函数(){
//警报(“analytics.js已完成发送数据”);
document.location=”http://www.externalsite.com";
}
});
}

这是由于在浏览器开始加载外部链接之前,赛道请求未完成而导致的比赛状态

您需要做的是使用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>
onclick=“trackAndRedirect();返回false;”
函数trackAndRedirect(){
ga('send'、'pageview'{
“页面”:“/myexternalpage”,
“标题”:“外部页面”,
“hitCallback”:函数(){
//警报(“analytics.js已完成发送数据”);
document.location=”http://www.externalsite.com";
}
});
}