avril 07, 2021
Lorsque vous essayez d'exécuter des algorithmes d'apprentissage machine (ML) sur des données Adobe Analytics ou même de combiner ces données avec d'autres sources de données, les données d'Adobe ne sont pas assez fines par défaut. Avec un peu de manipulation d'Adobe, on peut faire beaucoup. Voici un guide sur la façon de procéder.
L'autre jour, un client a soulevé un problème. La vitesse de chargement des pages du site était inacceptable et le client craignait que cela ait un impact sur le parcours des visiteurs et, en fin de compte, sur les ventes. Pour les aider dans les prochaines étapes, nous nous sommes tournés vers leur installation Adobe Analytics, qui stockait toute l'activité de tous les utilisateurs sur le site web. Ces données devaient certainement nous permettre de savoir quels utilisateurs avaient effectivement subi un retard de chargement de la page et comment le temps de chargement de la page affectait les taux de conversion de chaque utilisateur. Nous voulions notamment utiliser le ML et l'IA pour analyser l'énorme quantité de données que contient le système Adobe (j'avais les yeux rivés sur le logiciel libre XGBoost pour cette tâche).
Adobe-Data are Not Fine Grained Enough by Default
Pour réaliser ce genre d'astuces, il faut que les données soient aussi fines que possible, au moins au niveau de l'utilisateur individuel. Bien que l'interface utilisateur d'Adobe Analytics Workspace soit polyvalente, les données d'Adobe sont toujours agrégées, c'est-à-dire qu'elles résument le comportement de nombreux utilisateurs différents pour fournir des mesures telles que les pages vues, les taux de rebond ou les taux de conversion. Par conséquent, l'interface utilisateur n'est pas bien équipée pour analyser les données du point de vue de chaque utilisateur individuel.
Data Warehouse to The Rescue
Heureusement, Adobe vous permet d'extraire ces énormes quantités de données par le biais de deux approches distinctes.
- La première approche est Data Warehouse. Vous pouvez y sélectionner l'ensemble des ventilations (dimensions), des métriques et des segments pour toute plage de données prédéfinie. Ces données sont déjà prétraitées et agrégées par Adobe.
- La deuxième approche consiste à utiliser les Data Feeds. Vous obtenez ici des données partiellement traitées qui ont été envoyées à Adobe. Par rapport à l'entrepôt de données, il s'agit de données très granulaires au niveau des occurrences.
J'ai opté pour la première méthode, celle de Data Warehouse.
Extraction du Data Warehouse de données de l'API Adobe Analytics à l'aide de R et de RsiteCatalyst
La meilleure façon d'extraire des données de l'entrepôt de données Adobe est de demander l'exportation via l'API Adobe Analytics à l'aide du logiciel de programmation statistique R. C'est rapide et cela permet d'obtenir des ensembles de données très granulaires et volumineux. Toutefois, cette méthode nécessite quelques compétences en codage. Je préfère extraire les données à l'aide du paquet RSiteCatalyst, car il vous permet de demander de grandes quantités de données sans avoir à manipuler le JSON (si le JSON ne vous dérange pas, n'hésitez pas à accéder à l'API Adobe Analytics via JSON avec Postman, par exemple). R peut être installé sur Linux, Windows et Mac OS X à partir de cran.r-project.org. Si vous souhaitez suivre mon exemple avec R, je vous recommande de télécharger également RStudio sur rstudio.com, car il offre un environnement de développement intégré convivial. Après avoir installé R et RStudio, vous devez vous assurer que votre compte utilisateur dispose d'un accès aux services Web. Ensuite, vous pouvez tirer parti de la puissance de RSiteCatalyst en identifiant votre nom d'utilisateur et votre secret dans Adobe Analytics :
- Allez dans la section "Admin". Depuis la page de destination par défaut d'Adobe Analytics, cliquez sur la section "Admin".n.
- Allez dans "Analytics Users & Assets". Depuis la section "Admin", cliquez sur la section "Analytics Users & Assets".
- Localisez-vous. Utilisez le champ de recherche pour vous localiser.
- Connecter l'API. Une fois que vous aurez cliqué sur votre "USER ID", cela ouvrira les détails associés à votre compte utilisateur. Sous l'en-tête "Web Service Credentials", vous trouverez les informations d'identification nécessaires pour vous connecter à l'API. Le "Nom d'utilisateur" doit être votre adresse électronique suivie du nom de votre société, tandis que le "Secret partagé" est une chaîne de 32 caractères.
Maintenant que vous avez trouvé vos informations d'identification, vous pouvez vous connecter à l'API avec R en utilisant le script ci-dessous qui installe et charge RSiteCatalyst dans R :
- Demander le cadre de données des suites de rapports. Étant donné qu'une connexion avec l'API a été établie, vous pouvez commencer à interroger les données. Tout d'abord, demandez un cadre de données qui contient les suites de rapports dont vous voulez extraire les données.
- Stocker comme vecteur. Vous êtes maintenant en mesure d'ouvrir un cadre de données qui contient l'ID de la suite de rapports sous l'en-tête "rsid". La suite de rapports dont vous voulez exporter les données peut être stockée comme un vecteur de caractères.
- Demander des cadres de données d'éléments, de métriques et de segments. Puisque vous avez maintenant défini la suite de rapports dont vous allez extraire les données, l'étape suivante consiste à demander des cadres de données qui contiennent tous les éléments (dimensions), métriques, segments, props et eVars pertinents.
- Ajouter des identifiants. Il est important de noter que l'ID du visiteur de l'analyse et l'ID de l'Experience Cloud ne font pas partie du cadre de données des éléments. Par conséquent, nous devons ajouter ces dimensions au cadre de données des éléments.
- Spécifier les en-têtes. Nous pouvons maintenant accéder aux cadres de données et spécifier les éléments que nous voulons utiliser pour notre rapport. Notez que les éléments doivent être référencés par leur valeur dans les en-têtes "id". Ci-dessous, nous spécifions ces en-têtes qui seront utilisés pour créer une requête pour le nombre de pages vues et le temps moyen passé sur la page, ventilés par identifiant du visiteur, nom de page et appareil.
- Faire correspondre les noms. Comme mentionné, les en-têtes "id" n'ont pas toujours des noms significatifs. Par exemple, "evar1" représente le nom de la page. Heureusement, l'en-tête "id" a également un en-tête "name" correspondant. Après avoir effectué les étapes précédentes, un cadre de données de référence contenant les noms correspondants peut être créé avec l'extrait ci-dessous.
Ce qui précède sera également utile lors de la création d'en-têtes significatifs pour l'exportation.
- Exportation des données. Après avoir effectué les étapes précédentes, nous sommes maintenant prêts à exporter des données avec la fonction "QueueDataWarehouse". Dans l'exportation ci-dessous, nous introduisons neuf arguments dans la fonction :
-
- id- identifiant de la suite du rapport stocké dans le vecteur de caractères
- à parti de - la date de début du rapport (YYYY-MM-DD).
- à - date de fin du rapport (AAAA-MM-JJ).
- metrics - métriques spécifiées dans l'objet "used_metrics".
- elements- éléments spécifiés dans l'objet "used_elements".
- granularity- granularité temporelle du rapport (année/mois/semaine/jour/heure), la valeur par défaut est "day".
- seconds- le temps d'attente entre les tentatives.
- attempts- nombre de tentatives API avant de s'arrêter.
- enqueueOnly- ne met en file d'attente que le rapport, sans récupérer les données. Renvoie l'identifiant du rapport, que vous pourrez utiliser ultérieurement pour obtenir les données.
Par défaut, la fonction s'exécute pendant dix minutes avant de s'arrêter (120 tentatives séparées par des pauses de 5 secondes). D'après mon expérience, ces valeurs par défaut doivent être ajustées à la hausse afin de mener à bien des demandes d'exportations plus importantes.
En outre, il est également possible de mettre en file d'attente le rapport sans recevoir les données en définissant "enqueueOnly" à true. Lorsque l'extrait suivant est exécuté, une demande sera faite pour un rapport avec les paramètres et les éléments prédéfinis avec un nombre de tentatives et de pauses ajusté vers le haut :
Rendre les en-têtes significatifs. Une fois que vous avez réussi à récupérer les données, l'extrait ci-dessous peut être utilisé pour faire correspondre les noms d'en-tête significatifs au cadre de données d'exportation. Notez que "datetime" sera toujours la première colonne.
- Excel. Enfin, si vous souhaitez travailler avec les données au format Excel, R offre un moyen simple d'exporter les cadres de données sous forme de fichiers .csv.
Bien entendu, il ne s'agit que d'un exemple du type de données que vous pouvez potentiellement exporter. En fait, vous pouvez exporter des données avec beaucoup d'autres mesures et éléments et transformer les données comme bon vous semble.
Envoi de la demande d'entrepôt de données à votre adresse électronique en tant que fichier .CSV
Si vous ne souhaitez pas vous lancer dans la programmation R, il existe un autre moyen d'obtenir les données. Il vous suffit de vous rendre dans l'interface d'Adobe Analytics, de spécifier les détails du rapport et de saisir votre adresse électronique pour recevoir les données souhaitées. Si le volume de données que vous souhaitez extraire ne dépasse pas 10 Mo et si vous n'êtes pas pressé de recevoir les données (elles sont envoyées par courrier électronique et peuvent prendre plusieurs heures), cette méthode pourrait vous convenir.
- Connectez-vous à Adobe Analytics...
- Survolez l'en-tête "Tools" et cliquez sur "Data Warehouse".
- Spécifiez le "Nom de la demande". Cela vous permettra de localiser votre demande dans le "Request Manager" par la suite.
- Cliquez sur "Request this Report" pour commencer à programmer le rapport.
Il ne vous reste plus qu'à attendre que le rapport arrive dans votre boîte de réception (ce qui, comme nous l'avons indiqué, peut ne pas se produire instantanément).
Bonne chasse à la vérité
J'ai utilisé la méthode R pour mettre la main sur les données du client et je l'ai aidé à déterminer dans quelle mesure le chargement des pages causait des difficultés à ses visiteurs - et à son activité. J'aurais pu utiliser cette dernière méthode également, mais le plafond de la taille des données nous aurait causé des problèmes, ainsi que des problèmes de temps.
Si vous envisagez de faire quelque chose de similaire, l'une ou l'autre des deux méthodes vous aidera à atteindre vos objectifs. Une fois que vous aurez suivi les étapes ci-dessus, vous obtiendrez un bel extrait de données à grain fin à partir d'Adobe Analytics. Un extrait de données qui n'attend plus que vous pour appliquer votre propre analyse avancée, trouver des modèles intéressants dans les données et prédire les actions futures de chaque utilisateur de votre site web. Bonne chance dans la recherche de vos "vérités".