Cardinalité et échantillonnage dans GA4, un guide pour tout comprendre

Échantillonnage et cardinalité dans Google Analytics 4 : comprendre l'algorithme !
Logo Profil writer Smart Bees
Par Gauthier Haicault
Dernière modification le 29 Décembre, 2023

Est-ce que vous êtes sûr que le nombre d’utilisateurs dans Google Analytics 4 (GA4) correspond bien au nombre exact d’utilisateurs mesuré sur site ? Si je vous dis HyperLogLog++, ça vous parle ?

Il existe de nombreuses raisons pour lesquelles vos données GA4 peuvent ne pas correspondre à vos attentes, en matière de précision notamment. L'une des plus déroutantes est le sujet de la cardinalité dans GA4. D’où ça vient ? Cet article, un peu plus technique va vous parler de HyperLogLog++ (HLL++), qui est justement utilisé pour estimer le nombre d'utilisateurs. Cet algorithme d'estimation apparaît dans l'interface utilisateur du GA4, qu'ils soient marqués comme "échantillonnés" ou non, mais ne correspondra pas à ce que l'on voit dans BigQuery. Alors, qu'est-ce que HLL++ et dans quelle mesure perturbe-t-il vraiment vos données et la lecture de vos rapports GA4 ?

Sommaire :

  • Les mythes autour de l’algorithme HLL++
  • D’où vient l’algorithme HyperLogLog++ et que fait-il ?
  • Qu’est ce que ça signifie précisément dans GA4 ?

1. Les mythes autour de l’algorithme HLL++

Voici les quelques mythes que l'on peut entendre sur l'algorithme HLL ++ :

“HLL++ n’est pas assez précis.” Je pense qu’on peut dire que cet argument est faux. La précision est généralement de 1,6 % pour les utilisateurs (intervalle de confiance de 95 %).Il est moins précis pour les sessions, ±3,3 %.Donc oui, il peut être frustrant de voir que ces données d’utilisateurs ou de sessions ne correspondent pas exactement au nombre exact pour vos données. Mais quand est-il alors des autres problèmes impactant la précision et l’exactitude de ces données : je parle ici, des bloqueurs de publicité, des limitations liées aux cookies et aux navigateurs, les bots (même si mieux gérés dans GA4). Donc pas de grosses alarmes à activer, ne perdez pas votre temps à aller chercher cette précision autour des 1 à 2% restants, vous allez perdre votre temps, voyez davantage GA4 comme un outil pour mesurer le comportement utilisateur vs un outil de comptabilité du nombre d’utilisateurs.

“HLL++ est une nouveauté pour GA4”. Alors là c’est encore faux ! Cet algorithme est bien utilisé dans GA4 mais il l'était également dans UA également. Et pas de puis peu de temps : Il a été utilisé dans UA pour le comptage des utilisateurs depuis 2017 ! Là où il y a une différence, c’est que GA4 l’utilise également pour d’autres métriques, notamment pour le compte des sessions. D’autres outils l’utilisent également, comme Adobe, mais pour des raisons différentes : uniquement pour compter de façon distincte les valeurs de dimension mais pas pour compter les utilisateurs comme dans GA4. Le GA4 l'utilise également pour d'autres choses, notamment pour le comptage des sessions.

“HLL++ est de l'IA”. On pourrait se laisser berner par le fait qu’il s’agit d’un algorithme. Mais ici il ne s’agit pas de machine learning, c'est-à-dire d’apprentissage automatique, d’échantillonnage ou de modélisation. Ici, il s'agit tout simplement d'une méthode probabiliste : un algorithme permettant d'estimer rapidement la cardinalité en utilisant le “hasard”.

Découvrez plus en détail comment Smart Bees peut vous accompagner sur votre implémentation tracking
Je découvre l'offre tracking

2. D’où vient l’algorithme HyperLogLog++ et que fait-il ?

"HyperLogLog++" est une version doublement améliorée de l'algorithme LogLog. Il est nommé ainsi car l'algorithme "LogLog" est basé sur le logarithme d'un logarithme.

Que fait l’algorithme ? 🤔

Il compte tout simplement le nombre d'éléments uniques dans une liste. Prenons un exemple, si nous voulons savoir combien d'utilisateurs différents nous avons eu sur un mois donné avec la source=facebook, nous ne pouvons pas simplement additionner toutes les visites par jour, parce que certains utilisateurs ont eu une visite et d'autres en ont eu 10 sur plusieurs jours. Ainsi, nous allons devoir dédupliquer cette liste pour compter le nombre d'identifiants d'utilisateurs distincts. L'algorithme HLL++ va nous offrir une manière beaucoup plus efficace de le faire. On aura plus besoin de parcourir chaque identifiant d'utilisateur et à le stocker en mémoire pour effectuer une comparaison.

