Insight

Why your Google Analytics data is probably wrong after the GA4 migration

Universal Analytics stopped collecting data on 1 July 2023. Most Australian businesses migrated to GA4 under time pressure, with a vendor or in-house team running a one-to-one port rather than a re-implementation. The result, almost everywhere: GA4 setups that technically work, but don't measure what the business thinks they're measuring.
Laptop displaying Google Analytics in a modern workspace, highlighting digital analytics and technology.

If the numbers have stopped making sense, there's a reason. Usually several. This article walks through why that happened, what typically breaks, and how to tell if your own setup is drifting. If you'd rather someone else run the full audit, the analytics and tracking audit page covers scope and pricing, but most teams with a competent in-house marketer can diagnose a lot of this themselves.

Why GA4 wasn't a version upgrade

This is the bit that catches people out. Universal Analytics and GA4 look similar in the interface. They share a login, a brand, and a rough mental model. Under the hood they're different products.

Universal Analytics was session-based. A user lands on your site, accumulates hits inside a session, and the session eventually times out. Reports aggregate at the session level. Goals are tied to pageviews or event triggers, and attribution runs off last-click by default.

GA4 is event-based. Everything is an event: page views, clicks, scrolls, form submits, video plays. Sessions are derived from events, not the other way around. Conversions are events marked as "key events", attribution is data-driven by default, and the reporting layer rebuilds itself around whatever events you're capturing.

Different model, different implementation approach. A one-to-one port from UA to GA4, which is what most rushed migrations did, is the wrong default. You end up with events named in UA conventions, conversions that fire at the wrong moment in the journey, and attribution settings that assume a volume of conversions most mid-market sites don't have.

Let's be honest: most agencies that did the migration knew this. The timeline didn't allow for a proper re-implementation, the client didn't want to pay for one, and the compromise was "get something flowing by the deadline and revisit later". Later is now.

What typically breaks in a rushed migration

Six patterns show up in almost every post-migration audit.

Event naming inconsistency. UA events like Category > Action > Label got ported straight into GA4 without adopting the recommended event naming schema. Google's recommended events list is the baseline. If your events don't match the recommended names, some of GA4's automatic reports stop working.

Conversions double-counted or missing. Multiple triggers in Google Tag Manager firing the same conversion event. Or the conversion fires on page load of the thank-you page, but the thank-you page is a modal not a URL change, and nothing fires at all. Both happen constantly.

Cross-domain tracking broken. If you send users between a marketing site and a booking platform on different domains, cross-domain configuration has to be set on both the GA4 property and the GTM container. Most ported setups lost this in translation and now show every redirect as a brand new session.

Ecommerce parameters missing. The purchase event should pass items, value, currency, transaction_id, and a handful of optional fields. Plenty of setups pass the event without the item array, or with revenue in the wrong field. GA4 revenue ends up nowhere near the order system.

Attribution defaults that don't reflect reality. GA4 defaults to data-driven attribution, which requires meaningful conversion volume to model properly. Low-volume sites see noisy, unstable attribution that changes month to month for no real reason. Switching to last-click or a position-based model often gives more honest numbers for smaller businesses.

Data layer gaps. The data layer was built for UA's needs and never refactored. Fields that GA4 wants don't exist. Fields UA wanted are still firing into nothing. GTM fills the gap with custom JavaScript variables, which silently fail when someone ships a template change.

How to tell if your GA4 setup is broken

You don't need a consultant to diagnose this. Five questions will get you a long way:

  • Do GA4 conversions reconcile with your CRM or order system within a few percent?
  • Do the channel groupings tell a consistent story month to month, or are "direct" and "unassigned" doing suspicious work?
  • Are key events firing consistently across browsers and devices when you test them?
  • Can anyone on the team explain, without flinching, exactly when each conversion fires in the user journey?
  • Is your leadership actually using the GA4 dashboards, or have they quietly moved to spreadsheets?

If you answer "no" or "not sure" to more than two of those, something in the setup has drifted.

