L’export de Google Analytics 4 vers BigQuery copie chaque événement sur une ligne, sans regroupement ni échantillonnage. Activez-le dès qu’une question précise sur vos campagnes Google Ads le justifie, car il ne reprend pas le passé. Il exclut les estimations de Google et, en compte gratuit, l’export quotidien plafonne à un million d’événements par jour.
BigQuery est la base de données en ligne de Google. L’export y rend vos données consultables en détail, mais il ne change rien à la façon dont GA4 mesure votre site.
Les rapports de GA4 peuvent regrouper certaines valeurs sur une ligne « (other) » ou ne calculer que sur un échantillon. Cela arrive lorsque le rapport contient trop de valeurs distinctes ou porte sur trop de données. L’export conserve le détail des événements disponibles. En revanche, il ne retrouve pas un détail que GA4 n’a pas collecté, que vous avez exclu ou que le consentement a bloqué.
Une propriété GA4 gratuite (standard) exporte au plus un million d’événements par jour en export quotidien. Un dépassement répété peut suspendre l’export, sans retraitement des jours manqués.
L’export ne contient pas non plus les chiffres que GA4 estime pour combler des données manquantes, par exemple après un refus de cookies. L’attribution « basée sur les données » de GA4 reste aussi dans l’interface. Un écart avec l’interface n’est donc pas forcément une erreur de calcul.
Avant de configurer la liaison, précisez ce que vous voulez analyser et qui s’en chargera. Activez l’export quotidien dès que ce besoin le justifie : l’historique antérieur à la liaison n’est pas réexporté.
Non, la taille ne décide pas seule. Un petit volume peut justifier BigQuery si le croisement avec vos ventes aide à choisir vos campagnes. Un gros volume ne suffit pas à le justifier. Il faut un besoin précis et une personne capable de préparer ou de vérifier les requêtes SQL, le langage utilisé pour interroger ces données.
Activez l’export si
Attendez si
La liaison se fait depuis GA4, avec un rôle Éditeur ou supérieur sur la propriété. Côté Google Cloud, il faut les droits de gestion du projet et le service BigQuery activé. Il faut aussi un compte de facturation, sauf dans le bac à sable gratuit de BigQuery. Ce bac à sable accepte l’export quotidien dans ses limites, mais pas le flux continu.
analytics_<property_id>, puis le nombre d’événements, les exclusions et la facturation.Chaque ligne de la table events_YYYYMMDD correspond à un événement. Certains champs contiennent des listes, comme les paramètres de l’événement ou les produits achetés. La fonction UNNEST permet de lire ces listes, par exemple pour retrouver la devise dans les paramètres.
events_YYYYMMDD reçoit l’export quotidien. GA4 peut encore la compléter pendant trois jours avec des événements arrivés en retard. Au-delà, les événements tardifs ne sont normalement plus ajoutés, sauf correction exceptionnelle de Google.events_intraday_YYYYMMDD reçoit le flux continu. Cette table provisoire, sans garantie d’exhaustivité, peut manquer des événements et disparaît quand la table quotidienne la remplace. Certaines sources de trafic y arrivent plus tard.Cette requête liste un mois d’achats, sans les additionner. Vérifiez l’unicité des numéros de transaction (transaction_id) et les devises. Rapprochez ensuite les achats et les remboursements de votre logiciel de commandes : cette requête ne liste que les achats.
SELECT
event_date,
TIMESTAMP_MICROS(event_timestamp) AS event_timestamp,
user_pseudo_id,
ecommerce.transaction_id,
ecommerce.purchase_revenue AS purchase_revenue,
(SELECT value.string_value
FROM UNNEST(event_params)
WHERE key = 'currency') AS currency
FROM `mon-projet.analytics_123456.events_*`
WHERE event_name = 'purchase'
AND _TABLE_SUFFIX BETWEEN '20260101' AND '20260131'
ORDER BY event_timestamp;
GA4 ne facture pas la liaison, mais BigQuery facture le stockage et les requêtes. Au 18 septembre 2026, sa partie gratuite couvre chaque mois les 10 premiers GiB de stockage. Elle couvre aussi le premier TiB de données lues par les requêtes facturées à l’usage. Au-delà, le prix dépend notamment de la région, du mode de stockage, du mode de calcul et de la devise.
La facture dépend de la taille des tables et des données lues. Surveillez ces postes.
Par défaut, gardez l’export quotidien : c’est la base stable pour suivre vos clients dans la durée ou rapprocher vos comptes. Le flux continu ne se justifie que si une décision doit être prise dans la journée, et l’analyse se refait ensuite sur la table quotidienne. Pour un rapprochement stable, attendez la fin des trois jours de mise à jour.
| Critère | Export quotidien | Flux continu |
|---|---|---|
| Arrivée des données | Une fois par jour, heure non garantie | En quelques minutes |
| Fiabilité | Mises à jour possibles pendant trois jours | Sans garantie d’exhaustivité |
| Limite et coût | Un million d’événements par jour (compte standard) | Pas de limite de volume publiée ; 0,05 $ par gigaoctet exporté |
Pour vos campagnes, BigQuery sert quand la question demande un croisement que GA4 ne fournit pas.
Commencez par la valeur vie client (LTV) par canal : ce que vous rapportent, sur toute la relation, les clients venus de chaque canal. L’identifiant user_pseudo_id désigne un navigateur ou une application installée, pas une personne. Un changement d’appareil, de cookie ou de consentement peut donc répartir un même client sur plusieurs identifiants. Les informations de Google Signals sur les utilisateurs connectés à Google ne sont pas disponibles dans l’export.
Reliez les numéros de transaction à votre fichier clients pour regrouper les achats d’une même personne. Un identifiant client consenti (user_id) peut aussi aider à rapprocher ses visites, sans envoyer de donnée directement identifiante à GA4. Tenez compte des remboursements, des devises, des marges et des doublons. Le seul identifiant du navigateur ne suffit pas à calculer la valeur d’un client.
Distinguez la source du premier contact (traffic_source), celle attribuée à la visite au dernier clic (session_traffic_source_last_click) et l’information collectée avec l’événement (collected_traffic_source). Ce dernier champ n’est pas un modèle d’attribution. BigQuery n’applique pas l’attribution « basée sur les données » de l’interface, donc le choix de la règle reste à votre charge.
Les tables quotidiennes peuvent être conservées au-delà de ce que certains écrans de GA4 permettent de consulter. Fixez quand même, pour chaque historique, une date d’expiration, une règle de suppression et une raison écrite.
BigQuery aide à repérer un achat compté deux fois, une devise absente, une mesure interrompue ou une mauvaise source retenue. Il ne reconstitue ni les estimations de GA4, ni les conversions que Google Ads suit d’un appareil à l’autre, ni toute l’attribution de Google Ads. Certains écarts restent donc légitimes. Pour chacun, notez sa cause au lieu de forcer GA4 et Google Ads à concorder.
Le service de transfert de BigQuery peut charger vos rapports Google Ads, sans transformer les sources de GA4 en données Google Ads. Dans certains cas, vous pouvez relier une visite GA4 à son clic Google Ads par le GCLID, l’identifiant que Google Ads peut ajouter au clic sur vos annonces. Il figure dans collected_traffic_source.gclid côté GA4 et dans la table ads_ClickStats_<customer_id> côté Google Ads.
Ce croisement suppose le marquage automatique des clics, un GCLID réellement collecté et des dates compatibles avec la table des clics. Il laisse de côté les clics sans identifiant exploitable et ceux suivis par wbraid ou gbraid, deux identifiants sans champ dédié dans ce rapprochement par GCLID. Il peut donc éclairer certains clics Google Ads marqués « non disponibles », sans combler toutes les sources manquantes.
L’envoi de données vers Google Ads ne passe pas par l’export GA4. Pour cibler une liste de clients préparée dans BigQuery (Customer Match), connectez BigQuery au Gestionnaire de données Google Ads. Cette connexion exige les droits Cloud et Google Ads, des données clients admissibles, un compte éligible et le respect des règles de Customer Match. Dans l’Espace économique européen, les paramètres ad_user_data et ad_personalization doivent refléter le consentement requis.
L’identifiant user_pseudo_id est pseudonyme, pas anonyme, et il peut rester une donnée personnelle à ce titre. Que Google ne le classe pas comme directement identifiant dans ses contrats ne change rien au droit européen. Votre dossier de conformité RGPD couvre au minimum les éléments suivants.
Dans BigQuery, cela se traduit par des dates d’expiration sur les tables et des accès limités au strict nécessaire. Ajoutez des restrictions par ligne ou par colonne si besoin, et relisez les journaux d’accès.
La région se choisit avant la liaison, même si elle ne règle pas seule la conformité. Pour en changer, Google documente deux méthodes. Recréer la liaison après déplacement des données fait courir un risque de jours manquants dans l’export. La réplication permet de préparer le déplacement sans supprimer la liaison. Mais créer une copie ailleurs ne supprime pas les données de la région d’origine : il faut suivre toute la procédure de migration.
Le Consent Mode change aussi ce qui arrive dans BigQuery. En mode basique, rien n’est envoyé avant le consentement. En mode avancé, GA4 peut recevoir des données sans cookies après un refus. Elles figurent dans BigQuery, mais pas les estimations que GA4 en tire. Chaque visite sans cookie Analytics peut alors recevoir un user_pseudo_id différent.
Enfin, vous contrôlez le projet Google Cloud et ses accès, mais la collecte et l’évolution des tables de GA4 dépendent aussi de Google. Documentez cette dépendance, la suppression et la récupération de vos données.
Je vous accompagne dans la mise en place, le suivi et l’optimisation de vos campagnes Google Ads.
Réserver un appel