Analyse data, l’exhaustivité des données en question
Dans nos projets, il est courant que les métiers nous interrogent sur l’usage effectif de la solution digitale en place ou d’une fonctionnalité spécifique. Pour y répondre nous devons mener des analyses data disponibles dans la solution de digital Analytics utilisée. C’est à cet instant que des lacunes peuvent apparaître : les données ne sont pas présentes ou seulement partiellement.
Les causes possibles peuvent être :
- Le plan de marquage n’a pas été réalisé pour répondre à cette demande ;
- Au sprint précédent les UI (user interfaces) ont été revues et le marquage n’a pas suivi ;
- C’est un nouveau besoin ;
- C’est un besoin identifié, mais :
- Non défini comme important et prioritaire dans le product backlog ;
- L’effort de marquage est trop important et la fonctionnalité pas suffisamment pérenne pour investir du temps au déploiement d’un tracking.
Dans ce contexte, la première réponse faite aux métiers est de dire que le marquage actuel ne couvre pas ce besoin, puis, dans un seconde temps, de dire que la correction par l’ajout d’un tracking efficace permettra de disposer des données dans quelques semaines…
Cependant, lorsque les métiers nous posent cette question, ils espèrent une réponse de préférence dans un laps de temps raisonnable sur la période de temps écoulée. Or, un ajout de tracking ne permettra pas d’obtenir des données rétroactives directement.
En utilisant les données d’UX Metric nous allons vous proposer une simulation de ce cas de figure et vous présenter une solution technologique à même de résoudre quelques cas similaires.
Le pré-requis immédiat de cette solution est que la mesure à effectuer nécessite l’usage de données présentes dans les pages et écrans du support digital ou accessibles par réconciliation (interrogation d’API ou d’un web service pour obtenir l’information manquante : relation Clés -> valeur).
Analyse de données, le cas pratique
Sur UX Metric, nous avons un marquage basique sur Google Analytics, nous suivons les KPi standards. Récemment, nous nous sommes questionnés sur notre rubrique contenant des livres qui s’intitule “références” ou “bibliothèque” selon la version du de la page disponible (Test A/B en cours pour valider les noms de nos rubriques).
Nous souhaitons savoir :
- Qui des deux auteurs (Guillaume Deconde et Grégory loth) du site propose les pages livres les plus vues ?
- Quel est l’éditeur qui obtient le plus de visibilité par le biais des fiches livre ?
Pour répondre à ces questions il faut que le marquage prenne en compte les données “Auteur de chaque contenu” et “éditeur de chaque livre”, ce qui n’est pas le cas. Cette mesure doit être mise en oeuvre par l’ajout de deux dimensions personnalisées supplémentaires pour qualifier la dimension page et ainsi permettre de transposer les métriques (pages vues, vues uniques, etc.) initialement associées à la page vers l’auteur et l’éditeur.
Si nous intégrons ces éléments tels quels, nous n’aurons pas de données exploitables avant quelques semaines. Pour autant, nous savons que les informations nécessaires à ces analyses sont disponibles dès à présent, dans le contenu de chaque page.
Nous allons donc enrichir les données Analytics disponibles avec les informations présentes dans les pages mesurées et utiliser l’outil de data wrangling Google Open Refine pour consolider le tout.
Qu’est-ce que Open Refine ?
Open Refine est un projet initialement lancé par Google en 2010 sous la forme d’un logiciel libre (BSD : Berkeley Software Distribution License) et destiné à la préparation et au nettoyage des données. Deux “langages” sont mis à disposition pour traiter les données le Jython (croisement entre Java et Python) et le GREL (General refine expression language, une sorte de javascript).
Comment allons-nous utiliser Open refine ?
Préparation de notre expérience
Pour les traitements de cet exemple nous utiliserons le GREL.
Pour chacun des deux auteurs et pour tous les éditeurs, nous voulons quantifier :
- Les pages / fiches livres vues
- Les vues uniques
- Les entrées
Nous commençons par exporter les données de Google Analytics concernant les pages présentant des livres. ¨Pour plus de clarté, nous ajoutons le titre de la page qui nous permettra d’obtenir le tire du livre par extraction.
Nous exportons ensuite les données Google Analytics au format CSV, par l’interface ou via l’API
Si l’export est effectué via l’interface de Google Analytics, nous devrons éditer le fichier sous Excel ou Google Sheet et nettoyer les lignes superflues (nous préférons Google Sheet pour son ouverture sa complémentarité avec les autres produits Google et la puissance de la solution GG complète, cf. Google Data Studio (Looker) par exemple).
Dans l’exemple ci-dessus, les 6 premières lignes du fichier et le second tableau de détail quotidien situé en dessous du tableau principal.
En passant par l’API, ce premier nettoyage n’est pas utile, nous accédons aux informations nécessaires directement.
Comment importer les données dans Open Refine ?
Pour les besoins de cette présentation et pour effectuer les analyses courantes nous disposons d’instances locales d’Open Refine sur nos Mac.
Nous importons ensuite notre fichier CSV et initialisons notre projet. Une fois les paramètres réglés, nous validons à l’aide du bouton de validation situé en haut à droite “Create Project”.
Nous observons au passage les options que nous propose la solution, la documentation complète d’Open Refine est disponible sur GitHub: https://github.com/OpenRefine/OpenRefine/wiki/Documentation-For-Users
Pour enrichir les données nous créons de nouvelles colonnes de données. Chaque création de colonne s’effectue sur la base d’une colonne de référence. La valeur de la donnée de la nouvelle colonne sera pour chaque ligne égale à la transformation de la valeur de la ligne de la colonne de référence.
Les traitements simples avec GREL
Opérons un traitement simple pour commencer, nous allons extraire le titre du livre du titre de la page. Nous déclarons une nouvelle colonne dont les données seront l’extraction de la valeur de la colonne précédente.
“Ajouter une colonne sur la base de cette colonne”
Nous souhaitons conserver la première valeur du tableau retourné par l’instruction de découpage de chaine “split” sur le caractère “-“.
Formule : value.split(“-“)[0];
Open Refine et le web scrapping
Pour continuer, nous avons besoin d’enrichir notre jeu de données avec des données externes. Nous disposons des URL des pages , nous allons donc aspirer le contenus de ces pages web.
Nous créons donc une nouvelle colonne sur la base de la colonne “page”, et nous précisons que nous allons récupérer le contenu d’une URL.
L’aspiration d’une page HTML s’effectue en faisant un GET sur cette page et en attribuant la valeur de ce GET à une nouvelle cellule, soit “https://www.uxmetric.com”+value
Une fois le paramétrage effectué, en cliquant sur “Ok” nous appliquons ce paramétrage à l’ensemble de notre jeu de données
En résultat, voici la nouvelle colonne créée :
Nous allons ensuite parcourir le HTML récupéré à l’aide de la fonction “parseHtml” et de la fonction “select”, pour réaliser l’extraction de l’auteur du post. Nous ajoutons une colonne sur la base de la colonne contenant le code HTML, ensuite nous ferons de même avec l’éditeur.
Utilisons maintenant l’inspecteur de code de chrome pour parcourir l’arbre HTML des pages du site uxmetric.com et ainsi définir les sélecteurs qui permettent d’accéder à la donnée (chemin arborescent du code du haut du document vers la donnée). Nous accédons à la donnée auteur par le chemin de class CSS “.vcard .fn”
Une fois les sélecteurs définis, nous les utilisons dans notre fonction “select()” pour sélectionner notre donnée.
Nous pouvons ensuite ajouter une “navigation à facette” dans nos données pour obtenir une première lecture rapide.
A gauche une zone est apparue, elle présente le nombre de résultats pour les deux auteurs.
Nous effectuons ensuite un travail de même nature pour les éditeurs, en ajoutant une colonne sur la base du HTML récupéré, puis en filtrant ce code pour obtenir la valeur souhaitée.
Une fois la commande appliquée, nous obtenons :
A ce stade, en exportant notre travail, on obtient un fichier présentant les données nécessaires pour répondre aux questions posées initialement.
Page | Editeurs | Auteur | Titre de page | Pages vues | Vues uniques | Temps moyen passé sur la page | Entrées |
---|---|---|---|---|---|---|---|
/livres/uxdesign/ | Dunod | Guillaume Deconde | UX design & ergonomie des interfaces - Design - Mesurer l'expérience utilisateur - UX Metric | 30 | 14 | 00:00:58 | 2 |
/livres/the-design-of-everyday-things/ | Basic Books | Guillaume Deconde | The Design of Everyday Things - Design - Mesurer l'expérience utilisateur - UX Metric | 16 | 10 | 00:01:24 | 6 |
/livres/statistiques-appliquees/ | ellipses | Guillaume Deconde | Statistiques appliquées - | 14 | 7 | 00:00:04 | 6 |
/livres/show-me-the-numbers/ | Analytics Press | Guillaume Deconde | Show me the numbers - Data - Mesurer l'expérience utilisateur - UX Metric | 10 | 7 | 00:00:25 | 6 |
/livres/comprendre-et-realiser-les-tests-statistiques-a-laide-de-r/ | de Boeck | Guillaume Deconde | Comprendre et réaliser les tests statistiques à l'aide de R - Data - Mesurer l'expérience utilisateur - UX Metric | 9 | 5 | 00:00:03 | 3 |
/livres/lean-analytics/ | O’Reilly Media | Grégory Loth | Lean Analytics - Data, English, Marketing - Mesurer l'expérience utilisateur - UX Metric | 8 | 3 | 00:01:02 | 0 |
/livres/python-pour-le-data-scientist/ | Dunod | Grégory Loth | Python pour le data scientist - | 8 | 4 | 00:00:05 | 0 |
/livres/statistiques-appliquees/ | ellipses | Guillaume Deconde | Statistiques appliquées - Data - Mesurer l'expérience utilisateur - UX Metric | 8 | 4 | 00:00:03 | 3 |
/livres/statistiques-en-sciences-humaines-avec-r/ | de Boeck | Guillaume Deconde | Statistiques en sciences humaines avec R - Data, Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 8 | 3 | 00:00:11 | 2 |
/livres/927/ | Dunod | Guillaume Deconde | Psychologie cognitive - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 7 | 3 | 00:00:06 | 1 |
/livres/eloge-du-changement/ | Pearson – Village Mondial | Grégory Loth | Eloge du changement - Changement, management - Mesurer l'expérience utilisateur - UX Metric | 7 | 4 | 00:00:28 | 2 |
/livres/lauto-qui-nexistait-pas/ | Dunod | Grégory Loth | L'auto qui n'existait pas - management, Projets - Mesurer l'expérience utilisateur - UX Metric | 7 | 3 | 00:00:20 | 1 |
/livres/methodes-statistiques-en-sciences-humaines/ | de Boeck | Guillaume Deconde | Méthodes statistiques en sciences humaines - Data, Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 7 | 4 | 00:00:04 | 3 |
/livres/python-pour-le-data-scientist/ | Dunod | Grégory Loth | Python pour le data scientist - Data - Mesurer l'expérience utilisateur - UX Metric | 7 | 4 | 00:01:29 | 0 |
/livres/la-laideur-se-vend-mal/ | Gallimard | Grégory Loth | La laideur se vend mal - Design - Mesurer l'expérience utilisateur - UX Metric | 6 | 3 | 00:00:04 | 2 |
/livres/penser-la-communication/ | Grégory Loth | PENSER LA COMMUNICATION - management - Mesurer l'expérience utilisateur - UX Metric | 6 | 5 | 00:07:02 | 2 | |
/livres/psychologie-statistique-avec-r/ | edp sciences | Guillaume Deconde | Psychologie statistique avec R - Data, Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 6 | 3 | 00:00:03 | 2 |
/livres/intelligence-marketing/ | Eyrolles | Grégory Loth | Intelligence marketing - Digital, Innovation, Marketing - Mesurer l'expérience utilisateur - UX Metric | 5 | 2 | 00:00:04 | 1 |
/livres/psychologie-sociale/ | Presses Universitaires de France | Grégory Loth | Psychologie sociale - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 5 | 2 | 00:00:04 | 1 |
/livres/usability-engineering/ | Morgan Kaufmann | Guillaume Deconde | Usability engineering - Design - Mesurer l'expérience utilisateur - UX Metric | 5 | 2 | 00:00:06 | 0 |
/livres/psychologie-experimentale/ | Guillaume Deconde | Psychologie expérimentale - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 4 | 1 | 00:00:03 | 0 | |
/livres/multimedia-learning/ | Cambridge University Press | Guillaume Deconde | Multimedia Learning - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 3 | 2 | 00:10:03 | 0 |
/livres/927 | Dunod | Guillaume Deconde | Psychologie cognitive - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 2 | 1 | 00:00:35 | 1 |
/livres/comprendre-et-realiser-les-tests-statistiques-a-laide-de-r/ | de Boeck | Guillaume Deconde | Comprendre et réaliser les tests statistiques à l'aide de R - | 2 | 1 | 00:00:03 | 0 |
/livres/the-design-of-everyday-things/ | Basic Books | Guillaume Deconde | The Design of Everyday Things - | 2 | 2 | 00:00:12 | 2 |
/livres/927/?fbclid=IwAR0agv32CSm4aKIGLu4M-zJJuB5ZBh0b-_fet3JMRE-jfXubZLMK1-YsoxQ | Dunod | Guillaume Deconde | Psychologie cognitive - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 |
/livres/927/?fbclid=IwAR1fD8GgDBWl5rwVSCmdpNucIQh9DJXnjdHg7j2Vz5Ak9nCZGUHcSafEvZ8 | Dunod | Guillaume Deconde | Psychologie cognitive - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 |
/livres/927/?fbclid=IwAR3Utf4UBGo9kIba3QWCiSGFd1XK7kI9m0gEonq9T6Nzq7WRoWnTfcRiTxA | Dunod | Guillaume Deconde | Psychologie cognitive - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 |
/livres/927/?fbclid=IwAR3VcyQl9Iv6O6erLlYtZcDbkBlFSt0ZbxjuQ3uDJGpiniHNLg5ycF3mlNY | Dunod | Guillaume Deconde | Psychologie cognitive - Sciences sociales - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 |
/livres/la-laideur-se-vend-mal/ | Gallimard | Grégory Loth | La laideur se vend mal - | 1 | 1 | 00:00:58 | 0 |
/livres/lauto-qui-nexistait-pas/?fbclid=IwAR2QzF4r3XcES60mkLCc4-AkOxYda-n4NuqBqq17VIXOJNKLPsA_0GuvT_Q | Dunod | Grégory Loth | L'auto qui n'existait pas - management, Projets - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 |
/livres/lauto-qui-nexistait-pas/?fbclid=IwAR3dEm39fguF3EcBLtvJNo2TDN2IwmEpmedG1gFa3vfIzXyjsQcxDy0QtTU | Dunod | Grégory Loth | L'auto qui n'existait pas - management, Projets - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 |
/livres/lauto-qui-nexistait-pas/?fbclid=IwAR3rQaUDfSI1rMjItSwvhSdr6Oc9mb9cA7HDW7Y8Tbcy5hFziuzbX56v7kU | Dunod | Grégory Loth | L'auto qui n'existait pas - management, Projets - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 |
/livres/penser-la-communication/?fbclid=IwAR1m0v698q_G7c1i3NjGll5XRR5jpnHAFL8KCCcPVVWIkJQgG6UQp4d3kxY | Grégory Loth | PENSER LA COMMUNICATION - management - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 | |
/livres/penser-la-communication/?fbclid=IwAR3W4A1lpDSgXvtM0OALiVGQ05RpwT1XkzlcUE2jIQ2st8jliwDjS3aLFpc | Grégory Loth | PENSER LA COMMUNICATION - management - Mesurer l'expérience utilisateur - UX Metric | 1 | 1 | 00:00:00 | 1 | |
/livres/psychologie-experimentale/ | Guillaume Deconde | Psychologie expérimentale - | 1 | 1 | 00:02:03 | 1 | |
/livres/psychologie-sociale/ | Presses Universitaires de France | Grégory Loth | Psychologie sociale - | 1 | 1 | 00:00:00 | 1 |
/livres/statistiques-en-sciences-humaines-avec-r/ | de Boeck | Guillaume Deconde | Statistiques en sciences humaines avec R - | 1 | 1 | 00:00:00 | 1 |
Il nous faudra ensuite utiliser les tableaux croisés dynamiques d’Excel ou les tables Pivot de Google Sheet pour finaliser notre étude et obtenir les graphiques ci-dessous.
Rappel de nos interrogations et éléments de réponse
Qui des deux auteurs du site proposent les livres les plus lus ?
Quel est l’éditeur qui obtient le plus de visibilité par le biais des fiches livre ?
Nous avons ici présenté cet outil très puissant à travers un exemple simple de préparation et consolidation de données. Il est également possible de l’utiliser pour augmenter la connaissance client en réconciliant les données de parcours d’un utilisateur enregistrées dans un outils de web Analytics avec les données CRM (dans la mesure ou les deux jeux de données disposent d’une clés commune). Dans ce contexte, il est nécessaire d’interroger une API dans le but d’obtenir un flux de données, en jSon par exemple, et d’utiliser les composants GREL pour parcourir les flux d’une façon similaire à celle employée pour parcourir les codes HTML.
Quoiqu’il en soit, les possibilités de traitements de données sont vastes et les capacités de l’outil également. Open Refine est en perpétuelle évolution depuis 2010. Il compte quelques extensions pour étendre ses fonctionnalités et une API pour automatiser bon nombre d’opérations.