Comment comparer et diagnostiquer les écarts GA4 BigQuery ?

Comparer GA4 et BigQuery demande d’aligner la liaison, l’identité de reporting, le fuseau horaire et les flux/export. Je détaille les vérifications à faire, la méthode pour compter les événements dans GA4 et BigQuery, et comment interpréter un écart attendu de 2–5%.

Comment vérifier la liaison Analytics BigQuery ?

Vérifier la liaison entre GA4 et BigQuery est la première étape pour diagnostiquer des écarts de données et s’assurer que les exports existent dans le bon projet.

Ouvrir l’interface GA4 et aller dans Admin > Product links > BigQuery links pour voir les liaisons configurées. Vérifier le statut du lien (Actif/Paused), l’ID du projet BigQuery affiché et le nom du dataset attendu. Vérifier aussi la fréquence d’export (quotidienne ou streaming) et la date de début d’exportation indiquée.

🚀 Maîtrisez SQL pour exploiter pleinement vos données BigQuery !

Découvrez nos formations BigQuery adaptées à tous les niveaux, du débutant à l’expert. Apprenez à interroger, analyser et optimiser vos données avec SQL dans BigQuery, et exploitez toute la puissance du cloud pour des analyses avancées. Du niveau 1, où vous explorerez et visualiserez vos données avec BigQuery et Looker Studio, au niveau 2, qui vous permettra de maîtriser les requêtes SQL pour trier, filtrer et structurer efficacement vos données, jusqu’au niveau 3, dédié aux techniques avancées d’optimisation et d’automatisation. Que vous soyez analyste, data scientist ou développeur, ces formations vous permettront de gagner en autonomie et en efficacité dans le traitement de vos données.🔍📊

Si la liaison est absente, aucune table events_YYYYMMDD ne sera exportée et la comparaison GA4 vs BigQuery sera impossible pour les périodes concernées. Si le projet indiqué n’est pas le bon, les données peuvent être envoyées vers un autre projet sans que l’on s’en aperçoive.

Dans la console Google Cloud, ouvrir BigQuery et confirmer que le dataset indiqué existe avec la convention de noms attendue. Vérifier la présence des tables nommées events_YYYYMMDD (ex. events_20250401) et contrôler qu’elles contiennent des lignes via l’onglet Détails ou en exécutant une requête simple SELECT COUNT(*) FROM `projet.dataset.events_YYYYMMDD`.

Contrôler les permissions minimales : s’assurer que le compte de service lié par GA4 a le droit d’écrire dans le dataset (rôle BigQuery Data Editor ou équivalent).

Consulter aussi dans IAM que vous (ou le groupe) disposez d’un accès BigQuery Viewer pour inspecter les tables et d’un rôle suffisant pour gérer les liaisons si nécessaire.

  • Accès GA4 : Confirmer que le lien BigQuery apparaît et est Actif.
  • ID projet : Confirmer que l’ID correspond au projet attendu.
  • Dataset : Confirmer que le dataset existe dans BigQuery.
  • Tables : Confirmer la présence de tables events_YYYYMMDD et qu’elles ont des lignes.
  • Permissions : Confirmer que le compte de service dispose des droits d’écriture.
Élément à vérifierAction correctiveImpact sur la comparaison
Liaison absenteCréer la liaison depuis GA4 vers le bon projetExport absent → Comparaison impossible
ID projet incorrectCorriger la liaison ou recréer vers le bon projetDonnées envoyées ailleurs → Données manquantes localement
Tables manquantes ou videsVérifier permissions et historique d’exportDonnées incomplètes → Écarts sur période

Quels paramètres aligner avant la comparaison ?

Aligner l’identité de reporting, le fuseau horaire et les flux/export d’événements pour garantir une comparaison cohérente.

Reporting identity

  • BigQuery exporte des événements avec user_pseudo_id, qui correspond à un identifiant d’appareil/instance (client_id sur le web, app_instance_id sur mobile).
  • GA4 combine souvent plusieurs identités (User-ID, Google Signals, Device) pour le reporting utilisateur, ce qui crée des écarts si BigQuery est analysé par device.
  • Pour une comparaison précise, basculer temporairement l’identité de reporting sur «Device only» dans l’interface GA4 : Admin > Property > Reporting identity (choisir « By device only » ou équivalent).
  • Conserver la configuration normale ensuite ; ne pas oublier que le changement affecte les rapports historiques et peut être global.

