Skip to main content
iClick Advertising
IntegrationAnalytics + Data warehouse
G
B

GA4 + BigQuery: raw analytics for serious measurement

TL;DR

GA4 can export raw, event-level data to BigQuery for free; you pay BigQuery for storage, queries and streaming at $0.05 per GB. Standard properties cap the daily export at 1 million events. The export carries GCLID but not wBRAID or gBRAID, so plan joins to Google Ads data around those gaps.

Export cost
Free; BigQuery usage billed
Streaming
$0.05 per GB, no event limit
Daily cap
1M events/day (standard)
Sandbox
10 GiB, tables expire in 60 days
Maria Shalini
Written by
Maria Shalini
Senior Marketing Strategist
Updated October 4, 2026Reviewed by Eric Mascarenhas
No sales call

A 47-point written audit of your Google, Meta or Shopping account, back in five business days.

Get your auditBook a call

What this integration unlocks

  • Raw, event-level GA4 data with no report sampling, since you query the events yourself
  • Exact counts you control, instead of the HyperLogLog++ estimates GA4 uses for distinct counts
  • Joins between GA4 events and backend or CRM revenue on a transaction or user ID
  • The GCLID per event in collected_traffic_source, for matching sessions to Google Ads clicks
  • Custom attribution and reconciliation queries the GA4 interface cannot run

Setup steps

  1. 1

    Choose sandbox or a billed project

    You can export GA4 to the free BigQuery sandbox, with no card needed. The sandbox has a lifetime 10 GiB storage limit, and every table, view and partition expires after 60 days. It also does not support streaming data. That is enough to test the schema, but not to keep history.

    For anything you plan to rely on, enable billing on the Google Cloud project. Billed projects still get the first 10 GiB of storage and the first 1 TiB of query processing free each month, and on-demand queries are then charged per TiB scanned, at a price that varies by region. After upgrading from the sandbox, change the default table expiration, or the 60-day expiry keeps deleting your export.

  2. 2

    Create the link in GA4 Admin

    In GA4, go to Admin > Product links > BigQuery links. You need the Editor role or above on the GA4 property and OWNER access to the BigQuery project. Choose the project, pick a data location, then use Configure data streams and events to decide which streams and events to include.

    Pick the export type next. Daily writes one complete table per day. Streaming writes events within minutes and has no event limit, but it is a best-effort service, it costs $0.05 per GB (Google estimates roughly 600,000 events per GB), and it excludes new-user and new-session traffic source data. Fresh daily is a GA4 360 feature. Google says data should start flowing within 24 hours of linking, and its setup guide does not describe any backfill, so treat the link date as day one.

  3. 3

    Stay under the 1 million daily event cap

    Standard (non-360) properties have a limit of 1 million events per day for the daily export. Streaming has no limit. If a property consistently exceeds the cap, Google pauses the daily export, and previous days are not reprocessed. Property editors are emailed when the property approaches or exceeds the limit.

    The fix Google gives is data filtering: exclude whole data streams, or exclude specific events, from the export. For PPC work, the events that matter are the key events and the ones that carry revenue. High-volume diagnostic events such as scrolls are usually the first to cut.

  4. 4

    Learn what the export leaves out

    The export holds raw event and user-level data, without the additions GA4 makes for its own reports. Two gaps matter for paid search. wBRAID and gBRAID are not included, so clicks that carry those parameters instead of a GCLID cannot be joined to Google Ads clicks from the export alone. And streaming tables exclude new-user and new-session traffic source data; Google notes user attribution data needs about 24 hours of full processing.

    The GCLID is exported in collected_traffic_source. Google suggests using it with the Google Ads API or the BigQuery Data Transfer Service to fill in missing Google Ads campaign dimensions. Cookieless pings from consent mode do appear in the export, so your event counts include them.

  5. 5

    Query the event schema and reconcile

    GA4 writes one row per event, with event parameters and user properties stored as nested, repeated fields that you UNNEST in SQL. Limit queries to the dates you need and select only the columns you need, because on-demand pricing charges for the data processed in the columns you select.

    Then build the reconciliation: purchases and revenue by campaign from the export, compared against what Google Ads reports and what the backend recorded. Save these as scheduled queries so the comparison runs without anyone remembering to run it.

Common issues

The daily export stopped arriving

Fix. On a standard property this is usually the 1 million events per day cap. Google pauses the daily export when a property consistently exceeds it and does not reprocess missed days. Add stream or event exclusions in the BigQuery link settings, or switch to streaming, which has no event limit but costs $0.05 per GB.

Tables disappeared after 60 days

Fix. The project is in the BigQuery sandbox, where every table and partition expires after 60 days. Enable billing, then update the dataset's default table expiration so new tables are kept.

Some Google Ads clicks cannot be matched

Fix. The export does not include wBRAID or gBRAID, only the GCLID. Clicks measured through those parameters cannot be joined to Google Ads click data from the export, so expect a gap when reconciling iOS traffic.

GA4 interface numbers do not match BigQuery

Fix. GA4 reports use aggregate tables and estimate distinct counts such as users with HyperLogLog++, and any report or exploration that exceeds the quota (10 million events on standard properties) is sampled. The export is raw, so exact counts differ. Small gaps are expected.

Streaming data shows missing traffic sources

Fix. Streaming excludes new-user and new-session traffic source data, and user attribution data needs about 24 hours of processing. Use the daily tables for attribution work, or wait for processing before reading source fields.

FAQ

Common questions

The export itself costs nothing. BigQuery charges for storage and queries beyond the free tier of 10 GiB storage and 1 TiB of queries a month, and streaming export costs $0.05 per GB. The free sandbox works for testing, but its tables expire after 60 days.

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.

Keep reading

Related on iClick

Unlock expert-led
advertising strategy
for your business.

Every agency is not the same. At iClick Advertising, we don't offer ‘free audits’, we provide actionable insights that improve real growth.

  • Ad Performance Analysis - Learn what is working, what is not, and where hidden opportunities exist.
  • Audience Targeting & Precision - Use advanced and data-driven insights to refine your ideal customer profiles.
  • Strategic Campaign Optimization - We'll guide you on structuring pay-per-click campaigns for better ROI and lower CPA.
  • Competitive Analysis - See how your ad strategy compares to industry leaders.
  • This isn't a common audit. It's a high-value strategy session for businesses committed to growth. Submit your details & let's get started.
🚀

Get in touch with us...

Protected · We'll respond within one business day.

Accredited
Advertising
Partner with:
CLUTCH
TOP
Google Premier PartnerMeta Business Partners
Eric Mascarenhas
Feel aligned? Let's talk details:
Book your slot
G
Google My Business
Reviewed on
5.0 Rating
Clutch
Reviewed on
4.95 Rating
Google Premier PartnerMeta Business PartnersBing Accredited PartnerShopify PartnerTikTok Marketing Partner