Google Analytics, le service d'analyse du web fourni par Google, subit un changement important. La version actuelle, Universal Analytics, est progressivement supprimée et remplacée par Google Analytics 4, la solution de mesure de nouvelle génération. Le 1er juillet 2023, les propriétés standard d'Universal Analytics cesseront de traiter les données et les utilisateurs seront invités à passer à Google Analytics 4 dès que possible.

Ces derniers pourront accéder à leurs données précédemment traitées dans leur propriété Universal Analytics jusqu'au 1er juillet 2024. Après cette date, ils ne pourront plus voir leurs rapports Universal Analytics dans l'interface Analytics ou accéder à leurs données Universal Analytics via l'API.

Assurer la conservation des données à long terme

Le challenge réside principalement dans la préservation à long terme des données Universal Analytics. Si la date limite arrive et que vous n'avez pas sauvegardé vos données UA sur un quelconque type de cloud, vous ne serez pas en mesure de comparer vos données actuelles avec les données historiques. Ces données d'analyse sont importantes pour les entreprises et le temps est compté, d'où la nécessité d'assurer la conservation à long terme de ces données.

Assurer la continuité des données

Si vous avez déjà une solution en tête pour assurer le stockage de votre historique, c'est une bonne chose. Cependant, un second défi se pose lorsque vos deux outils d'analyse (UA puis GA4 ou Piano, par exemple) deviennent deux unités différentes, créant une division entre l'endroit où sont stockées vos anciennes données historiques et l'endroit où vous stockerez les nouvelles données. Cette séparation compliquera les analyses comparatives d'une année sur l'autre.

Data from two different datasets without overlap | Image by author

L'exemple ci-dessus montre que cette séparation complique l'analyse d'une année sur l'autre, mais ne la rend pas impossible. Toutefois, elle rendra l'analyse de la période de séparation encore plus complexe. Par exemple, si vous avez effectué votre changement d'outil en juillet 2023, comment pouvez-vous effectuer une analyse de l'année 2023 dans la mesure ou elle est divisée en deux ensembles de données distincts ?

Data from two different datasets with an overlap | Image by author

Comme vous l'avez compris, il en résulte un problème de continuité des données.

Quelles sont les solutions ? 

Ne rien faire

Il s'agit d'une approche simple, mais qui n'est évidemment pas recommandée. Si vous n'agissez pas, comme indiqué plus haut, vous perdrez toutes les données accumulées depuis que vous avez commencé à utiliser Universal Analytics.

Le faire soi-même

C'est une approche complexe, qui prend beaucoup de temps (plusieurs semaines de travail) si vous avez beaucoup d'historique à sauvegarder. Elle n'est pas non plus recommandée parce qu'elle est sujette à des erreurs humaines lors des importations. Enfin, même avec un transfert manuel, le processus technique est très difficile à réaliser.

Utiliser une solution d'ETL

Il est possible de suivre cette voie, mais il convient de noter que ces outils sont principalement utilisés pour stocker des données sur une base quotidienne ou mensuelle plutôt que pour interroger l'intégralité de vos données disponibles. Cela implique un coût très élevé et une forte probabilité de défaillance des sauvegardes ou d'incapacité à exploiter les données exportées.

Une solution d'experts

Lisez cet article et découvrez notre méthodologie pour sauvegarder vos données GA3 :)

Les obstacles

Optimisation du stockage des données

L'exportation de données de GA3 vers BQ génère des millions de lignes dans la base de données, d'où la nécessité d'optimiser le stockage. En l'absence de techniques d'optimisation, le volume de données généré peut entraîner des temps d'interrogation lents, des coûts de stockage accrus et des données ingérables, ce qui rend difficile l'extraction d'informations pertinentes.

Des rapports et des analyses imprécis peuvent également résulter d'un stockage non optimisé, entraînant des opportunités manquées ou des prises de décision incorrectes. Il est donc essentiel de mettre en œuvre des stratégies d'optimisation qui permettent de gérer et de stocker les données exportées de manière rentable et efficace.

Avec des techniques d'optimisation appropriées, les données exportées peuvent être facilement accessibles, précises et exploitables.

Données échantillonnées

Lorsque vous demandez des données à l'API GA3, il existe un risque que les données renvoyées soient échantillonnées, en particulier lors de l'interrogation d'un grand volume de données. Les données échantillonnées peuvent ne pas être représentatives de l'ensemble des données et ne pas refléter fidèlement les performances réelles d'un site web ou d'une application.

Cela pose un problème lorsqu'il s'agit d'exporter des données du GA3 vers BQ, car les données exportées doivent être exactes et représentatives de l'ensemble du jeu de données. Il est donc essentiel de veiller à ce que les données obtenues à partir de l'API GA3 ne soient pas échantillonnées et que l'ensemble des données soit exporté vers BQ.

Cardinalité

