Obtenir les statistiques Google Analytics avec Ruby on Rails

Etape par étape, voici comment se connecter à l'API de Google Analytics à partir d'une application Ruby on Rails.

L'API Google Analytics permet d'obtenir ou de manipuler les données issues d'un compte Google Analytics. Elle est utilisable avec de nombreux langages de développement de sites web ou d'applications mobiles. La plateforme Ruby on Rails en fait partie.

Pour vous connecter à l'API Google Analytics à partir de votre application Ruby on Rails, il faut en premier télécharger le gem google-api-client-gem disponible à cette adresse : https://github.com/google/google-api-ruby-client. Il s'agit d'un composant directement maintenu par Google. Installez ensuite le composant dans vos applications Ruby.

La deuxième étape consiste à récupérer les informations de connexion à l'API. Pour cela, rendez-vous sur la console pour développeurs Google : https://code.google.com/apis/console/. Créez votre projet et activez l'API Google Analytics. Créez un ID client pour cet API, puis téléchargez le fichier appelé "key-file" du projet.

Pour utiliser ensuite l'API dans votre application, il faut en premier définir les variables liées à votre compte développeur Google :

SERVICE_ACCOUNT_EMAIL_ADDRESS = '...' # Entrez ici votre adresse mail du compte développeur (l'adresse est du type XXXXX@developer.gserviceaccount.com).
PATH_TO_KEY_FILE = '...' # Ajoutez ici le chemin vers le fichier "key-file" du projet Google.
PROFILE = '...' # Entrez ici l'identifiant du profil. Il est de la forme "ga:XXXXX".

Il est ensuite temps d'instancier l'API. Pour cela, incluez le composant Google en Ruby, puis utilisez l'instruction "new" pour l'instancier. L'adresse mail et le fichier "key-file" vont vous permettre de vous connecter au compte Google :

#Inclusion du client Google
require 'google/api_client'
# On instancie le client.
client  = Google::APIClient.new
#Connexion au compte
client.authorization = Signet::OAuth2::Client.new(
  :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
  :audience             => 'https://accounts.google.com/o/oauth2/token',
  :scope                => 'https://www.googleapis.com/auth/analytics.readonly',
  :issuer               => SERVICE_ACCOUNT_EMAIL_ADDRESS,
  :signing_key          => Google::APIClient::PKCS12.load_key(PATH_TO_KEY_FILE, 'notasecret')
).tap { |auth| auth.fetch_access_token! }
api_method = client.discovered_api('analytics','v3').data.ga.get

Une fois connecté(e), vous pouvez exécuter des requêtes sur l'API. On fait alors appel à la méthode "execute()". Les requêtes ont de nombreux paramètres :
- profil concerné ;
- date de début ;
- date de fin ;
- dimensions ;
- statistiques ;
- filtres.

Il est possible d'obtenir toutes les informations que l'on souhaite en utilisant ces différents paramètres. Voici par exemple une requête pour obtenir toutes les vues sur la page "page.html" (mais il est possible d'ajuster 'metrics' et 'filters') :

# Requête
result = client.execute(:api_method => api_method, :parameters => {
  'ids'        => PROFILE,
  'start-date' => Date.new(1970,1,1).to_s,
  'end-date'   => Date.today.to_s,
  'dimensions' => 'ga:pagePath',
  'metrics'    => 'ga:pageviews',
  'filters'    => 'ga:pagePath==/page.html'
})
#Affichage du résultat
puts result.data.rows.inspect

Tutoriels Analytics