Almost every attribution conversation we have with a new client starts the same way: a screenshot of a GA4 conversion report, and a question about why the numbers do not match the ad platforms. The honest answer is that they were never going to match, and that the gap is not an error to be closed but a fact to be understood.

Here is what the default reports are doing, what they are quietly leaving out, and how we set up measurement so that the numbers can be trusted to make decisions with.

The model is not neutral

GA4’s default attribution is data-driven, which sounds like it means “objective” and actually means “a model trained on your property’s own conversion paths”. Two properties with identical traffic and different conversion volumes will assign credit differently. That is by design, and it is defensible, but it means your attribution is not comparable to anyone else’s — and often not comparable to your own from twelve months ago.

Meanwhile, the ad platforms are reporting on their own view-through and click-through windows, using their own identity graph, and counting a conversion the moment they believe they influenced it. Neither party is lying. They are answering different questions.

What is missing from the default view

  • Consent-declined sessions. Depending on your market and your banner, somewhere between five and forty percent of sessions may never be measured at all. Modelled conversions fill part of the gap, and the modelling is not visible in the report.
  • Cross-device journeys. Without a stable user identifier, a researcher on mobile and a buyer on desktop are two people. Enabling user-ID measurement is the single highest-value change most properties can make.
  • Lookback truncation. The acquisition lookback window has a hard limit. Any consideration cycle longer than it will systematically over-credit the last channel touched — which, for most businesses, means brand search takes credit for work paid social did.
  • Offline revenue. If deals close in a CRM, GA4 sees a form fill and stops. The gap between a lead and a signed contract is where all the interesting variance lives.

Your dashboard is not measuring reality. It is measuring the part of reality your tracking setup was able to observe, filtered through a model you did not choose.

— Maya Bennett, Head of Analytics at Marrky

The setup we use

Four changes, in order of return on effort.

Send a user ID. If you have authenticated users, pass a hashed, stable identifier on every event. This does more to repair cross-device journeys than any modelling adjustment, and it is usually a day of engineering work.

Import revenue, not conversions. Push closed-won values back from the CRM against the original session identifier. A lead is a proxy; revenue is the thing. Channels routinely swap rank when you make this change, and the ones that fall are usually the ones the team was proudest of.

Keep a raw export. Stream events to a warehouse. The interface’s models are convenient and lossy; the export is the record you can re-query when somebody asks a question the interface cannot answer. It costs very little and it has saved every client we have set it up for at least one expensive argument.

Run holdouts. Once a quarter, turn a channel off in a matched set of regions and measure the difference in total revenue. It is the only method on this list that answers whether the spend is doing anything, and it is the one teams avoid because it feels like deliberately losing money. It is cheaper than a year of misallocated budget.

Reading the report properly

Three habits make the default reports considerably more useful without any new tooling. Compare channels to their own history rather than to each other, because the model treats them differently. Look at conversion paths, not just last touch, and specifically at how often a channel appears anywhere in the path versus how often it appears last — a channel that shows up constantly and closes rarely is doing real work the report is hiding. And check the modelled versus observed split before quoting any number in a board meeting.

What to tell your leadership

The most useful framing we have found is to stop presenting attribution as a measurement and start presenting it as an estimate with a stated method. “Paid social was credited with £180,000 under a data-driven model with a thirty-day window; our holdout test in March suggested the incremental figure is closer to £130,000” is a sentence that survives scrutiny. A single number with a decimal place does not.

Nobody expects marketing measurement to be exact. They expect it to be honest about its own uncertainty, and to be consistent enough that a change in the number means a change in the business. Get those two things right and the reporting stops being a defence exercise and starts being a planning tool.

The three questions a good setup can answer

A measurement stack is finished — as finished as these things get — when it can answer three questions without a week of analysis.

Which channels are worth more budget next quarter? This needs incrementality, not attribution. Attribution will happily tell you that brand search deserves more money, which is true only in the sense that a receipt deserves credit for a purchase.

Which campaigns inside a channel should be turned off? This is the one job platform attribution does well. Inside a single ad account, with a consistent model and a consistent window, relative comparisons are reliable even when absolute numbers are not.

What actually happens between first touch and closed deal? This needs the warehouse export and the CRM import. It is where you discover that your average consideration cycle is ninety days and your lookback window is thirty, which explains rather a lot.

Common failure modes

  • Rebuilding the model every time the number is disappointing. If the methodology changes whenever the result is unwelcome, the reporting has become advocacy.
  • Trusting a channel’s own dashboard for its own budget. Every platform is incentivised to claim credit. Use their numbers to optimise within the channel and your own numbers to decide how much the channel gets.
  • Ignoring the consent gap. Teams sometimes discover, two years in, that a third of their European traffic was never measured. Check the observed share early; it changes how much confidence any of the rest deserves.
  • Reporting weekly on a ninety-day sales cycle. The noise will exceed the signal every time, and the team will spend its meetings explaining randomness.

Start here

If you do one thing this month, import closed revenue against the original session. It is not the most sophisticated item on the list, and it will change your channel rankings more than everything else combined.

Then, next quarter, run one holdout. Pick the channel your team is least certain about, choose a set of regions matched on historical revenue, and switch it off for four weeks. You will get an argument about it, and the argument itself is useful: the objections people raise will tell you exactly which assumptions the current plan is resting on.

Everything else on this page is refinement. Those two changes are the ones that reliably move a marketing team from defending its numbers to using them.