Next Action Analyst

2026-08-20

GA4 BigQuery Export Not Showing Data: The Exact Fix

You linked GA4 to BigQuery, waited a day (or three), and your dataset is either empty, missing today's events, or only partially populated. You've refreshed the schema, checked the project ID twice, and you're starting to wonder if the export is just broken.

It's usually not broken — it's misconfigured, delayed by design, or you're querying the wrong table set. Here's how to isolate which one it is and fix it.

Why this happens

In order of how often each one is the actual culprit:

Fix, step by step

  1. In GA4, go to Admin > Product Links > BigQuery Links and confirm a link exists, and note the exact Google Cloud project ID and dataset location shown there.
  2. In the Google Cloud Console for that exact project, confirm Billing is active and the BigQuery API is enabled. If either was off when the link was created, disconnect the link, fix billing/API, then recreate the link — it will not self-heal retroactively.
  3. In BigQuery, confirm you are querying the dataset named analytics_<property_id> inside the correct project and correct region (matching the location noted in step 1). Cross-region queries return empty results without a clear warning.
  4. Check whether Streaming was enabled under the link's export settings. If yes, query events_intraday_YYYYMMDD for today's partial data, and events_YYYYMMDD only for prior, finalized days.
  5. If it's been fewer than 48-72 hours since linking, wait — this is normal for the first export cycle. Subsequent daily tables should land consistently within 24 hours.
  6. Verify the service account or user tied to the export still has BigQuery Data Editor and BigQuery Job User roles on the project. Check under IAM in Google Cloud Console.
  7. If specific regions or event counts look low rather than zero, review Consent Mode settings and check the ga_session_id and consent fields in the exported event data for gaps.
  8. As a last resort, unlink and relink BigQuery from GA4 Admin, re-selecting the correct project, location, and export type (daily, or daily + streaming).

Copy-paste verification checklist

GA4 → BigQuery EXPORT CHECKLIST

[ ] BigQuery Link exists under Admin > Product Links > BigQuery Links
[ ] Linked GCP project ID matches the one you're querying: ______________
[ ] Dataset location in GA4 link settings matches BigQuery dataset region: ______________
[ ] Billing enabled on linked GCP project
[ ] BigQuery API enabled on linked GCP project
[ ] Export type confirmed: [ ] Daily only  [ ] Daily + Streaming
[ ] If Streaming enabled: querying events_intraday_YYYYMMDD for today
[ ] If Daily only: allowing up to 24h after day-end (property timezone) for events_YYYYMMDD
[ ] First-ever export: allowing up to 48-72h post-linking before troubleshooting further
[ ] Service account / user has BigQuery Data Editor role
[ ] Service account / user has BigQuery Job User role
[ ] Consent Mode reviewed if row counts are low (not zero) by region

SAMPLE TABLE NAME CHECK:
  analytics_.events_20250601        (finalized day)
  analytics_.events_intraday_20250602 (in-progress day)

How to verify it worked

Run a simple row count query against yesterday's finalized table: SELECT COUNT(*) FROM `project.analytics_<property_id>.events_YYYYMMDD`. If it returns a nonzero count matching roughly what you'd expect from GA4's realtime or standard reports for that day, the export is working. Repeat this check daily for a few days after any fix to confirm tables continue landing on schedule.

Once the export is flowing reliably, the harder part is turning raw BigQuery event tables into decisions your team can act on without writing SQL every morning — which is exactly the gap Next Action Analyst is built to close, by turning those exports directly into prioritized next actions.

Stop reading dashboards. Start acting on them.
Next Action Analyst turns your campaign export into a prioritized list of changes to make tomorrow — with the numbers that justify each one.