GA4
Google Analytics 4
Google current analytics platform, built on events rather than sessions.
Everything in GA4 is an event with parameters, including page views. It replaced Universal Analytics, which stopped processing data on 1 July 2023, and the change in data model means comparisons across that boundary are not like for like.
Key takeaways
- Events and users, not sessions and pageviews. Almost every metric changed definition at once, so charts crossing July 2023 join two different measures with a line.
- The free tier keeps event-level data for 14 months at most. Longer needs a BigQuery export set up in advance, and it is not retroactive.
- Reports withhold rows when the numbers are small enough to identify somebody, which is why a total sometimes exceeds the sum of its breakdown.
- GA4 conversions and Google Ads conversions count different things over different windows. Never add them.
- Turn on BigQuery at kickoff. It is the only version of that decision that can be made in time.
Why the numbers all moved at once
Universal Analytics organised the world around sessions and pageviews. GA4 organises it around events and users, and applies its own identity resolution across device, user ID and modelling on top. That is not a refinement of the old model, it is a different one.
The consequence is that metrics sharing a name across the two products are not the same measurement. Bounce rate changed from single-page visits to the inverse of engagement. Sessions stopped restarting when the campaign source changes mid-visit. Users are resolved differently. Conversions count every occurrence rather than one per session.
So a chart that runs across July 2023 is two datasets joined by a line, and any year-on-year comparison spanning it is comparing instruments rather than performance. Presenting that difference as a result, in either direction, is the single most common GA4 reporting error.
The practical handling is to draw the line explicitly. Annotate the migration date on every chart that crosses it and state the comparison window in the commentary. A client who can see where the instrument changed stops reading the step as a change in the business.
Fourteen months, and the decision you cannot make later
The free tier retains event-level data for a maximum of fourteen months, and the default when a property is created is two months. Aggregated reports keep working past that; the underlying events, the ones needed for any analysis nobody anticipated, do not.
This is the one GA4 setting with an irreversible consequence. A client asking in year two for a three-year comparison, or for a cohort analysis nobody imagined at kickoff, cannot have it unless the export was configured in year one. There is no way to recover data that was never retained.
The BigQuery export is the answer and it is free to configure, with storage and query costs that are negligible at the volumes agency clients produce. The barrier is not cost, it is that nobody sets it up before it is needed, and by then the window has closed.
The first thing to do on inheriting a GA4 property is therefore to check two settings: retention, which is often still on the two-month default, and whether BigQuery is linked. Both take a minute and both become impossible to fix retrospectively.
Sampling, thresholding, and totals that do not add up
GA4 withholds rows when the numbers behind them are small enough that an individual could be identified, particularly when Google Signals is enabled. The report does not error or warn prominently; the rows are simply absent.
The visible symptom is a total that is larger than the sum of the breakdown under it. A client who spots that reasonably concludes the tracking is broken, and it is not: the platform has removed the small rows on purpose.
It bites hardest exactly where agencies do their most detailed work, which is segmented reporting on smaller accounts. Demographic breakdowns, small geographies and narrow date ranges are the ones most often thresholded, and those are the slices a monthly report is built from.
Two things reduce it. Widening the date range increases the numbers behind each row, and turning Google Signals off removes the reason for much of the thresholding, at the cost of the demographic and cross-device reporting it provides. Which trade to make is a client decision rather than a technical one, and it is worth making deliberately rather than discovering it in a meeting.
GA4 conversions and ad platform conversions
A GA4 key event and a Google Ads conversion measure different things, and the gap between them is a recurring and entirely avoidable client conversation.
They differ on attribution, since GA4 applies its own model across all channels while Google Ads credits its own click. They differ on window, since the ad platform counts a conversion back to the date of the click and GA4 counts it on the date it happened. And they differ on scope, since Google Ads includes conversions it modelled for users it could not observe.
The result is two defensible numbers that never match. Neither is wrong, and trying to reconcile them to a single figure is a project that produces nothing.
What works is to decide, per client, which number is the one decisions are made on, say so once in writing, and report it consistently. Showing both without explanation invites the client to average them, and switching between them, especially when one looks better, is how an agency loses an argument it was winning.
What it means for an agency
Turn on the BigQuery export at kickoff even if nobody has asked for it. It costs almost nothing at agency-client volumes and it is the only version of this decision that can be made in time.
Where it goes wrong
- Comparing GA4 against Universal Analytics history and presenting the difference as performance.
- Reporting a GA4 conversion count next to a platform conversion count without saying they use different attribution.
- Leaving retention on the two-month default, which quietly destroys the data a later question would have needed.
- Treating a thresholded breakdown as a tracking fault and spending a day looking for a bug that is not there.
In short
Most GA4 problems in agency work are not analysis problems, they are setup problems from a day when nobody was paying attention. Retention, the BigQuery link, and which conversion number the client is judged on are three decisions that take ten minutes at kickoff and cannot be made later.
Frequently asked questions
Why do my GA4 numbers not match Universal Analytics?
Because the two use different data models rather than different settings. UA counted sessions and pageviews; GA4 counts events and users, resolves identity differently, and redefined bounce rate, sessions and conversions in the process. Metrics that share a name are not the same measurement, so a chart crossing July 2023 joins two instruments with a line rather than showing a change.
How long does GA4 keep data?
Event-level data for fourteen months at most on the free tier, and the default on a new property is two months. Aggregated reports continue past that, but any analysis needing the underlying events does not. The BigQuery export removes the limit, costs very little at agency volumes, and is not retroactive, which makes it a kickoff decision rather than one you can take when somebody asks.
Why does my GA4 total not equal the sum of the rows?
GA4 withholds rows when the numbers behind them are small enough that an individual could be identified, especially with Google Signals enabled. Nothing is broken. It bites hardest on segmented reporting for smaller accounts, which is exactly what a monthly report is made of. Widening the date range or turning off Google Signals both reduce it, with different trade-offs.
Why does GA4 report fewer conversions than Google Ads?
Different attribution, different windows and different scope. Google Ads credits its own click, counts the conversion back to the date of that click, and includes modelled conversions for users it could not observe. GA4 applies its own model across all channels and counts on the date the action happened. Both are defensible and they will not reconcile, so pick the one decisions are made on and report it consistently.
Related terms
- Key eventAn event in GA4 marked as one that matters to the business.
- SessionA single visit to a site, bounded by time and inactivity.
- AttributionDeciding which marketing touchpoints get credit for a conversion.
- UTM parameterA tag added to a link so analytics can credit the right campaign.
- Conversion trackingThe wiring that tells a platform an action happened.
Sources
Last reviewed
Keplent keeps track of these for you.
It holds what each client agreed to, watches what their campaigns actually did, and tells you in plain sentences what needs you this week.
Join the waitlist