A GA4 BigQuery export gap can mean several different things: the expected table has not arrived yet, only the current-day streaming table is visible, a daily table has fewer rows than expected, or a complete export simply does not match a GA4 report. Those symptoms have different causes and different next steps.
Start by identifying the exact missing table and date. Then check the export type, property time zone, selected streams and events, and any limit or billing notice. Do not delete the BigQuery dataset or recreate the link as a first response: some export failures can leave gaps that are not automatically re-exported. This guide reflects Google’s documentation checked on November 9, 2026; schedules and interface labels can change.
- Daily export: the table for the previous day is not delivered at a guaranteed clock time.
- Streaming export: the current day uses an intraday table, but streaming is best effort and can contain gaps.
- GA4 vs. BigQuery: a reporting difference is not automatically a failed export; first match dates, time zones, streams, exclusions, and reporting identity.
First classify the symptom
Write down the property, BigQuery project, dataset, table date, and the first date the gap appeared. “BigQuery is missing data” is too broad to troubleshoot. Use this matrix to choose the first check.
| What you see | First question | Next check |
|---|---|---|
| No table for yesterday | Is this a new link or a daily export? | Check the first-day window, property time zone, and whether streaming is enabled. |
Only events_intraday_* | Is the date still in progress, or is the property on BigQuery Sandbox? | Check the export mode and wait for the daily table to complete. |
| Table exists, row count is lower | Is it a streaming table or a recent daily table? | Check late arrivals, selected streams/events, and daily export limits. |
| GA4 report is higher than BigQuery | Are both counts for the same date, stream, and reporting definition? | Align identity, time zone, exclusions, and metric scope before calling it a gap. |
Check the table list before changing settings
Confirm that you are in the BigQuery project linked to the right GA4 property. A GA4 dataset is normally named analytics_<property_id>. A wrong project, property, or date suffix can look like a stopped export even when another dataset is receiving data.
This first query lists the daily and intraday event tables in one dataset. Replace the project and property placeholders before running it.
SELECT table_name
FROM `your-project.analytics_PROPERTY_ID.INFORMATION_SCHEMA.TABLES`
WHERE REGEXP_CONTAINS(table_name, r'^events_(intraday_)?[0-9]{8}$')
ORDER BY table_name DESC;
If the table exists but you need a quick row-count comparison, restrict the wildcard query to the specific daily and intraday suffixes you are investigating. The example below uses sample dates; replace them with the dates in your property’s reporting time zone.
SELECT _TABLE_SUFFIX AS table_suffix, COUNT(*) AS event_rows
FROM `your-project.analytics_PROPERTY_ID.events_*`
WHERE _TABLE_SUFFIX IN ('20261106', 'intraday_20261107')
GROUP BY table_suffix
ORDER BY table_suffix;
This counts rows in the named BigQuery tables; it does not prove that the count should equal a GA4 report. Keep the date filter narrow so you do not scan the full history unnecessarily. For a basic explanation of setup and the exported schema, see GA4 BigQuery Export: Setup, Schema, and Analysis Basics.
If the daily table has not appeared yet
After you complete a new GA4-to-BigQuery link, Google says data should start flowing within 24 hours. Daily export sends the previous day’s data, generally during early afternoon in the property’s reporting time zone. That is an expected pattern, not a guaranteed delivery time; Google notes that daily export can arrive later in the day or the next day.
For a new setup, check Google’s BigQuery Export setup guide for the required permissions, project link, and current notices before concluding that the delivery has failed.
Check which export type is enabled. Daily export creates tables named events_YYYYMMDD. Streaming export creates a current-day staging table named events_intraday_YYYYMMDD. If streaming is not enabled, the absence of an intraday table is expected. If the project uses BigQuery Sandbox, Google documents that intraday imports are not available there.
Also verify the property’s reporting time zone. A table’s date follows the property’s export schedule, so a dashboard or downstream query using a different time zone can compare different day boundaries. A recent time-zone change can shorten or lengthen an export window and produce an unusual day or skipped daily export.
For current export types and timing, check Google’s BigQuery Export documentation and BigQuery Export schema.
If the table exists but the row count is low
First distinguish a current-day intraday table from a finalized daily table. Streaming is designed for recent data, but it is best effort and does not have a completeness service-level objective. Late events and failed uploads can leave gaps in an intraday table. It is useful for a timely operational view, but it should not be treated as a final daily extract.
Daily tables can also change after they first appear. Google says Analytics may update a daily table for events received late for that event date for up to two calendar days plus the current day. This can happen with events sent later from Measurement Protocol or a Firebase SDK. For a stable comparison, use a day outside that late-arrival window and confirm the update schedule against the property’s time zone.
Before escalating, check whether the expected data stream is selected for export and whether the event is on an exclusion list. A table can be present and valid while deliberately omitting a stream or event. Compare the configuration with the scope of the report or query that looks incomplete.
If a previously working export stopped
Look for a notification or a documented failure condition before rebuilding the link. Google lists several causes that can prevent BigQuery tables from being created or populated:
- Daily export volume: Standard GA4 properties have a 1-million-event daily limit for batch export. If a property consistently exceeds the limit, daily export can be paused, and previous days are not reprocessed. This limit applies to Standard daily export; do not apply it to streaming or Analytics 360.
- Billing or project limits: check the Cloud billing account, payment method, storage quota, and any BigQuery error or notification. A valid billing setup is required for export.
- Access or organization policy: review the export error, service-account access, and Cloud organization rules that govern project or dataset access and location.
- Changed property settings: verify whether the reporting time zone or the linked project changed near the first missing date.
Do not remove streams or exclude events just to make a warning disappear. First record the affected dates, property type, export mode, event volume, settings, and exact error. Then decide whether filtering is appropriate for the reporting requirement and whether the gap is recoverable. Google notes that data missed during some interrupted export periods cannot be re-exported automatically; see its export-failure guidance and BigQuery export error messages. For Data API quota errors in Looker Studio, which are a separate issue from export delivery, see the GA4 Data API quota troubleshooting guide.
Make a fair comparison with GA4
If tables are arriving but totals differ, confirm the comparison settings before changing the export. Google recommends checking the linked project, matching the property time zone, and accounting for selected data streams and excluded events. GA4 exports to BigQuery using Device ID; comparing it with a report using a different reporting identity can produce a different result.
Compare the same event count for the same date and stream. Google’s comparison guide says a 2–5% difference between total event counts can be expected after following its checks. Treat that as a specific documented range for that comparison, not as a blanket acceptable variance for sessions, users, conversions, or every custom query.
BigQuery contains exported event data, while GA4 reports can include modeling, Google Signals, attribution, estimation, and other reporting behavior. Session totals can also differ when a query uses a different session definition. A mismatch in those derived metrics does not by itself show that event rows are missing. If the issue is specifically how to group events into sessions, continue with GA4 BigQuery Sessionization.
Follow Google’s comparison checklist and its explanation of why the Analytics UI and BigQuery export can differ before classifying the gap.
Use this decision path before escalating
- Name the symptom: missing table, current-day partial data, low daily row count, or GA4-vs-BigQuery mismatch.
- Confirm the target: property ID, linked Cloud project, dataset, table suffix, export mode, and property time zone.
- Check expected timing: initial link window, daily schedule, intraday availability, and the late-arrival window.
- Check configuration and operations: stream/event inclusion, the Standard daily limit, billing, quota, access, and notices/errors.
- Compare the same thing: use the same date, stream, event scope, and Device ID reporting identity; distinguish row counts from derived metrics.
- Escalate with evidence: preserve the affected dates, table names, row counts, export settings, and error text for the Analytics or Cloud administrator.
What to save for the incident record
Keep a short, access-controlled note with the property and project, affected date range and time zone, export mode, dataset and table names, observed row counts, selected streams/events, any limit or billing notice, and the exact error text. Record when the link or property settings last changed. This lets an Analytics or Cloud administrator reproduce the check without collecting personal CRM or lead records.
Only change the link or export configuration after the evidence points to a configuration problem and the owner understands how the change affects future collection. A careful diagnosis keeps an expected delay, filtered stream, reporting-definition difference, and genuine export failure from being treated as the same incident.
How did this article land?
Choose one reaction. You can change it anytime.