googleanalyticsR : importation de vos données Google Analytics dans R

Tendance du trafic sur les 30 Derniers Jours

googleanalyticsR est une bibliothèque R qui vous permet d’accéder à la version 4 de l’API (Application Programming Interface – interface de programmation applicative) de Google Analytics Reporting.

Ceci vous permet d’intégrer dans un programme R des données concernant les sites Web que vous mesurez avec Google Analytics.

Présentation de googleanalyticsR

Cette bibliothèque a été développée par Mark Edmonson, spécialiste du développement de solutions autour de Google Analytics.

logo GoogleAnalyticsR

Les informations concernant googleanalyticsR sont disponibles en anglais sur le site de Mark Edmonson à l’adresse : http://code.markedmondson.me/googleAnalyticsR/.

Dans cet article, nous présenterons (en français) comment créer un projet dans Google API Console afin d’importer des données Google Analytics. Ensuite nous verrons quelques exemples d’utilisation de la bibliothèque googleanalyticsR.

La documentation (en anglais) de la version 4 de l’API de Google Analytics est disponible à l’adresse : https://developers.google.com/analytics/devguides/reporting/core/v4/

Il existe d’autres bibliothèques R permettant d’accéder à l’API De Google Analytics, toutefois la version de Mark Edmonson semble être la seule compatible V4 pour l’instant (à vérifier si je me trompe). Pour votre curiosité, voici une liste de bibliothèques R pour l’APi de Google Analytics :

Normalement, pour accéder aux API de Google, il vous faut un compte OAuth 2.0 pour vous authentifier et récupérer les infos. googleanalyticsR est fourni avec ses propres codes d’authentification, ce qui vous permet, pour faire des tests, d’éviter de créer votre propre projet sur la console développeurs de Google.

Projet sur Console Google et codes OAuth

Toutefois, si vous souhaitez créer vos propres applications et ne pas risquer d’être limité dans les requêtes si tout le monde utilise les codes de Mark Edmonson en même temps, nous conseillons de créer votre projet et votre compte OAuth. Voici la procédure à suivre :

Connectez-vous avec votre compte Google sur la console développeurs à l’adresse https://console.developers.google.com.
Si vous n’avez jamais créé de projet avec Google Console la page
suivante du tableau de bord devrait s’afficher. Cliquez sur « Créer un
projet » à droite :

Nouvel Utilisateur Google
Nouvel Utilisateur Google Console

Sur la page « Nouveau Projet », indiquez un nom. ici pour nous test-googleanalyticsR :

Nouveau Projet Google Console
Nouveau Projet Google Console

Le système revient sur le Tableau de bord, vous devez maintenant activer les API dont vous aurez besoin.

Activer les API
Activer les API

Sur la page des API, recherchez « Analytics » et choisissez « Google Analytics Reporting API » :

Choisir Google Analytics Reporting API
Choisir Google Analytics Reporting API

Sur la page suivante « Activez » l’API puis le système revient sur la page « Google Analytics Reporting API ». Vous avez maintenant besoin de vos identifiants pour pouvoir utiliser cette API. Cliquez sur le bouton à droite « Créer des identifiants ».

identifiants Google Analytics Reporting API
Identifiants Google Analytics Reporting API

Sur la page suivante, Google API Console vous demande de quels types d’identifiants vous aurez besoin pour votre projet. Comme nous l’indiquions précédemment, nous avons besoin d’identifiants OAuth. Pour cela cliquez sur le lien « ID client ».

identifiants OAuth
Identifiants OAuth

Sur la page suivante « Créer un Id client », le système vous demande de configurer l’écran d’autorisation. Cliquez sur le bouton à droite :

Créer ID Client
Créer ID Client

Sur la page suivante, vérifiez que vous êtes bien sur l’onglet « Ecran d’autorisation OAuth », indiquez juste votre email (qui s’affiche par défaut) et un nom de produit puis cliquez sur enregistrer :

Ecran Autorisation OAuth
Ecran Autorisation OAuth

Ensuite, le système vous demande le type d’application que vous souhaitez créer. Choisissez « Autre » et comme « nom » par exemple RStudio car, à priori, nous l’utilisons pour faire tourner notre appli :

Type d'application
Type d’application

Bingo ! Google Console vient de vous créer un ID client et une clé secrète !!! Copiez-les et conservez-les précieusement, vous en aurez besoin par la suite :

