Ami*_*mir 6 javascript google-analytics
我正在使用Google Analytics并在分析请求完成后进行重定向.
我正在使用此代码:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12345678-1']);
_gaq.push(['_trackPageview']);
_gaq.push(function () {
window.location.replace("myRedirectToUri");
});
Run Code Online (Sandbox Code Playgroud)
这没有正确执行.
重定向在Firefox上正确完成(作为分析回调),但在其他浏览器(IE,Chrome,Safari)上没有,因此我丢失了分析数据.
目前我已将超时设置为1秒,但这不是真正的解决方案.
任何帮助如何正确实现这一点?
Edu*_*rdo 12
目前还没有解决这个问题的好方法.您可以做的最好是添加超时以延迟重定向.目前没有回调_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);
});
Run Code Online (Sandbox Code Playgroud)
编辑:
自从我最初发布这个答案以来已经过去2年了,从那时起谷歌分析已经走过了漫长的道路.
现在有一个正确的方法来做到这一点:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_gaq.push(['_set','hitCallback',function(){
window.location.href = newUrl;
}]);
_gaq.push(['_trackPageview']);
Run Code Online (Sandbox Code Playgroud)
如果您使用analytics.js迁移到Universal Analytics,则等价物将是:
ga('create', 'UA-XXXXXXX-X')
ga('send', 'pageview', {
'hitCallback': function() {
window.location.href = newUrl;
}
});
Run Code Online (Sandbox Code Playgroud)
编辑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', 'UA-XXXXXXX-X')
ga('send', 'pageview', {
'hitCallback': myCode
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1680 次 |
最近记录: |