【问题标题】:Rails 4 Turbolinks and Google AnalyticsRails 4 Turbolinks 和谷歌分析
【发布时间】:2015-02-17 20:56:18
【问题描述】:

我希望将 Google Analytics 添加到我的 Rails 4 应用程序中,并已阅读有关 Turbolinks 的问题。

我已使用以下答案来产生解决方法:

Google analytics with rails 4

以下代码来自我在 assets>javascripts 下创建的新 analytics.js.coffee 文件

app/assets/javascripts/analytics.js

// Coffee
$(document).on 'page:change', ->
 if window._gaq?
  _gaq.push ['_trackPageview']
 else if window.pageTracker?
  pageTracker._trackPageview()

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

视图 > 布局 > _footer.html.erb(我设置的用于加载代码的文件)

<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-837283948-1', 'myapplication.com');
  ga('send', 'pageview');

</script>

然后我将以下代码放在 Views > Layouts 下的 application.html.erb 文件中

<%= render 'layouts/footer' %>

application.html.erb 文件中的渲染代码导致应用程序崩溃,所以我猜我做错了什么。我已按照指南进行操作,但无法正常工作。

感谢您的时间和努力。

【问题讨论】:

  • 您考虑过使用google-analytics-turbolinks Gem吗?
  • @spickermann 不,我不知道这个解决方案。是不是和上面的一样?如果我能够通过简单的代码更改来完成上述工作,那就太好了。期待您的想法。
  • 是的,基本上是一样的。看看at the source code

标签: javascript ruby-on-rails ruby google-analytics


【解决方案1】:

嗯,您做错的一件事是您使用了来自两个版本的 Google Analytics(分析)的代码。

在您的第一个代码示例中,_gaq.push(['_trackPageview']); 行引用了 ga.js 库中旧的 _gaq 全局变量。

在第二个代码示例中,ga('send', 'pageview'); 行引用了 analytics.js 库中的新 ga 全局变量。

除此之外,使用 Turbolinks 跟踪网页浏览量很难的原因是 Rails 正在将您的应用从传统的请求-响应转换 模型转换为单页应用程序模型。

我建议阅读building single page apps with analytics.js 上的开发人员指南,以大致了解如何正确执行此操作。

...如果您不想学习这些东西,或者只是使用 turbolinks gem :)

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2022-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多