Growth
GA4: Migrate Angry, But Migrate
Let us start with the two sentences every marketing team needs on a whiteboard. Universal Analytics stops processing data on July 1, 2023. Whatever you have not built in GA4 by then does not have year-over-year comparisons in Q4 2023.
That second sentence is the one that should scare you. Analytics without a prior-year baseline is a speedometer with no speed limit signs, and next year's holiday season is when you will feel it. Which means the real migration deadline is not next July. It was roughly this summer, and if you have not started, you are now spending your comparison data.
Yes, GA4 deserves some of the anger
I will not insult anyone by pretending this is a simple upgrade. GA4 is a different product wearing the same brand. Sessions are reconstructed differently, bounce rate is gone in favor of engagement rate, the interface buries reports that used to be one click away, and longtime power users are rightly annoyed that a tool they had a decade of muscle memory in has been retired for one that feels perpetually in beta.
The event-based model underneath is genuinely better. Everything is an event with parameters, which matches how modern products actually work, and the BigQuery export on the free tier is quietly the biggest gift in the whole package. But better architecture does not make the migration experience less painful. Migrate angry. Just migrate.
The order of operations
Having now run several of these migrations this year, here is the sequence that works:
- Run dual-tagging immediately. GA4 alongside UA, today, even with default settings. Every week of parallel data is a week of baseline you cannot buy back later. This is the single non-negotiable.
- Rebuild your measurement plan before your tags. Do not port UA events one-to-one. List the fifteen business questions the data must answer, design GA4 events and parameters for those, and let the legacy taxonomy die. Most UA configurations are archaeological sites, layers of tracking nobody remembers commissioning.
- Reconcile expectations, not numbers. GA4 and UA will not match, structurally cannot match, and chasing parity is a hobby, not a project. Document the expected deltas once, brief stakeholders once, and move on.
- Turn on the BigQuery export now even if nobody queries it yet. It only collects going forward, storage is nearly free at this scale, and future-you will be grateful.
- Rebuild reporting outside the interface. The honest workaround for GA4's UI is to treat it as a data collection layer and do the actual reporting in Looker Studio or your warehouse. Teams fight the interface for months before accepting this. Skip the fighting.
The bigger picture
It is worth saying plainly why Google is forcing this. The cookie-rich, session-based measurement world UA was built for is being dismantled by privacy regulation, browser changes, and the post-ATT signal drought we have written about before. GA4, with its modeling and event architecture, is Google's bet on measurement under permanent uncertainty.
That context matters because it reframes the migration. This is not a software upgrade to grumble through. It is the visible edge of the same shift reshaping all measurement: less raw truth, more modeled inference, and a premium on teams who understand what their numbers actually mean.
The teams treating GA4 as an annoying IT ticket will limp into next year with broken baselines. The teams treating it as a forced-but-useful rethink of what they measure and why will end up, grudgingly, better off. Be the second team. You are allowed to grumble the whole way.
Building something this could apply to?
We take on a small number of flagship projects each quarter.
Start a project