Guide 194 · Setup · GA4 + Tag Manager
Set up the BigQuery export: the Cloud project, the link, and the 1-million-event daily ceiling
The BigQuery export sends every raw GA4 event into BigQuery tables — one dataset per property, one table per day — once the Cloud project is ready and the link is made in Admin.
After step 5, a dataset named after your property ID appears in the Cloud project, and within 24 hours the first daily table lands with the previous day's events.
Download the reference: the BigQuery export reference (JSON) (1314 bytes, MD5 8b15f9d111b9d24eeac3e2ae2a20306b). It holds the report or event definition and the worked example with the recomputed figures shown on this page.
What you need
- Editor access or above on the GA4 property, and a Google account with Owner access to the BigQuery project.
- A Google Cloud project with the BigQuery API enabled — a new project, or an existing one. The export can run in the BigQuery sandbox free of charge, with sandbox limits.
- A valid form of payment on file in Cloud for the export to proceed, unless you stay inside the sandbox.
The trace
- Create the Cloud project and enable BigQuery. Log in to the Google Cloud Console, create a new project or select an existing one, then open the navigation menu, click APIs and Services, then Library. Under Google Cloud APIs, click BigQuery API, then Enable. You must be an Editor or above to create the project and enable BigQuery.
- Link the property to BigQuery. In GA4, go to Admin, then under Product links click BigQuery Links. Click Link, then Choose a BigQuery project and select the project. Select a location for the data — if the project already has a dataset for the property, you cannot change this. Click Next.
- Choose what to export. Select Configure data streams and events to pick which data streams to include and which events to exclude. You can exclude events by choosing from a list of existing events, or by specifying event names that have yet to be collected on the property. Click Done. Select Include advertising identifiers for mobile app streams only if you want those identifiers in the export.
- Pick the export type. Select Daily, which exports once a day, or Streaming, which exports continuously — or both. Analytics 360 properties can also select Fresh Daily. Click Next, review the settings, then click Submit.
- Verify the identity, then wait. Linking amends the BigQuery project's permissions and creates a built-in resource identity for the link. Check in the Cloud Console that it is a member of the project with the BigQuery User role. Data should start flowing to your BigQuery project within 24 hours, and a daily export holds the previous day's data.
Dead ends
DEAD END — EXPECTING THE EXPORT TO BACKFILL HISTORY. The export starts the day you link it. Data collected before the link was made is not exported, and once you export data from Analytics to BigQuery you cannot re-export it. Link early, even before you need the data.
DEAD END — LETTING THE DAILY EXPORT CROSS 1 MILLION EVENTS. Standard properties have a BigQuery Export limit of 1 million events for daily exports. If a property consistently exceeds the limit, the daily export will be paused and previous days' exports will not be reprocessed. The fix is data filtering: exclude data streams and events you do not need, before the pause lands.
DEAD END — PICKING THE REGION AND FINDING IT IS WRONG. The data location is fixed when the link is created. Changing it means deleting the link, backing up the data, deleting the dataset, creating a new dataset with the same name in the new location, and linking again — with a gap in the export between deleting the old link and creating the new one.
End state
The export is the raw feed: every event GA4 receives, one row per event, in tables you can query with SQL. The worked example below checks one day against the ceiling and prices a day of streaming.
Worked example — stated inputs, recomputed results. A property exports 742,318 events in one day. The share of the daily ceiling and the streaming cost below are recomputed from the documented limits.
| Figure | Value |
|---|---|
| Events exported in a day | 742,318 |
| Daily export ceiling, standard property | 1,000,000 |
| Share of the ceiling used | 74.2% |
| Headroom before the ceiling | 257,682 events |
| Streaming a day of 1,200,000 events | 2 GB at about 600,000 events per GB |
| Streaming cost for that day | $0.10 at $0.05 per GB |
Share of the ceiling is 742,318 ÷ 1,000,000 = 74.2%, and 1,000,000 − 742,318 = 257,682 events of headroom. Streaming 1,200,000 events is 1,200,000 ÷ 600,000 = 2 GB, and 2 × $0.05 = $0.10. A link made on 2026-11-11 starts flowing data within 24 hours — by 2026-11-12.
Sources
- Analytics Help — Set up BigQuery Export — the three steps, the roles on each side, the Daily and Streaming export types, the 1-million-event daily ceiling and the pause, and the 24-hour wait for first data
- Analytics Help — BigQuery Export — that the export is raw event data, that the daily table holds the previous day, that streaming costs about $0.05 per GB at about 600,000 events per GB, and that the export cannot be re-run
Checked 11 November 2026. The click paths above are the ones in Google's help and developer pages, opened in full on 11 November 2026. No step in this guide was run inside a live Analytics property, because that needs a Google sign-in and this site does not sign in as anyone. The worked-example figures on this page were recomputed in Python with decimal arithmetic, and the downloadable JSON file carries the same recomputed figures. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map.