Fuseaux horaires

  • Le timestamp exporté dans BigQuery est event_timestamp en microsecondes depuis l’époque UTC. Il faut le convertir au fuseau de la propriété GA4 pour comparer des journées calendaire identiques.
  • Vérifier le Reporting time zone dans Admin > Property details (Reporting time zone).
  • Exemple SQL BigQuery pour filtrer une journée en Europe/Paris :
SELECT COUNT(*)
FROM `project.dataset.events_*`
WHERE DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Paris") = '2024-01-01';

Flux et événements exclus

  • Vérifier les flux et les événements exportés : Admin > Product links > BigQuery links > Cliquer sur le lien > Configure data streams and events.
  • Repérer les flux non exportés (désactivés) et les événements explicitement exclus du lien BigQuery ou des modifications d’événements dans GA4.
  • Reproduire les mêmes exclusions dans une Exploration GA4 (filtre : Exclude → Event name → exactly matches → ‘nom_evenement’).
  • Exemple SQL pour exclure un event_name donné :
SELECT COUNT(*)
FROM `project.dataset.events_*`
WHERE event_name != 'nom_evenement_a_exclure'
  AND DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Paris") = '2024-01-01';
ParamètreEmplacementEffet sur les écarts
Reporting identityAdmin > Property > Reporting identityCombine ou sépare les identités ; désalignement cause différences utilisateurs/sessions.
Fuseau horaireAdmin > Property details > Reporting time zoneMauvais fuseau décale les fenêtres journalières ; comptes/journées différents.
Flux / événements exclusAdmin > Product links > BigQuery links > Configure data streams and eventsÉvénements manquants ou flux non exportés expliquent des écarts de volumes.

Comment comparer les comptes d’événements entre GA4 et BigQuery ?

Comparer les comptes d’événements entre Google Analytics 4 (GA4) et BigQuery demande d’aligner date, filtres et fuseau horaire, puis d’accepter un écart attendu de 2–5%. Ce chapitre donne une procédure pragmatique pour mesurer et diagnostiquer ces écarts.

Procédure pas à pas

  • GA4 — Où lire le Event count : Ouvrir Reports > Engagement > Events. Régler la plage de dates au jour souhaité (sélectionner un seul jour pour comparer précisément). Noter la colonne « Event count » affichée par événement.
  • BigQuery — Requête prête à l’emploi (compte par jour, fuseau Europe/Paris) :
    SELECT COUNT(*) AS event_count
    FROM `project.dataset.events_*`
    WHERE DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Paris") = '2024-01-01';
  • BigQuery — Variante par suffixe de table (export quotidien) :
    SELECT COUNT(*) AS event_count
    FROM `project.dataset.events_*`
    WHERE _TABLE_SUFFIX = '20240101';

Explications techniques rapides

  • Event count : Nombre d’occurrences d’un événement. GA4 calcule côté produit; BigQuery reflète l’export brut (lignes).
  • TIMESTAMP_MICROS : Conversion d’un champ microsecondes en horodatage SQL. Important pour aligner le fuseau.
  • _TABLE_SUFFIX : Permet de cibler la table exportée d’une date spécifique (format YYYYMMDD).

Causes fréquentes d’écarts et actions

  • Identités (User-ID, Google Signals) : Fusion d’utilisateurs diffère entre GA4 et exports. Action : Vérifier les paramètres d’identité et les user_pseudo_id dans BigQuery.
  • Fuseau horaire : Décalage de date si non aligné. Action : Toujours forcer DATE(…, « Europe/Paris ») ou régler la même timezone dans l’UI.
  • Flux/événements exclus : Filtrage côté GA4 (ex : internal traffic) peut supprimer des événements non supprimés dans BigQuery. Action : Comparer les filtres d’admin et les paramètres de stream.
  • Délais d’export : Export BigQuery peut prendre heures; GA4 UI montre des données plus récentes. Action : Refaire la comparaison après 24–48h pour données complètes.
  • Événements doublons ou suppression côté GA4 : Déduplication ou suppression rétroactive peut réduire le compte GA4. Action : Inspecter les événements par event_id et event_timestamp.

