Real-time data in analytics is the live event stream that surfaces user activity within seconds of it happening. In Google Analytics 4 this stream powers the Realtime report, a 30-minute rolling window that lets you verify a launch, debug a tag, or watch a flash sale before standard reports settle. This guide covers how GA4 ingests events, what the Realtime report shows, how it differs from DebugView and BigQuery streaming export, the dimension and freshness caveats most teams miss, the privacy implications at ingest, and the seven most-asked questions about real-time analytics.
What is Real-Time Data in Analytics
Real-time data is event-level analytics information that becomes queryable within seconds of being collected. The defining trait isn’t speed alone β it’s the absence of the slow processing pipeline that produces final, reconciled metrics. A real-time stream surfaces what just happened; a standard report surfaces what was true 24 to 48 hours ago after sampling, attribution, identity stitching, and bot filters have run.
In GA4 specifically, “real-time” means the last 30 minutes of activity, refreshed continuously, accessible under Reports β Realtime. Each event arrives, passes basic validation, lands in a 1-minute time slot, and is immediately countable. There is no overnight job, no model fitting, no audience computation. That makes the data fast β and also makes it different from anything you’ll see in a standard report.
Real-Time vs Standard GA4 Reports
The two surfaces share a data source but diverge sharply on freshness, sampling, dimensions, and trustworthiness. A real-time view is built for action β detecting a problem in the next 60 seconds. A standard report is built for analysis β understanding patterns across days or weeks. The table below maps the differences:
| Property | Realtime report | Standard reports |
|---|---|---|
| Window | Last 30 minutes only | Up to 14 months retention |
| Latency | 5 to 60 seconds | 24 to 48 hours after collection |
| Sampling | None β every event counted | Sampling kicks in above 10M events per query |
| Attribution model | Source/medium at first touch only | Full data-driven or rule-based attribution |
| Dimensions available | ~12 (page, source, country, audience, event) | 200+ including custom dimensions |
| Data thresholds | None applied at this layer | Applied β small cohorts may be hidden |
| Audience computation | Live membership only | Full audience triggers and segments |
| Filters and bot rules | Basic only | Full filter and known-bot exclusion |
| Best for | Launch monitoring, tag QA, live events | Reporting, attribution, decision-making |
The practical takeaway: don’t compare a Realtime number with a number from yesterday’s standard report. The two are computed differently and will not reconcile, even on the same day. Realtime is a live signal; standard reports are the source of truth.
GA4 Realtime Report: What It Shows
The Realtime report lives under Reports β Realtime and renders five primary cards plus a User snapshot side panel:
| Card | What it displays | Common use |
|---|---|---|
| Users in last 30 minutes | Line chart in 1-minute buckets, current count on top | Spot traffic spikes or outages |
| Users by first user source | Channel breakdown for new visitors only | Confirm UTM capture on a fresh campaign |
| Users by audience | Live audience membership counts | Watch a remarketing pool fill in real time |
| Views by page title and screen | Top pages or app screens right now | Verify a new pageview registers |
| Event count by event name | Live event stream with counts | Confirm a new event fires after a tag deploy |
The View user snapshot button (top right) follows a single anonymized user through their event sequence β useful for inspecting a specific journey when you suspect a bug. Click any event card to drill into parameter values; this is the closest you get to per-event detail without using DebugView.
How GA4 Real-Time Processing Works
The pipeline has four steps and the whole thing typically completes in under a minute end to end:
- Event fires. Your gtag.js, GTM container, or app SDK packages an event payload (event name, parameters, user properties, client_id) and posts it to the
collectendpoint on Google’s measurement servers. - Edge ingestion. Google’s edge servers validate the hit, check consent state from cookies and
consent_mode, and accept or reject. Rejected hits never enter the pipeline. - Buffer placement. Accepted events drop into a 1-minute slot in the rolling 30-minute window, indexed by the data stream they belong to. No sampling, no enrichment, no audience evaluation happens here.
- Surface rendering. The Realtime UI polls the buffer roughly every 30 seconds, recomputes each card, and refreshes. BigQuery streaming export drains from the same buffer in parallel if your property has it enabled.
Two architectural notes matter for debugging. First, the buffer is shared with the Measurement Protocol β server-side hits show up in Realtime exactly like client-side hits. Second, the 30-minute window is rolling, not cumulative. An event that fired 31 minutes ago is gone from Realtime forever; only standard reports retain it.
Use Cases for Real-Time Data
Five scenarios where Realtime earns its keep:
- Campaign launch verification. An email blast goes out at 10:00 AM. By 10:02 you should see the email source/medium populated in Users by first user source and matching events in the event stream. If it’s empty, fix UTMs before the budget burns.
- Tag QA after deploy. Publish a GTM container, then watch Realtime for the new event name to appear within 60 seconds of a test action. Faster than refreshing standard reports the next day.
- Flash sale or live event monitoring. Track concurrent users, add_to_cart volume, and conversion events as they happen. Spot site slowdowns reflected as user-count drops.
- Outage detection. If the Users-in-last-30-minutes chart suddenly drops to zero on a normal workday, something broke β either tracking, the site, or both. It’s a faster signal than waiting for an alert from synthetic monitoring.
- Privacy and consent debugging. Toggle a consent banner choice, then check Realtime within 10 seconds. If hits don’t appear, your consent integration is rejecting them at the edge.
Realtime is not for measuring success. It’s for verifying that something works and catching breakage early. The moment you start making strategic decisions from a Realtime number, you’ve stepped outside what the surface is designed to do.
Real-Time Data in BigQuery
GA4 offers two BigQuery export modes, and only one is real time:
- Daily export writes a per-day table (
events_YYYYMMDD) once per day, typically arriving 24 to 72 hours after the day closes. This is the canonical, deduped, fully processed dataset. - Streaming export writes events to
events_intraday_YYYYMMDDwithin seconds of collection. Same schema as the daily table, but rows can be revised, duplicated, or never appear in the final daily table if downstream processing rejects them.
Streaming export is paid (it counts against the BigQuery streaming insert pricing tier on top of the GA4 export itself), but for teams that need sub-minute event visibility outside the GA4 UI, it’s the only path. Common applications: feeding a real-time custom dashboard, building anomaly alerts, or piping events into a CDP. Google’s official documentation on BigQuery export covers schema and pricing in detail.
Two warnings. The intraday table is mutable β never join or aggregate from it without understanding that rows can shift. And streaming export does not include all enrichments the daily export contains; user_pseudo_id stitching across sessions is finalized only in the daily table.
Custom Real-Time Dashboards: Looker Studio + GA4 Data API
The Realtime report is fixed β you can’t add metrics, change dimensions, or save views. For a custom real-time dashboard you have two production-grade options:
- Looker Studio with GA4 connector. Add a GA4 source, choose Realtime as the data scope, and build cards on top. Looker Studio refreshes Realtime data on a 1-minute cadence by default. Limited to the same dimensions GA4 exposes in its Realtime API.
- GA4 Data API (runRealtimeReport). Programmatically query the same backing data via REST. Google’s Data API documentation shows the dimension allowlist and request format. Pipe responses into a custom React or Grafana dashboard for a fully tailored view.
For most teams, Looker Studio is the right answer β zero code, good enough refresh cadence. The Data API path is for product teams building dedicated ops dashboards where the GA4 UI is too coarse, or where Realtime data needs to merge with non-GA sources at query time.
Limits and Caveats
Realtime feels magical until you hit one of these limits. Then it gets confusing. Knowing them ahead of time saves hours of debugging:
- 30-minute window is hard. Anything older is unreachable through Realtime, even if you refresh five seconds later. Use standard reports for any look-back beyond 30 minutes.
- Limited dimension set. Realtime exposes roughly 12 dimensions: page title, page location, country, device category, source/medium, audience name, event name, and a handful of others. Custom dimensions defined in GA4 do not appear in Realtime, full stop.
- DebugView vs Realtime β different surfaces. DebugView shows only events flagged with
debug_mode: true(set automatically when you use the GA Debugger Chrome extension or include?gtm_debug=1). Realtime shows everything from production traffic. Don’t confuse “I see it in DebugView” with “it’s reaching production” β they’re independent. - Latency varies. 5 seconds is best case; 60+ seconds happens during high-volume periods or when Google’s pipeline lags. Reading a “0” doesn’t mean nothing happened β wait 90 seconds before concluding.
- Numbers will not match standard reports. Even at the end of the day, the Realtime user count rarely equals the standard active users figure, because filters, bot rules, and identity stitching apply only to the latter.
Real-Time Privacy Implications
Real-time pipelines compress the privacy decision window. With a daily report, you have hours to review consent logs, propagate revocations, and clean data before anyone sees it. With Realtime, an event that fires before consent is granted is visible to GA4 admins almost immediately, and if you have BigQuery streaming export it’s queryable by anyone with table access.
Three GDPR-relevant rules:
- Consent must be checked at ingest, not at query time. Use Google’s
consent_modev2 to gate hits before they post. A hit that arrives without analytics_storage consent is either stripped (consent denied) or modeled (Consent Mode advanced), but never sits in raw form in your Realtime buffer alongside consented hits. - Revocations propagate slowly. If a user revokes consent, the Realtime view will keep showing their session for the rest of the 30-minute window. Standard reports will reflect the revocation only after the next processing run. Plan for that delay in any data subject request workflow.
- BigQuery streaming export inherits consent state. The event row carries the consent flags as fields. When a user later requests deletion, your DPO must run the deletion against both the intraday and daily tables β streaming export does not auto-purge.
For sites in the EU, a documented Realtime-aware GDPR playbook is non-optional. The “we’ll fix it tomorrow” approach that worked with daily reports doesn’t fit a stream that’s visible in seconds.
Best Practices: When NOT to Use Real-Time
Five anti-patterns that look reasonable and cause real problems:
- Don’t run KPI dashboards off Realtime. A C-suite dashboard that pulls “today’s revenue” from Realtime will undercount, miscount, and confuse stakeholders within a week. Use the Data API with a time range that ends yesterday for any dashboard tied to decisions.
- Don’t compare Realtime to historical baselines. The Realtime number is computed without filters, attribution, and bot exclusion. Comparing it against last week’s standard-report number is comparing two different metrics. Pick one surface, stay there.
- Don’t trust Realtime for low-traffic tests. If your site sees 5 visitors a minute, a single test session can swing a Realtime card 20%. Wait for standard reports if statistical reliability matters.
- Don’t expose Realtime to non-analysts unsupervised. Marketing and sales staff who watch Realtime constantly will tell you the site is “down” every time the chart dips. Either add context (the chart always dips at 3 AM your time) or restrict access.
- Don’t use Realtime as your only QA step. Always pair it with DebugView for parameter inspection and standard reports the next day for the canonical count. Three signals beat one.
Used correctly, real-time data is a high-leverage operational tool β fast feedback when something breaks, fast confirmation when something ships. Used incorrectly, it’s a stream of misleading numbers that erode trust in the analytics setup. The line between the two is knowing what the surface is designed for and what it is not.
Frequently Asked Questions
What is real-time data in GA4?
Real-time data in GA4 is the live event stream from the last 30 minutes, accessible under Reports β Realtime. Events arrive within 5 to 60 seconds of being collected and surface across five cards: active users, source breakdown, audience membership, top pages, and event counts. It’s separate from standard reports, which apply sampling, attribution, and filters and arrive 24 to 48 hours later.
How long is the GA4 Realtime window?
The Realtime report shows a rolling 30-minute window. Events older than 30 minutes are removed from the Realtime buffer entirely and only appear in standard reports after processing. The window is rolling, not cumulative β you cannot extend it or look back further from the Realtime surface.
What is the difference between DebugView and Realtime in GA4?
DebugView shows only events flagged with debug_mode (typically via the GA Debugger Chrome extension or a debug parameter), letting you inspect every event from a single test device including all parameters. Realtime shows aggregate traffic from all users without parameter detail. DebugView is for development and tag QA; Realtime is for monitoring live production activity.
Why don’t Realtime numbers match my standard GA4 reports?
Realtime and standard reports are computed differently. Realtime applies no sampling, no bot filtering, no audience computation, no attribution model, and only basic validation. Standard reports apply all of those. Even on the same day the two surfaces will produce different numbers; the standard report is the canonical figure for analysis.
Can I export real-time data from GA4 to BigQuery?
Yes β enable BigQuery streaming export in your GA4 property settings. Events stream into the events_intraday_YYYYMMDD table within seconds. Streaming export is paid (it incurs streaming insert costs in BigQuery on top of the export itself), and intraday rows can be revised or replaced when the daily export finalizes. Use the daily events_YYYYMMDD table for canonical analysis.
Does GA4 Realtime sample data?
No, the GA4 Realtime report does not sample. Every event accepted at ingest is counted in the rolling 30-minute window. Sampling only applies in standard explorations and reports when a query exceeds 10 million events. The lack of sampling is one reason Realtime numbers don’t reconcile with standard reports β different rules apply to each surface.
Can I build a custom real-time dashboard for GA4?
Yes. Two options: connect Looker Studio to GA4 with the Realtime data scope for a no-code dashboard refreshing every minute, or call the GA4 Data API runRealtimeReport endpoint directly for a fully custom dashboard. Both are limited to the dimensions GA4 exposes in its Realtime API (about 12), so custom dimensions defined elsewhere in GA4 will not appear.
Related Terms
- Event β the raw building block of every real-time hit
- DebugView β the per-user inspection surface that complements Realtime
- Data Stream β the property-level pipe that feeds the Realtime buffer
- Measurement Protocol β server-side hits that show up in Realtime alongside client-side hits
- BigQuery β the streaming export target for sub-minute event visibility outside the GA4 UI
- Looker Studio β the no-code path to a custom Realtime dashboard
- Data Layer β where events are pushed before gtag forwards them to GA4
- Conversion β the marked event you watch fire in Realtime after a launch
- Engagement Time β a related session metric reconciled only in standard reports
- Pageview β the event most commonly verified in the Realtime page card