GA4 et BigQuery : vers des données plus complètes avec les tables Fresh daily ?

Dans notre précédent article, nous avons exploré les comportements des tables partitionnées en intraday et interday dans GA4 et leur évolution. Aujourd’hui, nous nous intéressons à une option disponible pour les comptes GA4 360 dans BigQuery : les tables “Fresh daily”. Celles-ci offrent des mises à jour plus fréquentes et atteignent plus rapidement un niveau de complétion pertinent, se positionnant comme une alternative aux tables intraday pour les entreprises cherchant des insights les plus frais possible.

Dans cet article, nous allons comparer la « Fresh daily » aux tables intraday et interday en termes de disponibilité, de fréquence de mise à jour et de complétude, pour mieux comprendre laquelle de ces options répond le mieux aux exigences des analyses de performance en “temps réel”.

Notre analyse porte essentiellement sur les métriques, mais nous étudierons également la complétion de dimensions liées à l’attribution des sessions (source, medium, campagne…).

Méthodologie

Pour évaluer la performance des tables « Fresh daily », intraday et interday dans GA4, nous avons mené une analyse sur une semaine complète (du 29/09 au 03/10).

Chaque jour, nous avons extrait et comparé des données de 5 événements clés :

  • Sessions
  • Purchases (transactions)
  • Begin checkout
  • Revenus
  • Reach search (custom event)
 

Nous avons également programmé une requête pour suivre l’évolution de ces événements heure par heure sur trois jours supplémentaires (du 18/10 au 20/10), ce qui nous permet d’analyser les différences de complétude des données au fur et à mesure qu’elles sont mises à jour dans chaque type de table.

Ce suivi nous aide à comprendre la rapidité et la précision avec lesquelles chaque table fournit des informations. En observant ces données sur plusieurs jours et à différentes heures, nous avons pu mesurer la complétude de chaque type de table, les variations entre elles et leur utilité respective pour différents cas d’usage.

Résultats et analyse

1- Complétude des Données

L’analyse a révélé des différences importantes en termes de complétude entre les 3 types de tables GA4. À J+1, les tables « Fresh daily » atteignent un taux de complétude moyen de 95 % à 99 %, tandis que les tables intraday stagnent entre 53 % et 76 %. En revanche, les tables interday, disponibles un peu plus tard, garantissent la complétude à 100 % mais prennent plusieurs jours pour être entièrement mises à jour.

En se penchant sur des événements spécifiques, nous constatons que la complétude varie en fonction du type de données collectées. Par exemple :

  • Custom métriques et autres métriques standards : Le taux de complétude des données “Fresh daily” se rapproche de 100 % dès J+1, dépassant les intraday avec un écart de près de 25 %.

Niveau de complétion des métriques standard et Custom sur les tables Fresh daily et Intraday à J+1 (par rapport à l’interday, notre base 100)

  • Purchases : Pour cet événement, l’écart est encore plus marqué. Les données Fresh daily sont quasiment complètes à J+1, tandis que celles des tables intraday se complètent beaucoup plus lentement, rendant ces dernières peu fiables pour des rapports précoces ou des décisions opérationnelles.

Niveau de complétion des Purchases sur les tables Fresh daily et Intraday à J+1 (par rapport à l’interday, notre base 100)

Cette 1ère analyse nous laisse à penser qu’à J+1, on ne peut pas se fier à l’intraday contrairement à la fresh daily qui se rapproche des 100%.

Toutefois, il convient d’abord d’examiner l’évolution de la donnée à J0 (notamment à des fins de détection d’anomalie) ainsi que jusqu’à J+2 pour établir les “cycles de vie” de chaque type de table.

2 – Evolution de la donnée sur les 3 types de tables de J0 à J+2

Pour pouvoir comparer les tables fresh daily et intraday chacune par rapport à l’interday et leur évolution durant la J0, nous avons récupéré le timestamp et comparé le volume des données à intervalles équivalents. 

En reprenant les sessions et les purchases, voici ce que l’on obtient:

