Javascript 谷歌分析与rails 5不起作用

Javascript 谷歌分析与rails 5不起作用,javascript,ruby-on-rails,ruby,google-analytics,Javascript,Ruby On Rails,Ruby,Google Analytics,我正在尝试用rails 5实现Google分析。因为我想保留我的TurboLink,所以我采用了这种方法。添加了app/assets/javascripts/google_analytics.js.coffee: class @GoogleAnalytics @load: -> # Google Analytics depends on a global _gaq array. window is the global scope. window._gaq

我正在尝试用rails 5实现Google分析。因为我想保留我的TurboLink,所以我采用了这种方法。添加了app/assets/javascripts/google_analytics.js.coffee:

class @GoogleAnalytics

  @load: ->
    # Google Analytics depends on a global _gaq array. window is the global 
     scope.
    window._gaq = []
    window._gaq.push ["_setAccount", GoogleAnalytics.analyticsId()]

    # Create a script element and insert it in the DOM
    ga = document.createElement("script")
    ga.type = "text/javascript"
    ga.async = true
    ga.src = ((if "https:" is document.location.protocol then 
    "https://ssl" else "http://www")) + ".google-analytics.com/ga.js"
    firstScript = document.getElementsByTagName("script")[0]
    firstScript.parentNode.insertBefore ga, firstScript

    # 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()
    if url
      window._gaq.push ["_trackPageview", url]
    else
      window._gaq.push ["_trackPageview"]
      window._gaq.push ["_trackPageLoadTime"]

  @isLocalRequest: ->
    GoogleAnalytics.documentDomainIncludes "local"

  @documentDomainIncludes: (str) ->
    document.domain.indexOf(str) isnt -1

  @analyticsId: ->
    # your google analytics ID(s) here...
    'UA-XXXXXXX-XX'

GoogleAnalytics.load()
这不管用。我试着用Google analytics调试器调试它,但它只显示了

_gaq.push processing "_setAccount" for args: "[UA-XXXXXXX-XX]": 
这是在控制台中。当我试着直接打电话时

GoogleAnalytics.trackPageview()
我正在我的分析帐户中获取数据。 但是扔这个

Method _trackPageLoadTime is deprecated. _trackPageLoadTime is deprecated. Site Speed tracking is enabled by default with trackPageview call at 1% sampling. Use _setSiteSpeedSampleRate for changing sample rate.
我的控制台出错。
问题是什么?请提供帮助。

您所指的文章非常古老(在Rails领域)。你试过了吗

?

在application.html.erb中:

    <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-XXXXXXXX-X', 'auto');
    </script>
  <% end %>

你所指的那篇文章相当古老(在Rails领域)。你试过了吗

?

在application.html.erb中:

    <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-XXXXXXXX-X', 'auto');
    </script>
  <% end %>

我用Turbolinks和Webpacker在Rails 6上尝试了以下内容,效果很好,我希望它能帮助别人

将其添加到布局文件的头部:


window.dataLayer=window.dataLayer | |[];
函数gtag(){dataLayer.push(参数);}
gtag('js',新日期());
然后将其添加到application.js文件:

$(document).on(“turbolinks:load”,function()){
gtag('config','YY-XXXXXXXXX-Z',{'page_location':event.data.url});
})

用你自己的标签替换
YY-XXXXXXXXX-Z
,你就完成了。

我用TurboLink和Webpacker在Rails 6上尝试了以下内容,效果很好,我希望它能帮助别人

将其添加到布局文件的头部:


window.dataLayer=window.dataLayer | |[];
函数gtag(){dataLayer.push(参数);}
gtag('js',新日期());
然后将其添加到application.js文件:

$(document).on(“turbolinks:load”,function()){
gtag('config','YY-XXXXXXXXX-Z',{'page_location':event.data.url});
})

用您自己的标签替换
YY-XXXXXXXXX-Z
,您就完成了。

您显示的代码是针对经典Google分析的,您应该升级到Universal analytics。您显示的代码是针对经典Google analytics的,您应该升级到Universal analytics。