gpt4 book ai didi

javascript - 这是在 Rails 5 应用程序中设置 Google Analytics 的正确方法吗?

转载 作者:行者123 更新时间:2023-12-03 04:33:15 25 4
gpt4 key购买 nike

Rails 中不乏涵盖 google 分析的“教程”,但我找不到真正完整的教程。有人可以告诉我我是否组合了正确的信息并拥有设置 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"

感谢所有制作正确教程的人,这些教程从头开始,不做假设,并坚持到底。

最佳答案

根据您为 CoffeeScript 提供的链接: http://reed.github.io/turbolinks-compatibility/google_analytics.html

在 CoffeeScript 代码中

if typeof Turbolinks isnt 'undefined' and Turbolinks.supported
document.addEventListener "page:change", (->
GoogleAnalytics.trackPageview()
), true
else
GoogleAnalytics.trackPageview()

将“page:change”更改为“turbolinks:load”,即成为

if typeof Turbolinks isnt 'undefined' and Turbolinks.supported
document.addEventListener "turbolinks:load", (->
GoogleAnalytics.trackPageview()
), true
else
GoogleAnalytics.trackPageview()

那么一切就都准备好了。不需要在layouts/application.html.erb 文件中添加额外的代码,这对我有用。

关于javascript - 这是在 Rails 5 应用程序中设置 Google Analytics 的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43405345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com