0

Rails中不乏「涵蓋谷歌分析」的「教程」,但我找不到實際完成的教程。有人可以告訴我,如果我已經結合了正確的信息,並有我需要建立遺傳算法,如果沒有,我做錯了什麼?謝謝。這是在rails 5應用程序中設置Google Analytics的正確方法嗎?

我製作了一個名爲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

爲什麼不直接複製你從谷歌獲得的分析並將其粘貼到佈局文件中。這就是我的做法,它工作得很好。 –

+0

並且您正在使用通過heroku部署的rails 5,並且完全沒有其他功能? – Nick

+0

我正在使用Rails 4並部署在Heroku上。我曾經寫過博客,當你寫博客時,你所要做的就是將你的Google Analytics(分析)代碼放入佈局中的div或其他內容中。 Google使用JavaScript在用戶訪問的每個頁面上運行,就是這樣。沒有什麼太複雜。 –

回答

0

這是我在我的Rails應用程序4(部署在Heroku) 在我的視圖>佈局> Application.html.erb:

<html> 

<head> 
    #meta tags 
</head> 

<body> 
    <%= yield %> 
    <script> 
    # google analytics javascript snippet. 
    </script> 
</body> 

</html> 

谷歌使用的JavaScript的每一個頁面的用戶運行訪問,就是這樣。只要你確定它在每個頁面都被渲染,你應該沒問題。您可以放入部分內部並將其呈現在您的佈局中。 Google建議您在結束標記之前放置它。

0

根據你的咖啡腳本提供的鏈接:它成爲

http://reed.github.io/turbolinks-compatibility/google_analytics.html

在咖啡Script代碼

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

更改頁面:改變「到 '負載turbolinks'

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

然後你就全部了。無需在layouts/application.html.erb文件上添加額外的代碼,這對我很有用。

相關問題