Chaque dimension de rapport est associée à un nombre spécifique de valeurs possibles, et le nombre total de valeurs uniques pour une dimension est connu sous le nom de cardinalité. Les dimensions à cardinalité élevée ont un grand nombre de valeurs potentielles et les rapports contenant de telles dimensions peuvent être affectés par les limites du système Analytics. Lorsqu'il y a plus de combinaisons dimension-valeur que la limite pour une table donnée, Analytics stocke les N premières valeurs et crée une (autre) entrée pour les combinaisons de valeurs restantes. Cela signifie que lors de l'affichage d'un rapport avec une dimension à cardinalité élevée qui dépasse les limites, toutes les valeurs de cette dimension ne seront pas affichées et certaines valeurs seront regroupées dans une (autre) entrée.

Understanding Data Sampling in Google Analytics 4 (GA4) - Optimize Smart

Étant donné que nous devons avoir accès à toutes les valeurs dans nos exportations vers BigQuery, le problème actuel des dimensions à cardinalité élevée et des limites du système Analytics représente un défi. Nous ne pouvons pas nous permettre d'avoir des données enroulées ou exclues de nos exportations, car cela compromettrait la précision et l'exhaustivité de notre analyse. Nous devons donc trouver une solution qui nous permette d'extraire toutes les valeurs des dimensions à cardinalité élevée, quelles que soient les limites du système Analytics.

Les solutions

Partitionnement et regroupement

Sources : Google Cloud Big Query Docs “Introduction to clustered tables”

Pour résoudre le problème de l'optimisation du stockage, nous pouvons utiliser des techniques de partitionnement et de regroupement. Le partitionnement consiste à diviser un grand ensemble de données en parties plus petites et plus faciles à gérer, appelées partitions. Cela facilite le stockage et le traitement des données, car chaque partition peut être stockée séparément et traitée en parallèle.

Le clustering, quant à lui, consiste à regrouper des points de données similaires en fonction de leurs caractéristiques. Cela permet de réduire la quantité globale de données à stocker, car les points de données similaires peuvent être représentés par un seul centroïde de grappe. Le regroupement peut également contribuer à la compression des données et faciliter l'analyse de grands ensembles de données.

Ensemble, le partitionnement et le regroupement peuvent être utilisés pour optimiser le stockage et le traitement de grands ensembles de données. En divisant les données en partitions plus petites et en regroupant les points de données similaires, nous pouvons réduire la quantité de stockage nécessaire et faciliter le traitement des données en parallèle.

Code Python

    
      from google.cloud import bigquery

      # Create a "client" object to connect to BigQuery
      client = bigquery.Client()

      # TODO: Set the "table_id" to the ID of the table to create
      # table_id = "your-project.your_dataset.your_table_name"

      # Define the schema of the new table
      schema = [
          bigquery.SchemaField("full_name", "STRING"),
          bigquery.SchemaField("city", "STRING"),
          bigquery.SchemaField("zipcode", "INTEGER"),
      ]

      # Create a "table" object with the specified schema
      table = bigquery.Table(table_id, schema=schema)

      # Set the clustering fields for the new table
      table.clustering_fields = ["city", "zipcode"]

      # Create the new table in BigQuery
    
  

Réduire la plage de date

Pour résoudre les problèmes de données échantillonnées et de cardinalité élevée, nous avons décidé de réduire l'intervalle de temps pour chaque requête et d'effectuer des requêtes enchaînées pour obtenir toutes les données requises. Cette approche consiste à diviser l'intervalle de temps global en sous intervalles plus petits et à interroger chaque sous intervalle séparément. Ce faisant, nous pouvons réduire la quantité de données interrogées en une seule fois, ce qui réduit la cardinalité et résout le problème des données échantillonnées.

Adaptable aux prochains outils d'analyse (GA4, Piano ...)

En adaptant le modèle de données du GA4, nous pouvons unifier les deux modèles et créer un ensemble de données contenant à la fois les données historiques du GA3 et les données du GA4. Pour ce faire, il suffit de faire correspondre les champs pertinents de GA3 à GA4 et d'ajuster le schéma en conséquence. Une fois les données intégrées, nous pouvons obtenir des informations plus approfondies sur le trafic de notre site web et le comportement des utilisateurs. En outre, en disposant d'un ensemble de données unifié, nous pouvons éviter d'avoir à passer d'une plateforme d'analyse à l'autre et rationaliser nos processus de reporting et d'analyse. Il est toutefois important de noter que la mise en œuvre de cette intégration peut nécessiter beaucoup de temps et de ressources, et qu'une planification et des tests minutieux seront nécessaires pour garantir l'exactitude et l'exhaustivité de l'ensemble des données combinées.

Conclusion

Universal Analytics étant en cours de suppression, les utilisateurs sont encouragés à passer à Google Analytics 4. La difficulté liée à la fermeture d'Universal Analytics réside principalement dans la préservation à long terme des données d'une organisation. Les utilisateurs doivent veiller à la continuité des données lorsqu'ils passent d'un outil d'analyse à l'autre, car cela crée une division entre l'emplacement où sont stockées les données historiques et celui où seront stockées les nouvelles données, ce qui complique les analyses comparatives d'une année sur l'autre.

Bien qu'il existe plusieurs solutions, chaque approche comporte ses propres défis, tels que l'optimisation du stockage des données, le traitement des données échantillonnées et la gestion de la cardinalité.