


Vous avez lu la page de tarification de BigQuery. Elle parle de gibioctets stockés, de tébioctets lus, de slots. Vous l'avez refermée avec exactement la même question qu'en l'ouvrant : combien, à la fin du mois, pour un site comme le vôtre ?
Vous hésitez à activer l'export parce que personne ne sait vous répondre. Ou vous l'avez activé il y a six mois, la première facture affichait 4 $, celle de ce mois-ci affiche 300 $, et personne n'a touché à la configuration.
On va répondre à ces questions en partant d'une base claire et commune : un million de sessions et 10 millions d'événements GA4 par mois. Et on va démystifier le sujet, poste par poste, parce qu'une facture BigQuery n'a rien d'opaque pour qui sait ce qu'elle compte.
4,50 $ par mois, le prix d'un café dans un bar parisien. Google Analytics ne facture pas l'export ; BigQuery facture ce que vous conservez, et un événement GA4 pèse environ 2,2 Ko dans la table events_. Dix millions d'événements font 20 Gio par mois, 250 Gio au bout d'un an.
Ce prix tient compte d'une règle automatique : toute table que personne n'a modifiée depuis 90 jours passe à moitié prix. Les tables events_YYYYMMDD sont écrites une fois et jamais retouchées : au bout d'un an, les trois quarts de votre historique sont à moitié prix sans que vous ayez rien fait.
Vous pouvez descendre encore. Par défaut, BigQuery facture le volume de la donnée telle que vous la voyez ; il peut aussi facturer le volume réellement occupé sur disque, une fois compressée. Les tables GA4 répètent les mêmes noms d'événements, de paramètres et de pages des millions de fois, elles se compressent donc très bien, plus de vingt fois. Le tarif au Gio est deux fois plus élevé dans ce mode, mais sur un volume vingt fois plus petit : les 4,50 $ deviennent 40 centimes. Pour activer la compression, une commande sur le dataset suffit, et elle est réversible.
Non, et c'est pourtant la crainte qu'on entend le plus souvent. L'export streaming coûte 1 $ par mois sur notre base, et c'est lui qui vous protège de la seule limite capable de couper votre export.
GA4 propose deux modes. L'export quotidien écrit chaque matin la table de la veille. L'export streaming écrit en continu dans une table events_intraday, remplacée par la table définitive une fois la journée close, et BigQuery facture ce flux sur le volume inséré : 1 $ pour nos 20 Gio mensuels.
Ce que le streaming change est ailleurs. L'export quotidien d'une propriété standard s'arrête au-delà d'un million d'événements par jour. Google prévient par e-mail, suspend l'export, et les journées manquées ne sont jamais rejouées. Notre base est à 330 000 par jour ; le jour où une opération commerciale fait passer le million, c'est le streaming qui sauve l'historique.
Une subtilité : la table intraday ne porte pas tout. Google n'y renseigne ni traffic_source, ni user_ltv, ni is_active_user, calculés seulement à la clôture de la journée. Le streaming vous donne la fraîcheur, pas l'attribution. Activez-le pour la limite, et gardez la table quotidienne pour l'analyse.
Parce que BigQuery facture ce que vous lisez, pas ce que vous obtenez. Une requête qui parcourt les 250 Gio de l'année pour renvoyer une seule ligne coûte 1,50 $. Tapée dix fois par jour par trois personnes curieuses, elle coûte près de 1 400 $ par mois. Et tout, dans un projet GA4, pousse à lire beaucoup.
La table GA4 est en colonnes imbriquées. event_params, user_properties et items sont des tableaux de structures. Aller chercher un seul paramètre lit la colonne entière, c'est-à-dire tous les paramètres de tous les événements de la période.
Elle est partitionnée par suffixe de nom, pas par colonne. Une requête sur events_* sans filtre sur le suffixe lit tout l'historique, et un LIMIT 100 n'y change rien : la limite s'applique au résultat, pas à la lecture. Le SELECT * tapé pour « voir à quoi ressemble la donnée » lit l'année entière pour afficher dix lignes ; l'onglet Aperçu de la console fait la même chose gratuitement.
Elle est relue par des outils qui ne demandent pas la permission. Un tableau de bord branché sur la table brute exécute une requête par graphique, à chaque ouverture, pour chaque utilisateur. Une transformation nocturne en reconstruction totale relit tout l'historique pour produire ce qui existait déjà la veille.
Et le plus souvent, ce ne sont même pas les lectures de la table GA4 qui coûtent le plus cher, mais celles des tables qu'on en dérive pour un outil de BI. Une table reconstruite chaque nuit, purgée sur les trois derniers jours puis réalimentée, est relue en entier à chaque purge si elle n'est pas partitionnée sur sa date. Sur une table de quelques centaines de Gio, cela fait quelques dizaines de dollars par mois pour effacer ce qui sera réinséré dans la minute ; partitionnée, la même opération coûte moins d'un dollar.
Prenons notre base après un an d'export, et une équipe marketing qui ouvre dix fois par jour un tableau de bord de cinq graphiques sur les 90 derniers jours. Deux façons de le brancher.
Première façon : le tableau de bord lit directement events_*. L'outil lance une requête par graphique, cinq par ouverture, et chacune lit les 90 jours affichés : trois mois de 20 Gio, 60 Gio par requête dès qu'elle touche event_params, ce qui est le cas de tout graphique utile (source, page, revenu). À 300 ouvertures par mois, cela fait 90 Tio lus. Le premier Tio est gratuit ; les 89 suivants sont facturés 6,25 $ chacun, soit 557 $.
Seconde façon : une table agrégée s'intercale. Chaque nuit, une transformation lit la seule journée de la veille, 0,7 Gio, et l'ajoute à une table agrégée par jour, source et page, qui pèse quelques dizaines de Mo. Le tableau de bord ne lit que cette table-là. Sur un mois, la transformation lit 20 Gio et les 300 ouvertures une quarantaine de Gio de plus : 65 Gio au total, 40 centimes au tarif public, entièrement absorbés par le Tio gratuit. Rien n'apparaît sur la facture, et il faudrait quinze fois plus d'ouvertures pour commencer à payer.
Même donnée, même tableau de bord, même équipe : 5,50 $ ou 562 $. L'écart ne vient pas du volume ; il vient d'une table agrégée qu'une journée de travail suffit à mettre en place. Et la première colonne n'est pas une caricature, c'est une trajectoire : un tableau de bord brut ouvert trois fois par semaine par une seule personne reste des mois sous le Tio gratuit. Puis il plaît, on le partage à douze personnes, quelqu'un ajoute un filtre par pays, et la facture passe à trois chiffres sans qu'une ligne de configuration ait changé. Le tableau de bord n'a pas changé ; il a eu du succès. Le coût ne monte pas avec la donnée, il monte avec l'usage.
Par trois réglages, posés avant d'optimiser la moindre requête. Une heure de travail.
Un plafond d'octets par requête et un quota quotidien par projet. BigQuery refuse avant exécution toute requête qui dépasserait le volume que vous avez fixé. Sans ce plafond, un projet tourne sur le quota par défaut, 200 Tio par jour, soit 1 250 $ par jour, et personne n'est prévenu avant la facture. Aucun des projets que nous avons vus arriver avec une facture à quatre chiffres n'en avait un.
Aucun outil de BI sur la table brute, aucune table dérivée sans partition. L'outil de visualisation ne lit que des tables agrégées ; toute table reconstruite ou purgée chaque jour est partitionnée sur sa date. Le test prend dix secondes dans le journal des requêtes : si le volume lu par une requête quotidienne approche la taille de la table qu'elle touche, c'est cassé.
Une revue mensuelle des dix requêtes les plus chères. Le journal nomme l'auteur, l'outil et les octets facturés de chaque exécution. Les dix premières lignes expliquent toujours la facture, et la première en explique souvent le quart.
Si vous ne devez retenir qu'une chose : BigQuery ne vous facture pas vos données, il vous facture vos relectures. Le stockage et le streaming d'un export GA4 coûtent quelques dollars par mois ; les requêtes coûtent ce que vous décidez qu'elles coûtent, par une table agrégée pour la visualisation, des partitions sur les tables dérivées et un plafond d'octets par requête.
Un export GA4 bien tenu coûte le prix d'un , mal tenu celui d'un salaire, pour exactement la même donnée. Vous hésitez sur votre cas précis ? Discutez avec un expert Smart Bees, on regarde ça ensemble.
Non. L'export lui-même est gratuit, pour les propriétés standard comme pour les propriétés 360. Vous payez BigQuery : le stockage, l'insertion en flux si le streaming est actif, et surtout les requêtes exécutées sur ces données. Un projet facturé est nécessaire pour un usage durable, le bac à sable gratuit effaçant les tables au bout de 60 jours.
4,50 $ par mois pour un million de sessions mensuelles, moins d'un dollar pour un site dix fois plus petit. Comptez 2,2 Ko par événement pour refaire le calcul avec votre trafic, et divisez par dix si vous passez le dataset en stockage physique. Les tables de plus de 90 jours basculent d'elles-mêmes au tarif long terme.
Non. Comptez 1 $ par mois pour un million de sessions mensuelles, une dizaine de dollars pour un site dix fois plus gros. Il lève surtout le plafond d'un million d'événements par jour de l'export quotidien, au-delà duquel Google suspend l'export sans rejouer les journées manquées. C'est la raison de l'activer, bien avant la fraîcheur des données.
Parce qu'un outil relit vos tables de plus en plus souvent, ou de plus en plus largement. Un tableau de bord partagé à davantage d'utilisateurs, une transformation qui reconstruit tout l'historique chaque nuit, une table dérivée non partitionnée purgée chaque jour : BigQuery facture les octets lus, pas les octets stockés. Le journal des requêtes nomme le responsable en quelques minutes.
Deux réglages, dix minutes. Un volume maximal d'octets lus par requête, qui refuse les requêtes trop larges avant exécution, et un quota quotidien par projet ou par utilisateur. Ajoutez une alerte de budget dans Google Cloud Billing et une revue mensuelle des dix requêtes les plus coûteuses. Le mode à la demande suffit ; les éditions à capacité réservée ne concernent pas un projet GA4.

30 minutes avec un des associés. On regarde votre journal de requêtes, vos tables dérivées et vos garde-fous, et on vous dit franchement ce qui coûte pour rien et ce qui tient.