web-dev-qa-db-fra.com

Google Analytics avec Rails 4

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 ?

37
Joshua

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.

78
Mini John

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();
 }
});
12
poerror

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.

3
perezdr

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()
2
Joshua Dance

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

1
Tarun Garg

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');
});
0
vedant