JavaScript 在谷歌分析后执行

标签 javascript google-analytics

我正在使用 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 年了,从那时起,Google Analytics 已经取得了长足的进步。

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

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(分析)代码被扩展程序或广告拦截器阻止或篡改,您的代码也能执行。

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
});

关于JavaScript 在谷歌分析后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309456/

相关文章:

google-analytics - 如何在 Google Analytics 中跟踪 "Open New Tab"流量

javascript - ReactJS - 弹出组件错误 : Target container is not a DOM element

javascript - 在 Mocha 测试中找不到 Chai 导出

java - Websocket:页面重新加载后维护用户 session

javascript - 如何仅在启用 Google Analytics 脚本的情况下调用某些 JavaScript 代码?

android - Android 版 Google Analytics 的问题 : "Dispatcher thinks it finished, but there were 543 failed events"

javascript - 如果元素具有特定类,则禁用 jQuery UI 可拖动

javascript - 使用 gatsby-plugin-react-svg 从导入 svg 接收 "InvalidCharacterError: String contains an invalid character"

reactjs - Web 应用程序的 firebase.analytics() 默认记录事件是什么?

javascript - Google Analytics 如何知道我们使用的是哪种互联网连接?