Rails turbolinks google analytics 要如何解决呢?

ytwman · 2013年12月04日 · 最后由 yasinjan 回复于 2014年11月26日 · 2497 次阅读

试过 google-analytics-turbolinks gem 和 http://railsapps.github.io/rails-google-analytics.html 两种办法都不行,不知道是不是我设置的有问题?请教下大神们该如何解决,google analytics 和 turbolinks 共存的问题。

我在 application.js 里面 添加了下面这段代码

(function() {
  $(document).on('page:change', function() {
    if (window._gaq != null) {
      return _gaq.push(['_trackPageview']);
    } else if (window.pageTracker != null) {
      return pageTracker._trackPageview();
    }
  });

}).call(this);

然后后再页面 body 里面增加了下面代码。

(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-11111111-1', 'xxx.xx');
ga('send', 'pageview');

但是每次加载页面或者刷新页面的时候都不会请求 google analytics。是不是我设置有问题呢?

去掉 body 的 inline js,有 jquery.turbolinks 的情况下

(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');

$(function() {
  ga('create', 'UA-11111111-1', 'xxx.xx');
  ga('send', 'pageview');
});

#1 楼 @Rei 你好,我在用 campo 3, 也遇到了 analytics 找不到代码问题,用的是这个办法:http://reed.github.io/turbolinks-compatibility/google_analytics.html. 是不是有其他补充的地方?

已经解决了。Thanks anyway.

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册