A free check you can run yourself: install the Google Tag Assistant Chrome extension, browse your site like a user, and watch what fires. If you see conversions firing twice, firing on the wrong page, or not firing at all, you've already found something.

What unreliable data actually costs you

This is the part most businesses underestimate. The cost of broken analytics isn't the broken analytics. It's the decisions that compound on top of it.

Marketing spend gets routed to the wrong channels because attribution is lying to you. SEO wins get credited to paid search, or vice versa, and next year's budget allocation reflects the lie. Campaign decisions get made on noise instead of signal. A genuinely working channel gets killed because last-month's numbers looked soft. Leadership slowly stops trusting the dashboard and starts running the business on gut. By the time someone notices, you've made a year of small wrong-direction decisions that now need unwinding.

The fix is cheaper than the compounding cost of the status quo. Almost always.

What a proper GA4 audit looks like

If you're going to pay for this or run it internally, here's the scope that actually catches everything.

GA4 property configuration review. Data streams, data retention, user-ID setup, reporting identity, IP anonymisation, Google Signals, internal traffic filters, unwanted referrals.

GTM container review. Tag structure, trigger logic, variable cleanliness, sequencing, whether anyone has permission to publish and whether they should.

Event and parameter audit. Every event, checked against the recommended events list. Every parameter, checked against what GA4 expects. Every key event, checked end-to-end.

Conversion reconciliation. GA4 conversions compared against the CRM or order system over a 30-day window. The gap should be within a few percent. If it isn't, that's the first thing to fix.

Attribution model review. Which model is appropriate for the business's conversion volume, and does the current default make sense.

Data layer audit. What's being pushed, when, and whether it matches the tagging plan. If there's no tagging plan, writing one is part of the job.

Reporting layer review. Looker Studio dashboards, native GA4 reports, and any custom reports. Whether they're being used and whether they reflect the metrics the business actually makes decisions on.

Remediation plan, ranked by impact and effort. The output is a prioritised list, not a dump of findings. The cheapest high-impact fixes should be doable in a week.

For the specifics of GA4 and GTM configuration, Simo Ahava's blog is the reference most analytics practitioners use. If you prefer video, MeasureSchool on YouTube is the most accessible entry point for getting hands-on with GTM.

How long a remediation actually takes

Rough brackets based on what I've seen:

  • Small mid-market sites, no ecommerce, one property: 2 to 4 weeks end to end.
  • Sites with ad platform attribution and ecommerce: 4 to 8 weeks, including time for data to backfill so you can validate the fix.
  • Sites with CRM and marketing automation integration (Salesforce, HubSpot, Pardot, Marketo): 6 to 12 weeks, because reconciling the website event layer with the CRM record is where the real work sits.

The variable is almost never GA4 itself. It's how many downstream systems depend on what GA4 is sending.

What to ask for in a remediation quote

If you're briefing an analytics consultant or agency, here's a checklist you can lift directly:

  • A documented tagging plan, not just an updated GTM container.
  • Conversion reconciliation against your CRM or order system as part of the deliverable.
  • Event naming that follows the GA4 recommended schema, documented.
  • Attribution model selected with reasoning, not defaulted.
  • Looker Studio dashboards rebuilt around the new event model (or a clear statement that they're out of scope).
  • A handover document an in-house marketer can actually use.
  • A 30-day post-remediation validation window included in the price.

If a quote skips two or more of those, you're paying for the configuration, not the outcome.

Where to from here

If you've got a competent analyst in-house, a free weekend and Tag Assistant will tell you most of what you need to know. Google's Analytics Academy is free, official, and underrated. Start there.

If the issue is that nobody internal owns this, or the stakes are high enough that you want a second pair of eyes from someone who's done this across a lot of sites, the analytics and tracking audit is scoped for exactly that. Fixed scope, fixed price, remediation plan at the end.

The real cost is the decisions you're making today on top of numbers you don't fully trust. Fixing that is cheaper than letting it run.

Book a discovery call →