Tracking accuracy

Leaving GA4 without losing your history

What you can take out of Google Analytics 4, what you cannot, the Data API limits, and why imported days never match a new tool's own numbers.

On this page

You can take GA4's aggregated history with you: daily users, sessions, pages, sources, countries, devices and key events, through report downloads or the Google Analytics Data API. What you cannot take is event-level detail older than 2 or 14 months, or revenue attribution and visitor journeys, which only exist in the tool that measured them.

This guide covers the three ways out, the API's quotas, why imported days never line up exactly with a new tool's own, and five rules for an honest import.

Export before you need to

Google has already shown what happens to old data. Universal Analytics stopped processing hits on July 1, 2023, and from the week of July 1, 2024, its historical data and API were gone (Google). Anyone who had not exported lost it.

GA4 is not being retired. But a property can be deleted, an account can lose its last admin, and a client can leave an agency with the login. Export the history while you have access.

What GA4 keeps, and for how long

GA4 keeps two kinds of data with different lives (Google):

  • Aggregated reports (the standard reports, with their primary and secondary dimensions) are not cut by the retention setting.
  • Event-level data, used by explorations and funnel reports, is kept for 2 or 14 months on standard properties, and longer only on GA4 360.

So the daily totals and top lists most people want are still there years later. A funnel from two years ago usually is not.

The three ways out

WayWhat you getGood for
Download a reportA CSV or Sheet of the table on screenOne-off totals; slow for years of daily rows
The Data APIAny report, by day, by the dimension you ask forDaily history with sources, pages, countries and devices
BigQuery exportRaw event rows in your own BigQuery projectAnalysts who want event-level data and SQL

For moving to another tool, the Data API is the practical route: it reads the same aggregated data as the standard reports, day by day.

The Data API's limits

A standard property gets a quota of tokens: 200,000 a day and 40,000 an hour, with 10 requests at once, and 120 requests an hour that may be thresholded (Google). A report over a month of data with a breakdown can cost tens to hundreds of tokens. Two years of history with several breakdowns fits comfortably in a day, if the importer stops before the quota runs out and resumes later instead of failing.

What will not line up, and why

Imported days and new days measure different things under the same names. Expect a visible step on the day you switch, and know where it comes from:

  • Users are not visitors. A GA4 user is a browser cookie or app instance. A cookieless tool counts visitors another way, often per day. See sessions, users and pageviews.
  • Sessions follow GA4's rules. A GA4 session ends after 30 minutes of inactivity by default (the session timeout), and a new tool may cut visits differently.
  • Bounce rate was redefined. In GA4 a bounce is a session that was not engaged: under 10 seconds, one page and no key event. Other tools use other rules. See bounce rate in GA4.
  • Time is engagement time. GA4 measures how long the page was in front, which is not how Universal Analytics or many other tools measured it. See session duration and time on page.
  • Consent and blockers. GA4 with a consent banner misses people who decline, and ad blockers stop many GA4 tags. A cookieless tool that runs without consent often shows more visits from day one. Neither is wrong; they saw different people.
  • Small numbers can be hidden. GA4 may apply data thresholds, leaving out rows with few users when signals like demographics are on (Google), and may sample large reports.
  • Time zones. GA4 days follow the property's time zone. If the new tool uses another, days near midnight shift.

Rules for an honest import

  1. Never count a day twice. Import only the days before the new tool started. From the switch onward, only the new tool's own numbers should count.
  2. Mark the seam. The chart should show where imported days end, so nobody reads the step as a change in the business.
  3. Keep goals by name. GA4 key events can map to goals with the same event name, so last year's "purchase" lines up with this year's.
  4. Do not import what was never measured. Revenue attribution and visitor journeys need the new tool's own data; a daily total cannot recreate them.
  5. Give the access back. An import needs read access once. Revoke it when it ends.

Where Sporetag fits

From Sporetag's import code and help: the GA4 import is built and waits on Google's review of its read-only login (when shipped). When on, it reads totals, pages, landing pages, sources, UTM source, medium and campaign, countries, devices and key events, by day, newest first, and stops and resumes around the property's hourly and daily quota. Only days before Sporetag's first tracked day come in; the chart marks the switch, and a new import replaces the old one. The Google login is revoked when the import ends. Plausible and Fathom exports import from their CSV files today.

Common questions

Can I export all my historical data from GA4?

You can export aggregated history, such as daily users, sessions, pages and sources, through report downloads or the Data API. Event-level data for explorations is kept only for 2 or 14 months on standard properties.

Does GA4's data retention setting delete my reports?

No. It affects explorations and funnel reports. Standard aggregated reports are not cut by it.

Why are my numbers different after switching from GA4?

The tools count users, sessions and bounces with different rules, GA4 misses people who decline consent or block it, and GA4 may hold back small numbers. Expect a step on the switch day.

Is Universal Analytics data still available?

No. Google removed access to Universal Analytics data and its API starting the week of July 1, 2024.

Sources

Spotted something wrong or out of date? Email hello@sporetag.com and we will fix it.