在Rails中添加Google Analytics而不使用Turbolinks

3

出于某些原因,我已经从我的应用程序中删除了turbolinks,现在当我尝试运行Google Analytics时,它不能正常工作。

我使用了gem 'google-analytics-rails'和这个自定义解决方案。但是它们都没有起作用。有什么方法可以在没有turbolinks的情况下将Google Analytics添加到我的应用程序中吗?

1个回答

2
我通常会将它放在ApplicationHelper中,如下所示。
module ApplicationHelper

  def ga_script
    tracking_id = ""
    if Rails.env.production?
      javascript_tag("(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', '#{tracking_id}', 'auto');")
    end
  end

  def ga_track
    javascript_tag("if(window.ga != undefined){ga('send', 'pageview');}")
  end

end

然后在布局文件中:
<head>
   <%= ga_script %>
</head>
<body>
...
   <%= ga_track %>
</body>

这很简单,它可以与或不使用Turbolinks一起工作。

或者,停止试图使其复杂化,只需将GA脚本粘贴在布局的body部分底部即可。


谢谢你的回答,我正在实现它。如果我想让代码跟踪应用程序的每个页面,我应该把 <%= ga_script %> 和 <%= ga_track %> 放在 application.html.erb 中吗? - Sohail Aslam
是的,你可以将它们放在application.html.erb中。 - Dan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接