Un écart de 2–5% est courant en pratique, principalement à cause des délais d’export, des différences d’identité et des filtres. Enquêter davantage si l’écart dépasse 5–10% (risque d’erreur de tracking, export manquant ou filtre mal configuré).

MétriqueCommande GA4Requête BigQuerySeuil attenduAction recommandée
Event countReports > Engagement > Events (Date = jour)
SELECT COUNT(*) FROM `project.dataset.events_*` WHERE DATE(TIMESTAMP_MICROS(event_timestamp), "Europe/Paris") = '2024-01-01';
2–5%Vérifier fuseau, filtres, délais d’export; approfondir si >5–10%.

Sources : Documentation Google Analytics 4 et BigQuery export (support.google.com/analytics et cloud.google.com/bigquery/docs).

Prêt à valider et corriger vos écarts GA4 / BigQuery ?

Pour comparer GA4 et BigQuery il faut d’abord garantir que la liaison existe et que le projet/dataset sont corrects, aligner l’identité de reporting sur Device ID, synchroniser le fuseau horaire et vérifier les flux et événements exclus. Ensuite, compter les événements dans GA4 et avec une requête BigQuery cohérente (utiliser TIMESTAMP_MICROS et le bon fuseau). Un écart de 2–5% est courant ; au-delà, investiguer identités, exclusions ou délais d’export. En appliquant cette méthode vous gagnez en confiance sur vos chiffres et diminuez les risques d’erreurs dans vos analyses et décisions business.

FAQ

  • Pourquoi les comptes d’événements diffèrent-ils entre GA4 et BigQuery ?
    Les différences proviennent principalement de l’identité de reporting (GA4 peut fusionner utilisateurs, BigQuery exporte selon Device ID), du fuseau horaire, d’événements ou flux exclus, et des délais d’export. Un écart de 2–5% est souvent normal ; au-delà, investiguez les exclusions et la configuration.
  • Comment vérifier rapidement que le lien GA4 & BigQuery est actif ?
    Aller dans GA4 Admin > Product links > BigQuery links et vérifier le statut du lien et l’ID du projet. Ensuite confirmer dans BigQuery que le dataset et les tables events_YYYYMMDD existent et contiennent des lignes.
  • Quelle requête BigQuery utiliser pour compter les événements sur une journée ?
    Utiliser TIMESTAMP_MICROS sur event_timestamp et préciser le fuseau : SELECT COUNT(*) FROM `project.dataset.events_*` WHERE DATE(TIMESTAMP_MICROS(event_timestamp), « Europe/Paris ») = ‘2024-01-01’; ou filtrer par _TABLE_SUFFIX = ‘20240101’.
  • Faut-il modifier l’identité de reporting dans GA4 pour comparer ?
    Pour une comparaison précise, définir temporairement l’identité de reporting sur Device ID (car BigQuery exporte selon Device ID). Après la comparaison, rétablir l’identité choisie pour vos rapports métier.
  • Que faire si l’écart dépasse 5–10% ?
    Vérifier les exclusions d’événements, les flux non exportés, les permissions et les délais d’export. Reproduire les filtres GA4 en Exploration et comparer pas à pas. Si nécessaire, demander un audit de tracking ou une intervention pour corriger la configuration.

 

 

A propos de l’auteur

Franck Scandolera — expert & formateur en tracking avancé server-side, Analytics Engineering, automatisation No/Low Code (n8n) et intégration de l’IA en entreprise. Responsable de l’agence webAnalyste et de l’organisme de formation Formations Analytics. Références : Logis Hôtel, Yelloh Village, BazarChic, Fédération Française de Football, Texdecor. Dispo pour aider les entreprises => contactez moi.

Retour en haut
Formations Analytics