Niveau de complétion des métriques Session sur les tables Fresh daily et Intraday à J0 (par rapport à l’interday, notre base 100, à timestamp équivalent)

Niveau de complétion des métriques Purchases sur les tables Fresh daily et Intraday à J0 (par rapport à l’interday, notre base 100, à timestamp équivalent)

Pour les Sessions, on observe que la fresh daily est à +99% dès le début, ce qui la rend plus fiable que l’intraday, sauf sur la première moitié de la journée (mais avec un écart < à 1%).

Pour les Purchases en revanche, la fresh daily est toujours plus fiable et plus complète, avec des écarts conséquents.

Quid de l’attribution des sessions source et medium ?

Niveau de complétion de l’attribution des traffic medium sur les tables Fresh daily et Intraday à J0 (par rapport à l’interday, notre base 100, à timestamp équivalent)

Ici encore le taux de complétion des données est largement en faveur de la fresh daily à J0, l’intraday étant à des volumes globalement très bas.

Niveau de complétion de l’attribution des traffic source sur les tables Fresh daily et Intraday à J0 (par rapport à l’interday, notre base 100, à timestamp équivalent)

3) Durée de complétion et disponibilité de la donnée

En suivant les tables sur plusieurs jours, nous avons identifié les délais de complétude et les moments de disponibilité pour chaque type de table. Voici ce que l’on observe : 

  • Intraday : Ces tables sont générées quelques avant les “Fresh daily”. Elles restent actives environ 1,5 jour avant de basculer en table interday.

Un point d’attention est le « latency gap » : après suppression des tables intraday et avant la disponibilité des interday, il peut subsister une période d’incomplétude où seule la Fresh daily offre des données proches de la réalité. Par exemple, le délai entre la fin de l’intraday et la publication des données interday peut laisser un écart de près de 1 % dans les Fresh daily pour certains indicateurs, mais cet écart est encore plus variable pour l’intraday.

  • Fresh daily : Ces tables atteignent 99 % de complétude en 24h et restent quasi complètes, bien qu’elles n’atteignent jamais les 100 % des tables interday. Elles sont disponibles environ une demi-journée avant les interday, offrant un aperçu anticipé des performances.

Nos requêtes programmées nous permettent d’établir les dates de création, de suppression et de complétion des 3 types de tables que nous pouvons résumer avec ce schéma :

Heure de création et de complétion de la donnée pour les tables Fresh daily, interday et intraday

2 moyens d’obtenir ces informations :

Pour maximiser l’efficacité des analyses en temps réel, deux méthodes permettent de suivre la création et la complétude des tables Fresh daily, intraday et interday :

1. Requête sur les métadonnées de tables :  La requête suivante permet d’identifier les dates de création et de modification des tables. Cependant, elle ne s’applique pas aux tables intraday, qui sont temporaires et ne peuvent être récupérées qu’en direct.

				
					SELECT
  table_id AS table_name,
  FORMAT_TIMESTAMP('%Y-%m-%d', DATETIME(TIMESTAMP_MILLIS(creation_time), "America/New_York")) AS creation_date,
  FORMAT_TIMESTAMP('%H:%M', DATETIME(TIMESTAMP_MILLIS(creation_time), "America/New_York")) AS creation_time,
  FORMAT_TIMESTAMP('%Y-%m-%d', DATETIME(TIMESTAMP_MILLIS(last_modified_time), "America/New_York")) AS last_modified_date,
  FORMAT_TIMESTAMP('%H:%M', DATETIME(TIMESTAMP_MILLIS(last_modified_time), "America/New_York")) AS last_modified_time
FROM
  `nameofyourdataset.__TABLES__`
WHERE
  (table_id LIKE 'events_fresh_202409%' OR table_id LIKE 'events_fresh_202410%')
  AND DATETIME(TIMESTAMP_MILLIS(creation_time), "America/New_York") BETWEEN DATETIME('2024-09-19 00:00:00') AND DATETIME('2024-10-31 23:59:59')
ORDER BY
  table_name ASC;
				
			
