J'ai un peu de difficulté à implémenter Google Analytics dans mon projet Rails 4. J'ai inclus le code de suivi au bas de mon fichier de mises en page et j'ai même essayé de supprimer les liens turboliens comme suggéré ici mais je ne parviens toujours pas à détecter ce cookie de suivi dans google. Des idées ?
J'ai installé Google Analytics quelques jours auparavant.
1.) La solution de contournement Turbolink
Avec Turbolinks, la bibliothèque JavaScript de Google Analytics n'est pas suffisante pour enregistrer une visite de page pour chaque mise à jour de page.
La solution de contournement doit être chargée sur chaque page et elle peut être incluse en tant qu'actif de l'application (elle sera chargée avant Turbolinks).
Ajoutez le fichier app/assets/javascripts/analytics.js.coffee
pour inclure la solution de contournement Turbolinks:
app/assets/javascripts/analytics.js
// Coffee
$(document).on 'page:change', ->
if window._gaq?
_gaq.Push ['_trackPageview']
else if window.pageTracker?
pageTracker._trackPageview()
// Javascript
$(document).on('page:change', function() {
if (window._gaq != null) {
return _gaq.Push(['_trackPageview']);
} else if (window.pageTracker != null) {
return pageTracker._trackPageview();
}
});
2.) Créer un pied de page partiel
Il suffit de créer un Partiel dans app/views/layouts
-> _footer.html.erb
Puis appelez votre partiel sur votre application.html.erb -> <%= render 'layouts/footer' %>
Insérez dans votre pied de page le code de piste d'analyse:
<script>
(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','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXX-XX', 'herokuapp.com');
ga('send', 'pageview');
</script>
Vous devez remplacer UA-XXXXXXX-XX par votre identifiant de suivi et herokuapp.com par votre domaine, le cas échéant.
Voici du code sans utiliser coffeescript:
app/assets/javascripts/analytics.js
$(document).on('page:change', function() {
if (window._gaq != null) {
return _gaq.Push(['_trackPageview']);
} else if (window.pageTracker != null) {
return pageTracker._trackPageview();
}
});
J'ai utilisé ce bijou et j'ai été très facile à installer. Pas de création de fichier .js supplémentaire . Rails 3 assistants permettant de gérer le suivi Google Analytics. Principalement destiné aux sites Web de petite à moyenne taille.
Il suffit d'installer la gemme:
gem 'google-analytics-Rails', '1.1.0'
Puis lancez:
bundle install
Enfin, ceci va @ la configuration de l’environnement de production:
Production uniquement Config/environnements/production.rb:
# replace this with your tracker code
GA.tracker = "UA-112233-4"
app/views/layout/application.html.erb, dans la balise <head>
:
<%= analytics_init if GoogleAnalytics.valid_tracker? %>
J'ai vu les résultats immédiatement après avoir poussé à Heroku.
J'ai supprimé Turbolinks et utilisé le script RailsProjects, fourni ici:
http://railsapps.github.io/Rails-google-analytics.html
Travaillé pour moi pas de problèmes. Il l'a détecté et au bout d'un moment, j'ai pu voir les utilisateurs en temps réel, alors je sais que cela fonctionne.
Edit: Le script semble prendre en charge Turbolinks ou désactiver, ce qui est génial.
# 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()
L'ajout du GA avec turbolinks au problème posait problème. J'ai donc fait référence à certains blogs et réponses sur stackoverflow et rédigé un petit blog à ce sujet. Veuillez vous référer à ce lien http://tarungarg402.blogspot.in/2015/01/google-analyicts-wth-Rails.html
J'utilise cela dans mon application Rails. Je viens de mettre cela dans mon application.js.erb
// GA racking code
(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-XXXXX-<%= Rails.env.production? ? '1' : '2' %>', 'auto');
// I have 2 GA properties- one for debug and another for production
// accommodate Turbolinks and track page views
$(document).on('ready page:change', function() {
ga('send', 'pageview');
});