并不缺少"教程"这包括Rails中的谷歌分析,但我找不到一个实际完成的。有人可以告诉我,如果我已经结合了正确的信息并拥有我需要设置GA,如果没有,我做错了什么?谢谢。
我创建了一个名为google_analytics.js.coffee的文件,它位于assets / javascript文件夹中。它包含(来自http://reed.github.io/turbolinks-compatibility/google_analytics.html):
class @GoogleAnalytics
@load: ->
((i, s, o, g, r, a, m) ->
i['GoogleAnalyticsObject'] = r
i[r] = i[r] or ->
(i[r].q = i[r].q or []).push arguments
return
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
return
) window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'
ga 'create', GoogleAnalytics.analyticsId(), 'auto'
# If Turbolinks is supported, set up a callback to track pageviews on page:change.
# If it isn't supported, just track the pageview now.
if typeof Turbolinks isnt 'undefined' and Turbolinks.supported
document.addEventListener "page:change", (->
GoogleAnalytics.trackPageview()
), true
else
GoogleAnalytics.trackPageview()
@trackPageview: (url) ->
unless GoogleAnalytics.isLocalRequest()
ga 'send',
hitType: 'pageview'
page: location.pathname
@isLocalRequest: ->
GoogleAnalytics.documentDomainIncludes "local"
@documentDomainIncludes: (str) ->
document.domain.indexOf(str) isnt -1
@analyticsId: ->
# your google analytics ID(s) here...
'UA-MYIDHERE-X'
GoogleAnalytics.load()
然后,由于没有人会讨论是否需要这些,我从这里使用了这段代码(https://gist.github.com/esBeee/545653241530f8f2c2e16371bec56f20)并将其放在application.html.erb的头部,尽管如此人正在拼凑一个论坛中的对话代码。他的代码还说要在google_analytics.js.coffee中添加四行。这是另一种方法吗?一个劣等的?是否需要顶级的@GoogleAnalytics课程?对于那些退伍军人来说显而易见的事情对于新手来说并不明显!无论如何,这就是我在应用程序布局标题中添加的内容:
<% if Rails.env.production? %>
<script type="text/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','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-MYIDHERE-X', 'auto');
</script>
现在我有了G_A.js.coffee代码页和上面的代码,所以我准备按照这些步骤部署到heroku(来自这里:http://railsapps.github.io/rails-google-analytics.html)?
$ git add -A
$ git commit -m "analytics"
$ RAILS_ENV=production rake assets:precompile
$ git add -A
$ git commit -m "assets compiled for Heroku"
感谢任何从一开始就做出正确教程的人,不要做出假设,并坚持到最后。
答案 0 :(得分:1)
根据您为Coffee脚本提供的链接: http://reed.github.io/turbolinks-compatibility/google_analytics.html
在咖啡脚本代码中
if typeof Turbolinks isnt 'undefined' and Turbolinks.supported
document.addEventListener "page:change", (->
GoogleAnalytics.trackPageview()
), true
else
GoogleAnalytics.trackPageview()
更改&#39;页面:更改&#39; to&#39; turbolinks:load&#39;成为
if typeof Turbolinks isnt 'undefined' and Turbolinks.supported
document.addEventListener "turbolinks:load", (->
GoogleAnalytics.trackPageview()
), true
else
GoogleAnalytics.trackPageview()
然后你就定了。不需要在layouts / application.html.erb文件上添加额外的代码,这对我有用。
答案 1 :(得分:0)
这就是我在Rails 4应用程序中的部署(部署在Heroku上) 在我的视图中&gt;布局&gt; Application.html.erb:
<html>
<head>
#meta tags
</head>
<body>
<%= yield %>
<script>
# google analytics javascript snippet.
</script>
</body>
</html>
Google使用javascript在用户访问的每个页面上运行,并且就是这样。只要你确保它在每个页面中呈现,你应该没问题。您可以放入局部并在布局中渲染它。 Google建议您将其放在结束标记之前。