2. Suivi par requêtes planifiées : En créant des requêtes planifiées toutes les heures, on peut détecter les moments de création et de suppression des tables (lorsque la requête programmée ne tombe plus en erreur) , en particulier les intraday. Ce suivi peut aussi permettre d’éviter les erreurs liées aux requêtes trop précoces sur des données incomplètes.

Statut de notre requête schedulée, jusqu’à arriver en KO lorsque la table fresh daily n’existe plus dans BigQuery.

Enseignements et questions-clés

Une des interrogations majeures de notre analyse concerne la précision des tables Fresh daily comparée à celle des tables interday, en particulier lorsque la Fresh daily atteint un niveau de complétude proche de 100 %. Les questions suivantes se posent alors :

Lorsque la Fresh daily est complète, correspond-elle à 100 % de la donnée interday ?

Pour répondre à cette question, nous avons comparé les taux de complétion des événements dans les tables Fresh daily et interday. Nous observons que, bien que la Fresh daily atteigne souvent plus de 99 % de complétude, elle ne correspond pas toujours exactement aux 100 % garantis par les tables interday. Cette légère différence pourrait être significative dans des contextes où une précision maximale est requise, comme les rapports de clôture ou les audits de performance.

A quel moment pourrait-elle être considérée comme fiable et se substituer à l’interday ?

Pour des usages orientés sur la rapidité de décision, la table Fresh daily pourrait être considérée comme fiable dès qu’elle approche les 99 % de complétude, soit 24h après sa création. Elle offre ainsi une solution plus rapide que l’interday, disponible une demi-journée à un jour plus tard.

Si je souhaite monitorer la donnée sur la journée en cours, quelle table dois-je utiliser ?

La disponibilité anticipée peut être particulièrement avantageuse pour les analyses de performance continue et les alertes d’anomalies.

Quelle est alors la meilleure table choisir à un instant T ?

Nous avons vu précédemment que l’intraday était créé en moyenne 1h30 avant la fresh daily. Si c’est la disponibilité immédiate de la donnée qui est recherchée, il est préférable de s’appuyer sur l’intraday.

Toutefois, la donnée intraday est loin d’être précise, comme nous avons pu le voir avec les purchases notamment.

C’est pourquoi, dans la mesure du possible, il est donc préférable de se reposer sur la fresh daily, disponible quelques heures plus tard, mais plus complète et plus fiable, en attendant l’apparition de l’interday.  

Par ailleurs, si vous souhaitez analyser les canaux d’acquisition, la donnée intraday est prohibée car non fiable sur ces dimensions, à la différence du Fresh daily et de l’interday.

Conclusion

Notre étude montre que les tables Fresh daily offrent une alternative efficace aux tables intraday pour des besoins analytiques “rapides” (il faudra malgré tout patienter quelques heures), notamment en matière de reporting de revenu et de canaux d’acquisition. Bien qu’elles n’atteignent pas les 100 % de complétude des interday, leur proximité (souvent supérieure à 99 %) et leur disponibilité anticipée les rendent précieuses pour les entreprises souhaitant une meilleure réactivité pour leurs analyses.

Mise à jour juin 2025 :

Récemment, nous avons observé certaines tendances dans les données GA4 importées dans BigQuery. Tout d’abord, les données « fraîches » ne changent pas de manière significative au fil du temps. Quelle que soit l’heure à laquelle nous extrayons les données le lendemain, ou même deux jours plus tard, les variations sont minimes, de l’ordre de 0,02 %. Cependant, lorsque l’on compare les données fraîches aux données de l’événement GA4, les différences deviennent plus notables, avec une moyenne d’environ 2 % pour la plupart des indicateurs. En particulier, deux indicateurs présentent des écarts plus importants : Les « sessions rebondissantes » et leur complément, les « sessions non rebondissantes », qui peuvent varier de 5 à 6 %.

Par conséquent, si vous souhaitez obtenir des résultats vraiment cohérents, vous devez choisir de baser vos indicateurs soit uniquement sur le tableau des données fraîches, soit uniquement sur le tableau des données événementielles GA4.

Partagez l'article

Abonnez-vous à notre newsletter