Ce hub trace le chemin d’un export BigQuery GA4 brut vers un ensemble de modèles dbt opérationnels qui préservent la granularité au niveau événement tout en rendant l’analyse au niveau session triviale. C’est le point d’entrée pour toute personne construisant des modèles dbt GA4 pour la première fois.
L’idée centrale : ne pas agréger vers les sessions immédiatement. Construire un modèle intermédiaire large qui enrichit chaque événement avec le contexte de session (indicateurs de conversion, métriques de temps, données d’attribution) sans perdre la granularité au niveau événement. L’agrégation n’a lieu que dans la couche mart finale, lorsqu’elle est réellement nécessaire.
Ces notes ont été décomposées depuis Vos premiers modèles dbt GA4 : des événements bruts aux sessions.
Comprendre le schéma GA4
Le schéma BigQuery de GA4 est structurellement différent de Universal Analytics. Le comprendre est un prérequis avant d’écrire tout modèle dbt.
GA4 Event Data Structure — Le modèle centré sur les événements : une ligne par événement, des tableaux event_params imbriqués, et le passage de l’architecture centrée sur les sessions d’UA. C’est le prérequis pour tout le reste.
GA4 BigQuery Export Table Types — Les tables quotidiennes versus les tables intraday, leur timing, et pourquoi utiliser les tables quotidiennes pour les modèles de production.
GA4 BigQuery Timezone Handling — Les trois contextes de fuseau horaire (event_timestamp en UTC, event_date dans le fuseau de la propriété, _TABLE_SUFFIX en heure du Pacifique) et pourquoi les mélanger casse silencieusement les requêtes par plage de dates.
Le problème d’identité de session
Construction de la clé de session GA4 — Pourquoi ga_session_id seul échoue comme identifiant unique (c’est un timestamp Unix, donc plusieurs utilisateurs peuvent partager la même valeur) et comment construire la clé composite correcte à partir de user_pseudo_id + ga_session_id.
La philosophie de conception
Sessionisation à grain événement — Pourquoi l’enrichissement des événements avec le contexte de session est préférable à la construction directe de tables au grain session. Le pattern qui rend l’analyse en aval flexible : les entonnoirs de séquence d’événements, les métriques de temps entre événements, et les modèles d’attribution expérimentaux nécessitent tous des données au niveau événement.
Construction des modèles
Modèle de base GA4 shardé vers partitionné — Le modèle de base qui convertit l’export date-shardé de GA4 en un modèle dbt correctement partitionné. Couvre le pattern de filtrage _TABLE_SUFFIX, la stratégie insert_overwrite, et le lookback de 3 jours pour les événements arrivant en retard.
Macro d’extraction de paramètres GA4 — La macro dbt réutilisable pour extraire les valeurs event_params via des sous-requêtes corrélées. Pourquoi les sous-requêtes corrélées plutôt que CROSS JOIN UNNEST, et la variante numérique pour gérer l’ambiguïté de type.
Modèle d’événements sessionisés GA4 — Le modèle intermédiaire qui ajoute le contexte de session à chaque événement : page d’atterrissage, source de trafic, indicateurs de conversion, durée de session, séquençage des événements. Le pilier de l’ensemble du projet.
Champs de source de trafic GA4 — Les quatre emplacements de source de trafic dans l’export de GA4, leurs portées, et lequel utiliser pour l’attribution de session. Critique pour les colonnes d’attribution du modèle intermédiaire.
Mart de performance d’acquisition GA4 — Le modèle mart qui agrège les événements sessionisés au grain quotidien x source/medium. Taux de conversion et métriques de revenus pré-calculés, prêts pour les tableaux de bord.
Pièges courants
Le tutoriel couvre plusieurs problèmes que les notes individuelles traitent en profondeur :
- Utiliser
ga_session_idseul → Construction de la clé de session GA4 - Dérive de fuseau horaire entre
event_timestampetevent_date→ GA4 BigQuery Timezone Handling - Requêtes sur les tables intraday pour l’analyse historique → GA4 BigQuery Export Table Types
- Agrégation trop précoce → Sessionisation à grain événement
- Absence de filtrage avec
_TABLE_SUFFIX→ Patterns de requêtes BigQuery GA4 - Extraction du mauvais type de valeur depuis
event_params→ Macro d’extraction de paramètres GA4
La suite
Ce tutoriel construit les fondations. Pour un projet prêt pour la production avec des tests, de la documentation et le groupement de canaux, voir le Hub du template de projet dbt GA4. Pour la référence complète de sessionisation incluant les limites de session personnalisées, voir le Hub de sessionisation GA4.