Cette semaine, je vous traduis l’excellent post de Mark Endmondson en ajoutant quelques améliorations.
L’original se trouve ici : http://markedmondson.me/enhance-your-google-analytics-data-with-r-and-shiny-free-online-dashboard-template
Introduction
L’objectif de ce post est de vous donner les outils pour améliorer vos données Google Analytics avec R et Shiny.
En suivant les étapes ci-dessous, vous devez avoir votre propre tableau de bord avec ces fonctionnalités:
- Graphiques interactifs des tendances .
- Mise à jour automatique des données de GA.
- Heatmaps zoomables sur les jours de la semaine.
- Top Trends par année, par mois et le dernier mois comparé à l’an dernier.
- Analyse de l’impact des événements via l’algorithme CausalImpact de Google.
- Détection des valeurs inhabituelles en utilisant l’algorthme d’anomalies de Twitter.
Un grand nombre de ces fonctionnalités n’existent pas dans les rapports GA, ou seulement dans la version Premium.
En résumé, le tableau de bord reçoit les données via l’API Google Analytics Reporting, et les transforme avec différents packages R, pour les publier en ligne via Shiny.
Une démo est disponible sur le compte Shinyapps.io de Mark avec des données factices, et tout le code source est sur Github :
- Démo : https://mark.shinyapps.io/GA-dashboard-demo
- Code source de Mark avec connecteur Mysql: https://github.com/MarkEdmondson1234/ga-dashboard-demo
- Mon Fork avec connecteur Parse.com: https://github.com/voltek62/ga-dashboard-demo
Graph des Tendances
La plupart des tableaux de bord disposent d’un tracé de tendance, de sorte que vous pouvez voir rapidement ce qui se passe au fil du temps.
Ce tableau de bord utilise la bibliothèque javascript open source dygraphs, qui permet de créer des graphes interactifs en passant la souris sur les valeurs, et de zoomer sur une partie du graphes en sélectionnant une zone
De plus, les événements que vous uploadez apparaissent également ici, ainsi que tous les valeurs inhabituelles détectées comme des anomalies.
Vous pouvez avoir plus de détails dans la section Analyse.
Heatmap
La Heatmap utilise des intensités de couleur pour montrer les différences de valeurs. La Heatmap ici est divisé en semaines et en jour par semaine, ainsi vous pouvez rapidement la parcourir pour voir si à un jour particulier de la semaine est populaire – dans l’image ci-dessous, Lundi / Mardi sont bien meilleurs pour le trafic que les autres jours.
Le cadrage des données est défini par ce que vous sélectionnez dans le graphique de tendance, et vous pouvez zoomer pour plus de détails en utilisant la souris.
Top Level Trends
Cette fonctionnalité vous donne un rapide coup d’œil sur ce que se passe, en comparant la semaine dernière avec la semaine précédente, le mois dernier avec le mois précédent et le mois dernier au même mois de l’année précédente. Ainsi, vous pouvez détecter rapidement les tendances et ce qui représente des variations saisonnières.
Connection MYSQL ou Parse
Le code par Mark fournit des fonctions pour se connecter à une base de données MySQL, ainsi vous pouvez l’utiliser pour fusionner les données Google Analytics avec vos données.
Dans le tableau de bord de la démo, la clé utilisée est tout simplement la date, mais cela peut être élargi à d’autres champs. Par contre, j’ai préféré utiliser une autre base de donnée que je détaille ci-après.
En effet, vous devez fournir une liste d’événements majeurs pour le site donc il n’avait pas besoin de relations SQL.
Avec l’API Parse de Facebook, vous pouvez injecter n’importe quelle type de données mais surtout vous avez un backoffice très facile à utiliser.
CausalImpact
Dans le tableau de bord de démonstration, la connexion MySQL ( pour moi Parse ) est utilisé pour récupérer les données des événements, qui sont ensuite utilisées pour comparer avec les données Google Analytics pour voir si l’événement a eu un impact statistiquement significatif sur votre trafic. Cela reprend un grande partie des fonctionnalités du tableau de bord GA Effect.
L’impact global de l’événement est affiché dans l’onglet « Summary » du tableau de bord.
Si cela est statistiquement significatif, l’impact est affiché en bleu.
Anomaly Detection
Twitter a publié ce package R pour aider à détecter les valeurs inhabituelles pour une utilisation au sein de flux de données, ce qui est également très pratique pour les données sur les tendances Google Analytics.
Les annotations sur le tracé de tendance principale sont indiquées à l’aide de ce package, et vous pouvez aller plus en détail et modifier les résultats dans la section « Analyse ».
Rendez le tableau de bord multi-utilisateur
Dans cette démo, Mark a pris le cas d’une utilisation habituelle pour surveiller une seule propriété GA, mais si vous le souhaitez, des utilisateurs authentifiés peuvent surveiller leur propriété GA, ainsi le tableau de bord peut être combiné avec le paquet shinyga(), qui fournit des fonctions qui authentifie automatiquement, comme sur ses applications GA Effect et Rollup.
En production, vous pouvez publier le tableau de bord derrière une authentification Shinyapps (nécessite d’être en version payante), ou déployer votre propre serveur Shiny pour publier le tableau de bord sur l’intranet de l’entreprise.
Démarrage rapide
Maintenant que vous avez vu les fonctionnalités, vous pouvez générer ce tableau de bord pour vous-même.
Ce guide suppose que vous connaissez le R et Shiny – si vous débutez, commencez ici : http://shiny.rstudio.com/
Vous n’avez pas besoin d’avoir une configuration MySQL ou Parse pour commencez à l’utiliser mais il vous manquera des fonctionnalités.
Configurez les fichiers
- Cloner le dépôt github et copier-coller les scripts dans votre propre projet RStudio.
- Trouvez votre « GA View ID » avec les données que vous voulez extraire. Le moyen le plus rapide pour le trouver est de vous connecter à votre compte Google Analytics, allez dans la vue puis regardez dans l’URL le nombre après le « p ». il s’agit de l’ID.
- Créez un fichier nommé fichier secrets.R dans le même répertoire que l’application avec le contenu ci-dessous qui contient vos détails.
options( mysql = list( "host" = "YOUR SQL IP", "port" = 3306, "user" = "YOUR SQL USER", "password" = "YOUR USER PW", "databaseName" = "onlinegashiny"), rga = list( "profile_id" = "The GA View ID", "daysBackToFetch" = 356*3 ), parse = list( "XParseApplicationId" = "YOUR APPLICATION ID", "XParseRESTAPIKey" = "YOUR REST API KEY" ), shinyMulti = list( "max_plots" = 10 ), myCausalImpact = list( "test_time" = 14, "season" = 7 ), shiny.maxRequestSize = 0.5*1024^2 ## upload only 0.5 MB )
Configurez R
1. Assurez-vous que vous pouvez installer et exécuter toutes les bibliothèques nécessaires à l’application :
library(rga) library(dygraphs) library(zoo) library(tidyr) library(lubridate) library(d3heatmap) library(dplyr) library(stringr) library(DT) library(RMySQL) library(CausalImpact) library(AnomalyDetection)
##Most are on CRAN so accessible via the Install button in RStudio ## but for rga, CausalImpact and AnomalyDetection ##you will need to use devtools to install them from github: > install.packages("devtools") > library(devtools) > install_github("google/CausalImpact") > install_github("skardhamar/rga") > install_github("twitter/AnomalyDetection") ## for shiny > install_github("rstudio/httpuv") > install_github("yihui/mime") > install_github("rstudio/shiny") > install_github("rstudio/shinydashboard") > install_github("rstudio/DT") ## MYSQL > install_github("rstats-db/DBI") > install_github("rstats-db/RMySQL") ## for graphs > install_github('ramnathv/htmlwidgets') > install_github("rstudio/d3heatmap") > install_github("rstudio/dygraphs")
- Exécutez la commande ci-dessous localement d’abord, pour générer le jeton d’authentification dans le même dossier. Vous serez invité à vous connecter avec le compte Google qui a accès à la vue que vous spécifiez dans l’étape 3, et vous obtiendrez un code à copier-coller dans la console R. Ce sera ensuite chargé dans l’application et ça permettra de gérer en production l’authentification avec Google Analytics :
> rga::rga.open(where="token.rga")
- Testez l’application en cliquant sur le bouton « Run App » en haut à droite du script server.ui dans RStudio, ou en exécutant:
> shiny::runApp()
Utilisez le tableau de bord
L’application devrait maintenant être exécuté localement dans une fenêtre de navigateur avec vos propres données GA. Il peut prendre jusqu’à 30 secondes pour charger toutes les données la première fois.
Déployer votre application sur Shinyapps.io avec un compte gratuit ou sur votre propre serveur Shiny.
Customisez votre application. Si pour une raison quelconque vous ne voulez pas certaines fonctionnalités, vous pouvez les retirer dans le script ui.R – les données sont appelées uniquement lorsque le graph en a besoin.
Getting a Parse setup through Parse API
J’ai préféré utiliser une base de donnée NOSQL avec l’api Parse de Facebook.
Je laisse la procédure en Anglais car Parse est en anglais.
- Sign in with your FB account
- Create a New App « GoogleAnalytics »
- Select « Core » Tab
- Choose « Add class »
- Choose Custom and name : onlineGAshiny_events
- You now should have all the access info you need to put in the apps secrets.R for Parse access.
- You add easily data by clicking on ‘+ Row’
Conclusion de Mark
Espérons que cela pourra vous aider à trouver des idées de ce qu’on peut faire avec ses données Google Analytics.
L’accent a mis sur l’idée de vous donner des outils qui permettent de manipuler vos données.
Il y a beaucoup de choses que vous pouvez faire par l’intermédiaire des milliers de paquets R disponibles, mais j’espère que cela vous donne un framework pour les construire.
Ma conclusion
J’ai essayé de faire une traduction assez fidèle du travail de Mark en remplaçant le connecteur MySQL par un connecteur Parse et en détaillant encore plus la phase d’installation.
Mes tests sont concluants avec un site qui a plus de 300 000 VU/ jour en travaillant sur les 3 dernières années.
J’ai même trouvé une astuce pour extraire toutes les annotations Google Analytics de sa vue.
J’ai vu qu’il travaille sur un nouveau paquet R dédié à GA et je suis pressé de le tester en béta test.
En ce moment, les API pour récupérer de la data SEO explosent et avec R, on peut rapidement se créer des outils sur mesure.
A vous de tester.