En effet, on va avoir un peu a même logique qu’en SQL avec le fameux et très utile : SELECT_DISTINCT(). Avec celui-ci, pas besoin de regarder toutes les données. 😉 Or si vous avez déjà effectué un select SELECT_DISTINCT() sur une grande table de données, vous avez sans doute remarqué que c’est assez lent ! Dans GA4, vous aurez donc des estimations pour les sessions et les utilisateurs dans l'interface utilisateur ou via l'API. Vous n'aurez donc jamais un nombre exact et précis pour de ces métriques dans GA4.

3. Qu’est ce que ça signifie précisément dans GA4 ?

Du coup, si on reprend ce que je vous disais précédemment, le nombre d'utilisateurs affiché dans les différents rapports de Google Analytics n'est pas un décompte exact du nombre d'utilisateurs qui ont été enregistrés comme effectuant des actions sur un site web pendant une période donnée. Si on veut rentrer un peu dans la technique, ces rapports n'indiquent pas le nombre de cookies liés aux navigateurs ou d'identifiants de clients GA uniques qui remontent lors d’une session. 

Échantillonnage et cardinalité dans Google Analytics 4 : comprendre l'algorithme !

Le nombre d'utilisateurs indiqué dans ces rapports est une estimation probabiliste du nombre réel d'utilisateurs.

Cela implique que les chiffres affichés sont pratiquement inévitablement éloignés par rapport au nombre réel. Il existe un pourcentage variable. C'est inhérent à la conception de GA4. Il est donc impossible d'obtenir un décompte précis dans l'interface ou l'API de Google Analytics. Ce que l'on obtient, ce sont essentiellement des estimations.

Ce point est explicitement mentionné dans la documentation officielle, qui a été mise à jour à un certain moment pour refléter les changements survenus en 2017 :

“Début 2017, Google Analytics a commencé à mettre à jour la méthode de calcul des métriques "Utilisateurs" et "Utilisateurs actifs" afin de comptabiliser plus efficacement les utilisateurs, avec une grande précision et un faible taux d'erreur (généralement inférieur à 2 %).”

N'hésitez pas à lire la documentation complète de Google sur le sujet.

Dans l’outil Google Analytics 4 (contrairement à Universal Analytics où nous pouvions activer / désactiver une option), il n'existe aucune option permettant de désactiver les mesures d'utilisateurs, de sorte que tous les calculs pour définir le nombre d'utilisateurs que vous pouvez obtenir via l'interface sont des estimations et non des “comptages” exacts.

Donc si on prend en compte cet élément :

Dans GA4, même si le rapport est qualifié de “non échantillonné”, celui peut remonter des données estimées au lieu de données exactes. 😥

Quand j’ai commencé mon métier de consultant analytics, un rapport avec un échantillonnage à 100 % était une situation où je savais que j’avais 100% de ma donnée (sans compter les autres impacts : bloqueurs de publicité etc). Sauf que j’ai appris plus tard que je pouvais bien avoir des estimations probabilistes au lieu de chiffres bruts dans les rapports de Google Analytics. Donc c’était déjà le cas dans Universal Analytics et maintenant dans Google Analytics 4. Pour votre information, l'échantillonnage inférieur à 100 % se produit généralement lorsque Google Analytics doit examiner plus de 500 000 sessions pour générer un rapport ad hoc. Les rapports prédéfinis sont donc exclus de cette limitation.

Tant que je percevais l'icône bien connue du bouclier vert, j'avais la certitude que les données que j'observais consistaient en des décomptes précis, et par conséquent, elles étaient exactes et pouvaient être utilisées sans problème pour la lecture des rapports. Vous pouvez vous retirer ça de la tête !

Dans Universal Analytics on pouvait retirer cette option, mais dans le nouveau Google Analytics 4, il n'existe pas d'option permettant de désactiver les mesures d'utilisateurs, de sorte que chaque nombre d'utilisateurs que vous pouvez obtenir via l'interface est une estimation au lieu d'un nombre exact.

Cela a des conséquences importantes, donc pour contrer ces échantillonnages et ce sujet de cardinalité de la donnée dans GA4, il existe une possibilité :

Dans Big Query nous pouvons avoir la donnée exacte ! Ainsi pour des AB test, nous conseillons d’analyser la donnée en exportant celle-ci via BigQuery et pas directement dans GA4.

Lisez la documentation Google sur les différences entre BigQuery et l'interface utilisateur.  

Pour conclure

J’espère que cet article ne vous a pas découragé. Encore une fois, voyez GA4 comme un outil pour mesurer le comportement utilisateur, pas comme un outil exhaustif de mesure et de précision sur vos différentes métriques !

Si vous utilisez la mesure des utilisateurs de Google Analytics pour des A/B tests,, il est impératif d'utiliser les chiffres bruts au lieu des estimations probabilistes d'HyperLogLog. Dans Google Analytics 4, cette opération est réalisable en activant l’association et l’export des données dans BigQuery. Chez Smart Bees, on vous conseille d’investir dans le cloud ! Si vous avez des questions, n’hésitez pas à nous contacter.