Partager la publication "googleanalyticsR : importation de vos données Google Analytics dans R"
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.
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 :
- rga https://github.com/skardhamar/rga
- RGA https://github.com/artemklevtsov/RGA
- RGoogleAnalytics https://github.com/Tatvic/RGoogleAnalytics
- ganalytics https://github.com/jdeboer/ganalytics
- GAR https://github.com/andrewgeisler/GAR
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 :
Sur la page « Nouveau Projet », indiquez un nom. ici pour nous test-googleanalyticsR :
Le système revient sur le Tableau de bord, vous devez maintenant activer les API dont vous aurez besoin.
Sur la page des API, recherchez « Analytics » et choisissez « 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 ».
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 ».
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 :
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 :
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 :
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 :
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 » :
Puis activez-la :
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.
Vous pouvez aussi récupérer gratuitement le script en entier dans notre boutique à l’adresse : https://www.anakeyn.com/boutique/produit/script-r-importation-de-donnees-google-analytics/
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 :
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")
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))
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))
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()
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.
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