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
- 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 - 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 - 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 - 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.
| 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
- How to judge a Google Analytics alternativeEight questions that name nobody, and five reasons to stay where you are.
- What is a good bounce rate?GA4 redefined it, and most advice online describes the old number.
- How to check website trafficYours can be counted exactly. Everyone else’s can only be modelled.
- Your first week after switchingWhat to expect in the seven days people decide whether to trust it.
- What counts as a visitPageviews, visits, visitors and events, defined exactly.
- Why two analytics tools never agreeFive reasons the same site reports different numbers in different tools.
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.