GA4 Data Retention Settings
Retention Only Affects User-Level and Event-Level Exploration
GA4's Admin > Data Settings > Data Retention control (configurable to 2 months or 14 months) only governs how long event-level and user-level data remains available for ad-hoc analysis in Explorations — it does not affect standard aggregated reports, which retain data indefinitely, and it does not affect the BigQuery export, which is entirely independent and governed by your own BigQuery dataset's retention policy.
Why This Trips People Up
A common point of confusion: someone notices their standard GA4 reports (Reports > Life cycle, Engagement, etc.) still show data from 18 months ago, and assumes the retention setting doesn't work. In reality, those are pre-aggregated reports unaffected by the setting. Try to build a Funnel Exploration or Free Form exploration querying raw event data from 15 months back on a property set to 14-month retention, and it silently returns nothing for that excluded range — this is the setting actually taking effect, just invisibly to anyone not building custom explorations.
| Data Surface | Affected by Retention Setting? | Actual Retention |
|---|---|---|
| Standard Reports (Life cycle, Acquisition, etc.) | No | Indefinite, pre-aggregated |
| Explorations (Free form, Funnel, Path, Segment Overlap) | Yes | 2 or 14 months, per your setting |
| BigQuery Export | No — separate system entirely | Governed by your BigQuery dataset's own expiration policy |
| User-ID / cross-device stitching lookback | Yes | Bounded by retention setting |
-- Set your own long-term retention policy on the BigQuery dataset
-- that receives the GA4 export — independent of the GA4 UI setting
ALTER TABLE `project.analytics_123456789.events_*`
SET OPTIONS (
partition_expiration_days = NULL -- NULL means never expire; set a number
-- of days if you want automatic cleanup
);
-- Confirm current dataset-level default expiration
SELECT default_table_expiration_ms
FROM `project.analytics_123456789.INFORMATION_SCHEMA.SCHEMATA`
WHERE schema_name = 'analytics_123456789'14 Months Is Usually the Right Default, With BigQuery as the Real Archive
Interaction With Reset on New Activity
GA4 offers a toggle to reset the retention countdown on each new user activity (vs a fixed countdown from first collection). This specifically affects user-level data used for things like remarketing audience membership windows that reference user-level history — leaving it off means a user's data ages out on a fixed schedule from their first-seen event regardless of ongoing activity, which can be the correct choice for privacy-conscious configurations but surprises teams expecting continuously 'fresh' long-term user profiles.
Retention Setting Changes Are Not Retroactive Fixes
What's Next?
Data retention and raw data access both tie into how much you can realistically do with the GA4 Data API outside the UI — including the quotas and limits that govern how much you can pull programmatically, which is worth understanding before building any custom reporting on top of GA4.
I build these systems professionally.
Whether it's a RAG pipeline, analytics migration, or AI workflow — let's talk.