Clés Secrètes
Clés Secrètes

Si vous souhaitez aussi avoir accès à la gestion des informations de votre compte Google Analytics (par exemple les numéros de vues – voir plus bas) nous vous conseillons d’activer aussi l’API « Analytics API ». Retournez sur la page de la liste des API et faites de nouveau une recherche sur Analytics et choisissez « Analytics API » :

Choisir Analytics API
Choisir Analytics API

Puis activez-la :

Activer Analytics API
Activer Analytics API

Logiciel R

Comme dans nos articles précédents, afin de pouvoir tester le code source de cette démonstration nous vous invitons à télécharger Le Logiciel R sur ce site https://cran.r-project.org/, ainsi que l’environnement de développement RStudio ici : https://www.rstudio.com/products/rstudio/download/.

Code Source

Vous pouvez copier/coller les codes sources suivants pour les tester dans votre propre fichier de script R.

Packages Utiles

Pour cet exercice nous n’aurons besoin que de 2 packages supplémentaires

#'
#'
#Packages utiles à charger une fois 
#install.packages("xlsx")
#install.packages("ggplot2")
#Chargement des bibliothèques utiles
library(xlsx)  #pour write.xlsx
library(ggplot2)  #pour les graphiques ggplot

Installer le package googleanalyticsR

Vous pouvez soit installer le package stable de googleanalyticsR, soit le package en cours de développement sur Github. Comme nous sommes courageux, nous allons prendre le package en cours de développement 🙂 !!

#'
#'
#Installer la version stable
#install.package("googleAnalyticsR", dependencies = TRUE)  #version stable
#Installer la version en cours de développement dur Github
devtools::install_github("MarkEdmondson1234/googleAnalyticsR")  #Version en cours de dev 

Indiquer vos codes et charger la bibliothèque googleanalyticsR

Si vous souhaitez utiliser vos codes OAuth créé précédemment, plutôt que ceux de Mark Edmonson, il est un important de modifier les options avant de charger la bibliothèque :

#'
#'
#googleanaylticsR fournit par défaut un ID Client et un Code secret sinon vous pouvez utiliser les vôtres :
myclient_id <-  "507175436240-qb0pgbntdmvf32i1kni67u2o455t0rbh.apps.googleusercontent.com" 
myclient_secret <-   "Mi_JcEQRuBgOLHDj8MH_s0uw" 

options(googleAuthR.client_id = myclient_id )
options(googleAuthR.client_secret = myclient_secret ) 
library(googleAnalyticsR)  #mettre mes infos OAuth avant de recharger.

Connectez -vous avec votre compte Google

C’est le compte que vous utilisez pour gérer vos sites dans Google Analytics. Un navigateur va s’ouvrir.

#'
#'
ga_auth() #connexion via son compte google (un navigateur va s'ouvrir)

Vérifiez bien qu’il s’agit bien de votre application et non pas celle par défaut :

Connexion à l'application
Connexion à l’application

Choisir la « vue » Google Analytics

Attention il ne faut pas confondre le code du tracker (tracking Id) sous la forme UA-12345678-1 avec le code de vue (View Id) qui comporte 8 chiffres (et pas les mêmes que ceux du milieu du tracking Id :-)). Vous pouvez soit choisir votre vue en allant dans l’administration de Google Analytics, soit la retrouver via votre programme R si vous avez aussi activé l’API « Analytics API » :

#'
#' 
#liste des comptes dans Google Analyticspour récupérer le code viewID
account_list <- ga_account_list()
account_list  #Afficher la liste et repérez la vue du site que vous souhaitez.
ga_id <- account_list[41, 'viewId']  #Pour moi c'est la ligne 41 de mes vues, des sites que je gère dans Google Analytics

Variables disponibles dans l’API Google Analytics Reporting

Plutôt que d’aller sur le Guide de la V4 de Google Analytics vous pouvez récupérer les données dans R. Pour ma part je les ai aussi sauvegardées au format Excel pour des raisons pratiques.

#'
#'
#Variables disponibles dans l'API GA Reporting 
meta <- google_analytics_meta()  #Recupération de la liste des variables
View(meta) #Affichage de la liste des Variables disponible dans l'API de Google Analytics.
#Sauvegarde en xlsx ... ça peut aider pour consulter les variables ailleurs.
write.xlsx(meta, file = "metaGA.xlsx")

