Skip to main content
 首页 » 编程设计

ruby-on-rails之无法让Google Analytics(分析)在Rails项目上工作

2025年05月04日156haluo1

目前,我正在使用Rails 5,并且一直在寻找一种通过TurboLink在我的应用程序中实现Google Analytics(分析)的方法。我访问的每个站点都有不同的说法,我经历了很多SO问题,但这些问题似乎都不起作用或已过时。

这是我尝试过的方法的简短列表:

https://medium.com/weareevermore/how-to-add-google-analytics-tracking-that-works-with-turbolinks-c5023610846d

http://nithinbekal.com/posts/turbolinks-google-analytics/

Rails 4 turbolinks with Google Analytics

http://railsapps.github.io/rails-google-analytics.html

我真的以为最后一个将是最有前途的\ _(ツ)_ /¯

所以我的问题是将Google Analytics(分析)集成到Rails应用程序中的最新方法是什么?

请您参考如下方法:

在使用Rails 5和Turbolink之前,我遇到了一个问题,并遇到了这个issue寻求帮助。

看来您可以使用rack-tracker进行操作(基于ekremkaraca的注释)。如果您不想使用依赖关系,则可以使用部分代码和javascript代码段以最少的代码来设置Google Analytics(分析)。我以这种方式配置了一些应用程序:

app / assets / javascripts / google_analytics.js

document.addEventListener('turbolinks:load', function(event) { 
  if (typeof ga === 'function') { 
    ga('set', 'location', event.data.url); 
    ga('send', 'pageview'); 
  } 
}); 


app / views / layouts / _ga.html.haml(在此示例中使用 haml而不是 erb

:javascript 
  (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', 'YOUR_GA_CODE_HERE'); 


app / views / layouts / application.html.haml(在 _ga中包括 head部分)

!!! 
%html 
  %head 
    = stylesheet_link_tag    'application', media: 'all' 
    = javascript_include_tag 'application' 
 
    = render 'layouts/ga' 
  %body 
    = yield 


app / assets / javascripts / application.js

... 
//= require google_analytics