Rails4涡轮链接和谷歌分析

Rails 4 Turbolinks and Google Analytics

本文关键字:谷歌 链接 Rails4      更新时间:2024-01-12

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

我使用了以下答案来生成一个变通方法:

谷歌分析与轨道4

以下代码来自我在assets>javascripts 下创建的新analystics.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>

然后,我将以下代码放在我的应用程序中。html.erb文件的Views>Layouts 下

<%= render 'layouts/footer' %>

application.html.erb文件中的呈现代码导致应用程序崩溃,所以我猜我做错了什么。我已经按照指南走了,但无法让它发挥作用。

感谢您的时间和努力。

好吧,你做错了一件事,那就是你使用了两个版本的谷歌分析的代码。

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

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

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

我建议阅读关于使用analystics.js构建单页应用程序的开发人员指南,以了解如何正确实现这一点。

或者,如果你不想学习这些东西,只需使用涡轮链接宝石:)