Variables disponibles dans Google Analytics API V4
Variables disponibles dans Google Analytics API V4

Quelques variables dates

Pour des raisons pratiques j’ai créé quelques variables dates

#'
#'
#QQ dates 
yesterday <- Sys.Date() - 1
threeDaysAgo <- Sys.Date() - 3
ThirtyDaysAgo <- Sys.Date() - 30
SixMonthsAgo <- Sys.Date()-183
OneYearAgo <- Sys.Date()-365
FiveYearsAgo <- Sys.Date()-1827

Trafic en sessions du site (trentes derniers jours)

Les trafics par jours sont mis en évidence par des points et on trace aussi une courbe de tendance.

#'
#'
#Traffic en sessions sur 30 jours avec courbe de tendance
galastthirtydays <- google_analytics(ga_id, date_range = c(ThirtyDaysAgo , yesterday), metrics = c("sessions"), 
                                         dimensions = c("date"))

str(galastthirtydays) #pour voir ce que l'on a
#Graphique 
galastthirtydays %>%
  ggplot(aes(x = date,y = sessions) ) + 
  geom_point() + 
  geom_line() +
  geom_smooth(method = "loess") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Tendance du trafic sur les 30 Derniers Jours
Tendance du trafic sur les 30 Derniers Jours

On pourrait se demander si les points qui sortent fortement de la bande de confiance ne correspondent pas à des événements particuliers ?

Jours les plus actifs dans l’année

Nous affichons ici des boites de dispersions pour évaluer les jours les uns par rapport aux autres.

#'
#'
#Jours les plus actifs dans l'année
gadow <- google_analytics(ga_id, 
                           date_range = c(OneYearAgo , yesterday), 
                           metrics = c("sessions"), 
                           dimensions = c("dayOfWeekName","date"))
gadow %>%  
  ggplot(aes(x = dayOfWeekName, y = sessions)) + 
  geom_boxplot() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

#on vire les valeurs extrêmes pour y voir plus clair
gadow[gadow$sessions < 50,] %>%  
  ggplot(aes(x = dayOfWeekName, y = sessions)) + 
  geom_boxplot() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Jours les plus actifs dans l'année
Jours les plus actifs dans l’année

Ce site ne semble pas avoir de fortes différences de trafic en fonction des jours :

Trafic sur une longue période

l’API nous permet de récupérer des données sur une longue période. Toutefois, par défaut, le maximum d’enregistrements retournés est de 1000. Dans notre cas, nous l’augmentons pour pouvoir récupérer les infos sur 5 ans en arrière.

#'
#'
#Sessions sur les 5 années précédentess
ga5years <- google_analytics(ga_id, 
                          date_range = c(FiveYearsAgo, yesterday),
                          metrics = c("sessions"),
                          dimensions = c("date"), 
                          max=2000)

#on ajoute l'année à notre jeu de données calculé à partir de la date.
ga5years$year<-format(ga5years$date,"%Y")

#Graphique avec des années de différentes couleurs.
ggplot(ga5years, aes(x=date, y=sessions, color=year)) + 
  geom_line() 

trafic sur plusieurs années
trafic sur plusieurs années

L’année la meilleure semble être l’année 2016. Il va falloir retravailler sur ce site !!!

Appareils utilisés en fonction des continents.

Attention si l’on commence à recueillir beaucoup de données il se peut que Google Analytics nous renvoient des données échantillonnées. l’instruction « anti_sample = TRUE » permet d’éviter cela.

#'
#'
#Type de device en fonction du continent
gadevice <- google_analytics(ga_id, 
                           date_range = c(OneYearAgo , yesterday),
                           metrics = c("sessions"),
                           dimensions = c("date","continent", "deviceCategory"), 
                           anti_sample = TRUE,
                           max=5000)


ggplot(gadevice[gadevice$continent != "(not set)",], aes(x=continent)) + 
  geom_bar(aes(fill=deviceCategory), position="fill")

Les tablettes semblent surtout prisées en Europe et en Amérique, c’est le mobile pour l’Asie. Rem : les données sont ici normalisées.

Appareils utilisés selon les continents
Appareils utilisés selon les continents

Merci pour votre attention ! N’hésitez pas à manipuler les différentes données de Google Analytics dans R pour vous faire votre propre opinion. Dans un autre article nous voyons comment utiliser l’API de Google Analytics avec Python.

Pierre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.