JavaScript在谷歌分析后执行

前端之家收集整理的这篇文章主要介绍了JavaScript在谷歌分析后执行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Google Analytics并在分析请求完成后进行重定向.

我正在使用此代码

var _gaq = _gaq || [];

_gaq.push(['_setAccount','UA-12345678-1']);

_gaq.push(['_trackPageview']);

_gaq.push(function () {
     window.location.replace("myRedirectToUri");
});

这没有正确执行.

重定向在Firefox上正确完成(作为分析回调),但在其他浏览器(IE,Chrome,Safari)上没有,因此我丢失了分析数据.

目前我已将超时设置为1秒,但这不是真正的解决方案.

任何帮助如何正确实现这一点?

解决方法

目前还没有解决这个问题的好方法.您可以做的最好是添加超时以延迟重定向.目前没有回调_trackPageview.当它返回时意味着它开始跟踪,但它没有保证它已成功注册了网页视图,直到__utm.gif请求完成.

1秒超时可能太多了.我通常将超时保持在200-400毫秒左右.

var _gaq = _gaq || [];

_gaq.push(['_setAccount','UA-XXXXXXX-X']);

_gaq.push(['_trackPageview']);

_gaq.push(function () {
     setTimeout(function(){
         window.location.href = newUrl;
     },200);
});

编辑:

自从我最初发布这个答案以来已经过去2年了,从那时起谷歌分析已经走过了漫长的道路.

现在有一个正确的方法来做到这一点:

var _gaq = _gaq || [];

_gaq.push(['_setAccount','UA-XXXXXXX-X']);

_gaq.push(['_set','hitCallback',function(){
  window.location.href = newUrl;
}]);  

_gaq.push(['_trackPageview']);

如果您使用analytics.js迁移到Universal Analytics,则等价物将是:

ga('create','UA-XXXXXXX-X')

ga('send','pageview',{
  'hitCallback': function() {
    window.location.href = newUrl;
  }
});

编辑2

这是更合适的方法,即使Google Analytics代码被扩展程序或adBlocker阻止或篡改,也要确保代码执行.

var t = undefined;

var myCode = function(){
  window.clearTimeout(t);
  t = undefined;
  window.location.href = newUrl;

};

t = setTimeout(myCode,3000);

ga('create',{
  'hitCallback': myCode
});

猜你在找的JavaScript相关文章