Tracking and data

GA4 and BigQuery export

The GA4 BigQuery export is one of the most important features in GA4 and is now free for all GA4 properties. It gives access to raw, unsampled data outside the GA4 interface and enables advanced analysis that is not possible directly in GA4.

Why export

  • Unsampled data
  • Unlimited retention
  • Full SQL
  • Combine with CRM data

Export types

  • Daily
  • Streaming

Keep in mind

  • Filter on _TABLE_SUFFIX
  • Use session_traffic_source_last_click
  • Pick an EU region

What is Google BigQuery?

Google BigQuery is Google's serverless data warehouse in the cloud. It is a fully managed service where you can store and analyze huge amounts of data with SQL queries. For marketing analysis BigQuery is mainly interesting as the destination for the GA4 export, where all raw event data can be stored and analyzed without sampling limits.

The GA4 BigQuery export used to be exclusive to GA360 customers. With GA4 the export is free for all properties, which is one of the biggest advantages of GA4 over Universal Analytics.

Why export GA4 data to BigQuery?

  • Raw, unsampled data without GA4's sampling and threshold limits
  • Unlimited retention beyond GA4's 14 month limit
  • Full SQL flexibility for custom queries that GA4 cannot handle
  • Combining data with CRM data, ad data and offline data
  • A backup of your GA4 data outside the GA4 interface

Export frequencies: daily vs streaming

GA4 offers two export frequencies. The daily export sends the previous day's data once a day. The streaming export sends event data in near real time, with a delay of about 15 to 30 minutes. The daily export includes both event and user tables. The streaming export includes event data only, in events_intraday_YYYYMMDD tables.

For most use cases the daily export is enough. Streaming is relevant for real-time dashboards and paid products where fast event data is business critical.

Costs to know about

The GA4 BigQuery export itself is free. You pay Google Cloud costs for storage and queries. The free tier includes 1 terabyte of query processing and 10 gigabytes of storage per billing account per month. An important best practice for keeping costs low is to always filter on _TABLE_SUFFIX to limit queries to specific date ranges.

The schema's most important pitfalls

The GA4 schema in BigQuery contains four different traffic source structures. The newest one, session_traffic_source_last_click (STSLC), was added on 17 July 2024 and is the structure to use when you want session attribution that matches the GA4 interface. If you use the wrong structure, your numbers deviate from the GA4 interface without any error message.

Setup step by step

Step 1: Create or choose a Google Cloud project and enable the BigQuery API.

Step 2: In GA4 Admin, under Product Links, click BigQuery Links and follow the wizard.

Step 3: Choose export frequency and region. Choose europe-west1 or europe-north1 to keep data inside the EU.

Step 4: Data starts to populate the next day for the daily export. Check in the BigQuery Console that tables are created correctly.

Frequently asked questions

Is the GA4 BigQuery export free?

The export itself is free. You pay Google Cloud costs for storage and queries, and the free tier includes 1 terabyte of query processing and 10 gigabytes of storage per billing account per month.

Which region should I choose?

Choose europe-west1 or europe-north1 to keep your data inside the EU.

Daily or streaming export?

Daily is enough for most use cases. Streaming is relevant for real-time dashboards and paid products where fast event data is business critical.

Want to talk it through?

Tell me what you are working on and I will get back to you with straight answers.

Let's talk