2016-11-23 3 views
1

Ich versuche, jede Seite meiner Rails-Anwendung zu verfolgen, diese teilweise auf dem Layout-Rendering:mit Google Analytics anmelden Tracking-Seite in Rails mit Devise

var analyticsId = '<%= Settings.env.app.analytics_id %>'; 

(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', '<%= Settings.env.app.analytics_id %>', 'auto', 'trackEvent: true'); 
ga('send', 'pageview'); 

Nach dem Google Analytics-ID zu den Einstellungen hinzugefügt, Ich kann in meinem Google Analytics-Dashboard die Besuche auf meiner users#sign_in-Seite sehen, nicht aber die Besuche auf meiner users#sign_up-Seite. beide Seiten durch die Firebug-Konsole Inspizieren ich das spected Ergebnis in den HTML-Code sehen:

var analyticsId = 'UA-XXXXXXXX-X'; 

(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', 'trackEvent: true'); 
ga('send', 'pageview'); 

Mit 'UA-XXXXXXXX-X' = Settings.env.app.analytics_id, die in config/Einstellungen/app definiert .yml unter analytics_id.

Wir entwickeln verwenden, um die signin/Anmeldungen proccess zu handhaben und das ist der Teil in der routes.rb zu entwickeln Zusammenhang

Rails.application.routes.draw do 
devise_for :users, controllers: { 
    confirmations: 'users/confirmations', 
    registrations: 'users/registrations' 
} 
ActiveAdmin.routes(self) 

authenticated :user do 
    devise_scope :user do 
    root to: redirect("/home") 
    end 
end 

unauthenticated do 
devise_scope :user do 
    root to: redirect("users/sign_in"), as: "unauthenticated_index" 
    get '/pages/:page', to: 'pages#show', as: "pages_show" 
end 
end 
+0

Wo 'Settings.env.app.analytics_id' kommen aus? Es basiert auf der Anwendung selbst oder auf einem eingeloggten Benutzer? Kannst du ein wenig mehr darüber erzählen, wie sich diese Frage auf Devise bezieht? Was ist der generierte HTML-Code des obigen Snippets? –

+0

Danke für die Beratung @ Thiago-Belem, bereits meine Frage aktualisiert. – Ibrah

Antwort

1

Es scheint, dass das Problem mit der Tatsache verbunden wurde, dass:

Rails 4.0 führte eine Funktion namens Turbolinks ein, um die wahrgenommene Geschwindigkeit einer Website zu erhöhen.

Google Analytics funktioniert nicht für Anwendungen mit Rails 4.0 oder neuerem Web . Um genau zu sein, wird es nicht für alle Seiten funktionieren. Es kann gemacht werden, um mit einer Problemumgehung zu arbeiten, um Turbolinks unterzubringen.

machen die lange Geschichte kurz ich eine Abhilfe auf der Antwort basiert angewendet haben in diesem Beitrag: Google analytics with rails 4