Migration

Moving off Google Analytics

Most of your history comes across. Some of it cannot, and you should know which before you start rather than halfway through. Here is all of it.

GA4 API behaviour verified 6 September 2026

Still deciding? How to judge a Google Analytics alternative covers the choice itself — eight questions, and the cases where staying on GA4 is the right answer.

Four steps

  1. 01

    Add your site and paste one line

    A single script tag, 1270 bytes gzipped. Our installer checks it for you and shows you the HTML it actually fetched, so a failure tells you what went wrong instead of just failing.

    about two minutes
  2. 02

    Connect Google Analytics

    Read-only OAuth against the GA4 Data API. We pull every day from your first GA4 hit up to the day your script went live, so the two never double-count the same visit.

    a few minutes to start
  3. 03

    Let the import run

    Google's API allows 40,000 tokens an hour and ten concurrent requests, so a long history is measured in hours, not seconds. It resumes on its own if it is interrupted, and it is safe to re-run.

    up to 48 hours
  4. 04

    Read the fidelity report

    When the import finishes we tell you exactly what came across, what did not, which metrics are defined differently, and how far apart the two tools should be — so the first argument about the numbers is one you can settle.

    five minutes, well spent

Before you start

What comes across, and what does not

Every tool with a GA4 importer has a list like this one, and most of them keep it in a documentation footnote. Read it now and nothing in your new charts will surprise you later.

GA4 data that can and cannot be imported
Data Imports Notes
Pageviews and sessions, per day Yes Daily aggregates, from your first GA4 hit.
Traffic sources and referrers Yes
UTM campaigns Yes Campaign names import; see below for utm_source.
Countries, regions and cities Yes
Devices, browsers and operating systems Yes
Top pages and entry pages Yes
Conversions against your GA4 key events Yes Goals are recreated by hand, then counts attach to them.
utm_source as a separate dimension No Google's API does not expose it separately from sessionSource. We import the source and leave utm_source empty rather than guess.
Exit pages No GA4 does not report them.
Scroll depth and engaged time No Not in the GA4 export. Scroll maps come with heatmaps from Growth; engaged time is not a report we have yet.
Hour-by-hour breakdowns of past days No The import is daily. Hourly data starts when your script does.
Browser and OS versions No Only the family imports.
Ecommerce revenue No Attributed by GA4’s own model, which we cannot reproduce honestly.
Universal Analytics history No Google stopped processing UA on 1 July 2023 and has since deleted the data. Nobody can import it — be sceptical of anyone who says they can.

The trade

What you give up by leaving Google Analytics

Mostly: work. Here is the comparison in full, including the two rows where GA4 wins.

If the reason you are here is the law rather than the tooling, the legal side is set out on its own in what makes web analytics GDPR-compliant — including which of the 2022 regulator decisions against Google Analytics still apply after the 2023 adequacy decision, and which no longer do.

Still weighing it up? The ten-row comparison is on the alternative page, including the two rows GA4 wins. If you buy Google Ads and optimise on conversion imports, keep GA4 for that — most sites do not, and are paying for it in a consent banner and 145 KB of JavaScript on every page load, in exchange for reports they never open.

Before you commit

Run both for a month

Leave GA4 installed next to us. We show you both numbers side by side, day by day, and explain each gap: ad blocking, bot filtering, or a metric that is simply defined differently in the two tools.

The real barrier to switching analytics has never been price. It is not knowing whether the new numbers are true. This is how you find out without taking our word for it.

Then read the fidelity report

Every import ends with one: what was imported, what was skipped and why, which metric definitions differ, and the variance band you should expect against your old tool.

We wrote it because “these numbers are wrong” is the first thing anyone says after changing analytics tools, and it is almost always a definition nobody explained.

Why do my numbers not match Google Analytics?

They will not, and anyone promising otherwise is selling you something. Four real reasons:

Ad blockers. Every mainstream blocklist carries google-analytics.com, and on a developer-heavy audience that can be more than half your visits going uncounted. Our script is far less widely blocked, so we usually report more traffic than GA, not less.

Bounce rate means something different. GA4 redefined it as the inverse of engagement rate. It is not comparable to the single-interaction definition every other tool uses, including ours. Imported GA4 bounce rates stay labelled as GA4's.

Sampling and thresholding. GA4 samples large queries and withholds rows that could identify individuals. Those numbers are estimates before they reach us.

Unique visitors cannot be de-duplicated across days. The GA4 export is daily aggregates, so a 30-day total is a sum of daily figures and overcounts anyone who came back. We show imported uniques as a sum and say so.

What is the (other) row in my imported data?

GA4 buckets high-cardinality dimensions into a row literally called (other) once it hits an internal limit. That traffic is real but permanently unattributable — Google discarded the detail before we ever saw it. We import the row as-is rather than silently redistributing it, because inventing an attribution would be worse than admitting one is missing.

Can I run both at once?

Yes, and we recommend it. Keep GA4 installed alongside us for 30 to 60 days. We will show you a day-by-day comparison of the two with the variance explained — which part is ad blocking, which is a metric definition, which is bot filtering. Not knowing whether the new numbers are true is what stops most people switching; a month of running both is how you find out.

Do I still need a cookie banner?

Not for us. We set no cookies and store no IP addresses, so there is nothing on the visitor’s device to consent to under PECR or the ePrivacy Directive. If you remove Google Analytics entirely and have no other tracking, most sites can drop the banner — but that depends on everything else you run, so check with whoever advises you. We are not your lawyer.

How much does the migration cost?

Nothing, on every plan. There is no charge for the volume of history you bring, and no charge for us to run the migration for you — including recreating your goals and checking the result against GA4 before you rely on it.

How much of my Google Analytics history will I actually see?

The last 15 months. That is our retention window and it applies to imported history exactly as it applies to history you collect yourself — the importer will happily pull more, and anything older than the window is stored but not returned by the dashboard or the API.

That is a month longer than a standard GA4 property can be set to keep, so a like-for-like migration loses nothing — and if your GA4 property is still on the 2-month default, you are about to see considerably more history than you do today. If what you need is a multi-year comparison, say so before you migrate rather than after: we would rather lose the sale than have you find out in March.

How big is the script compared with Google Analytics?

1270 bytes gzipped against gtag.js at roughly 145 KB gzipped — about 117 times smaller, measured like for like on 6 September 2026. Exact bytes vary with your GA4 configuration.

Read next

Leaving Google Analytics

Ready

We will do the migration for you

The importer costs nothing on every plan, and you can run it inside the 30-day trial before you are charged for anything. 30 days on the plan you pick. A card is taken up front and charged when the trial ends, unless you cancel first.