GA4 + BigQuery: raw analytics for serious measurement
The free GA4 to BigQuery export sends your raw, event-level analytics data into a warehouse you can query directly. It unlocks the analysis the GA4 interface cannot: custom attribution, unsampled reporting, and joining ad data with backend revenue. For any account making real budget decisions on the numbers, this export is foundational.
A 47-point written audit of your Google, Meta or Shopping account, back in five business days.
Get your auditBook a callWhat this integration unlocks
- Raw, event-level GA4 data with no interface sampling
- Custom attribution models built on your own logic
- Joins between GA4 behaviour and backend or CRM revenue
- Reconciliation of platform-reported conversions against warehouse truth
- A durable data asset that outlives any single reporting tool
Setup steps
- 1
Link GA4 to BigQuery
In GA4 Admin, open the BigQuery Links section and link a Google Cloud project. Choose daily export, and streaming export if you need near-real-time data. The export begins collecting from the day it is enabled, so set it up early because it does not backfill history.
Confirm the Cloud project has billing enabled, since BigQuery storage and queries run on the standard pricing model, though typical PPC analysis volumes are inexpensive.
- 2
Understand the event schema
GA4 exports one row per event, with user, session, and parameter data nested inside. Learn the events table structure, especially how event parameters and user properties are stored as nested and repeated fields, because querying them requires unnesting.
This schema is what lets you rebuild any GA4 metric yourself and go beyond what the interface exposes.
- 3
Build reconciliation queries
Write queries that count conversions and revenue by channel and campaign, then compare them against what Google Ads and the backend report. This is where the export earns its keep: it surfaces the gaps between platform-reported and actual results that drive better bidding decisions.
Schedule these as saved queries so the reconciliation runs regularly rather than as a one-off.
- 4
Join with backend revenue
Bring your order or CRM data into BigQuery and join it to GA4 sessions on a shared key, such as a transaction ID or user ID. This connects on-site behaviour to real, confirmed revenue, which is the basis for value-based bidding and offline conversion feeds.
The join is what turns analytics from a traffic report into a revenue-truth system.
Common issues
Fix. The export does not backfill. It only collects from the day it is enabled, so set it up as early as possible. There is no way to recover pre-link history.
Fix. GA4's event parameters are nested and repeated. You must unnest them in the query. Learn the unnest pattern for the events table before trusting parameter-level analysis.
Fix. The interface applies sampling, thresholding, and modeling that raw export data does not. Small differences are expected. The raw export is the more complete source for detailed analysis.
Fix. Usually queries scanning full tables repeatedly. Partition and cluster tables, and select only needed columns, to keep scan volume and cost low.
Common questions
Want this checked on your own account?
A 47-point written audit of your Google, Meta, or Shopping account. Five business days, no sales call.

