Attribution modelling: how to read the data and decide across platforms
Attribution modelling tells you how many of your conversions each channel actually caused, measured across all your platforms at once instead of taken from each platform's own report. Read it for credited results and their ranges, the cost of the next conversion in each channel and how much headroom each one has left. Then shift budget in steps toward the channels where the next conversion is cheapest.
Key takeaways
- Platforms count overlapping conversions, and they count people who were going to buy anyway. In our demo account they claim 32,715 conversions; the model credits 22,695 to the ads.
- You need daily spend and results for each channel, your real business totals, aggregated GA4 data if you have it and a record of promotions. Cookies and user-level tracking aren't required.
- Compare channels on marginal CPA, the cost of the next conversion. Average CPA only describes what already happened.
- Every figure has a range. Move money where ranges clearly separate, in steps, and give carry-over time to play out before you judge the result.
- Platform attribution is still the right tool inside a platform. Use the model for the split between platforms.
Why your platform numbers never add up
Each ad platform counts the conversions it can tie to its own ads, using its own attribution window and its own rules. Say a customer watches a TikTok video on Monday, scrolls past a Meta ad on Wednesday and clicks a Google search ad on Friday before buying. TikTok, Meta and Google can all claim that sale. So can a search ad clicked by someone who typed your brand name and had already made up their mind.
The platforms are answering a narrower question than you are. Theirs is whether their ads touched a conversion. Yours is what you would lose if you cut the budget.
Add the claims up and you usually get more conversions than the business recorded. In the demo account on our attribution page, Google, TikTok, Meta and LinkedIn claim 32,715 conversions over 90 days. The model credits 22,695 to the ads, so the platform total runs 44% high.
What is attribution modelling?
Attribution modelling is how you split credit for results between the things that might have caused them. There are four common approaches, and each answers a different question.
| Method | Data it uses | Works across platforms? | Best for | Watch out for |
|---|---|---|---|---|
| Rule-based (last click, first click, position-based) | Click paths | Only where one tracker sees every touch | Simple reporting | Credit follows the rule, so views and offline touches get none |
| Platform data-driven attribution | User-level paths inside one platform | No | Bids, audiences and creative inside a platform | Each platform grades its own work, and claims overlap |
| Incrementality tests (holdouts, geo splits) | A test group against a control group | One channel or tactic at a time | Proving a channel causes lift | Slow and costly to run for every decision |
| Modelled attribution (media mix modelling) | Aggregated daily spend and results per channel | Yes | Deciding how much budget each channel gets | Needs history and spend variation; results come as ranges |
This guide covers the last row: a model that reads spend and results over time across every channel and separates the conversions media caused from the ones that would have happened anyway. Most people know it as media mix modelling, and our practical guide to marketing mix modelling covers the statistics behind it (controls, validation, refresh cadence). Here the focus is on reading the output and deciding what to do with it.
Why planners use it
- Budget decisions are made between channels, and each platform's own attribution can only see itself.
- The model estimates incremental conversions, the ones you would lose without the spend. That is the number a budget decision rests on.
- It runs on aggregated daily data, so consent banners, browser restrictions and Apple's app-tracking rules don't erode it the way they erode click paths.
- Every figure comes with a range, which tells you whether a gap between two channels is real or noise.
- Response curves show where each channel starts to saturate, so you can price the next dollar before you spend it.
What data you need
| Input | Grain | Why it matters | Typical source |
|---|---|---|---|
| Spend per channel | Daily, in one currency | The main driver the model measures | Ad platform connections |
| Delivery (impressions, clicks) | Daily, per channel | Separates price changes from reach changes | Ad platform connections |
| Platform-reported conversions | Daily, per channel | The model's starting assumption for each channel (its prior), corrected by the data | Ad platform connections |
| Business totals | Daily or weekly | The real outcome everything is measured against | Shop, CRM or finance system |
| On-site results | Daily, aggregated by source, medium and campaign | Sessions, purchases and revenue the ad platforms can't see | Google Analytics 4 |
| Events calendar | By date | Promotions, price changes, launches, stock-outs and holidays move demand on their own | Your trading and planning calendar |
History and variation count for more than raw volume. The model learns a channel's effect by watching results move when that channel's spend moves. Medusa starts producing useful ranges from about 90 days of daily data, and the ranges tighten as history builds. If a channel's spend has been flat for months, the model can't tell its effect apart from the baseline. A deliberate step up or down for a couple of weeks fixes that faster than anything else.
Business totals anchor everything. Without them the model can only share out the platforms' own unverified total. With them, credit is measured against sales the business actually booked. If you add one input after connecting your ad accounts, add this one.
GA4 fills a gap the ad platforms can't. It records sessions, engagement, purchases and revenue on your own site, broken out by source, medium and campaign, so cost per session and on-site revenue can be compared across channels on the same basis. Medusa reads aggregated GA4 reports only (what we read and why).
How to read the output
Media versus baseline
Start with how total conversions split between media and baseline. Baseline is what you would have sold with the ads switched off, from brand strength, word of mouth, repeat customers and the season. In the demo, media drives 69% of conversions (90% range: 48% to 88%) and baseline covers the other 31%. A big baseline usually means a healthy brand. It also means pausing all media wouldn't send results to zero, and that the media should be judged on its 69%.
Reported versus credited
Next, put each platform's reported conversions beside what the model credits. The ratio between the two, often called incrementality, shows how much of each claim holds up.
| Channel | Spend | Platform-reported | Credited by model (90% range) | Share of the claim that holds |
|---|---|---|---|---|
| $137.8K | 17,560 | 10,005 (689–17,746) | 57% | |
| TikTok | $146.8K | 8,235 | 6,230 (424–12,803) | 76% |
| Meta | $218.0K | 5,330 | 4,871 (116–11,103) | 91% |
| $102.6K | 1,590 | 1,589 (17–3,513) | 100% |
Search usually keeps the smallest share of its claim. It sits closest to the purchase, so it picks up demand that other channels, or the brand itself, created. Google keeps 57% of its claim here and is still the cheapest channel at the margin, so discount its dashboard and keep funding it. Between model refreshes you can apply each channel's ratio to its in-platform numbers, which keeps in-flight optimisation honest.
Average CPA and marginal CPA
Incremental CPA (iCPA) is spend divided by credited conversions, the average cost of a conversion the ads caused. The demo's blended iCPA is $26.67: $605.3K of spend over 22,695 conversions.
Marginal CPA is what the next conversion costs at today's spend. Because of diminishing returns, the next conversion always costs more than the average one. In the demo, marginal CPAs run from $61 on Google to $374 on LinkedIn, all well above the $26.67 average. When you're deciding where the next dollar goes, rank channels by marginal CPA, or by marginal ROAS if you plan to revenue.
Ranges (credible intervals)
A 90% credible interval means the model is 90% confident the true value sits inside it. A narrow range means the data has pinned the figure down, and a wide one means it hasn't yet. Meta's credited conversions in the demo could be anywhere from 116 to 11,103. The 4,871 in the middle is the best guess, and a guess that loose shouldn't move a large budget. When two channels' ranges overlap heavily, treat them as tied until you have more data or a test result.
Carry-over (half-life)
Ads keep working after the day they run. Half-life is how long it takes for half of a day's effect to fade: 2.3 days for Google and about 3.5 for Meta in the demo. A spend change therefore takes several half-lives to show up fully, so don't judge a reallocation the next morning. It also works in reverse. A channel you cut keeps delivering for a few days on its carry-over, which makes the cut look free until the effect runs out.
Saturation and response curves
A response curve plots the results a channel delivers at each level of daily spend. Where it is still climbing steeply there is headroom. Where it has flattened, more money buys very little. Find today's spend on each curve: in the demo, Google spends about $1.6K a day and sits at 46% of saturation, so it still has room to grow.
How to make decisions with it
- Rank channels by marginal CPA. Platform-reported CPA and average iCPA both flatter the channels closest to the sale.
- Move money in steps of 10% to 20% of a channel's budget, from the highest marginal CPA toward the lowest one that still has headroom.
- Act only where the ranges separate. Where they overlap, run a test first (a holdout, a geo split or a planned spend step), which also gives the model the variation it learns from.
- Keep channel roles and constraints in the decision. The model knows nothing about minimum commitments, creative supply or the fact that LinkedIn may be your only route to a B2B buying committee.
- Wait two or three half-lives, then re-read the model and your business totals before taking the next step.
- Write down what you expect each move to deliver and check it afterwards. After a few cycles that record shows how far to trust the model in your account.
Here is a worked example from the demo. At today's margins, moving $10,000 from Meta (marginal CPA $239) to Google ($61) gives up roughly 42 Meta conversions and buys roughly 163 on Google. The real gain will be smaller, because Google's marginal cost climbs as it moves up its curve while Meta's falls as it steps down, and the response curves tell you by how much. Meta's wide range is one more reason to make the move in stages. Our guide on how to allocate a media budget covers the constraints side of the same decision.
Making it work across platforms
Most of what keeps a cross-platform model trustworthy is the same hygiene that makes cross-platform spend tracking reliable.
- Pick one outcome definition. Anchor the model to the business's own count of conversions or revenue instead of six different platform definitions.
- Use one currency, one time zone and one calendar. Misaligned days and exchange rates add noise the model will try to explain.
- Decide once how campaigns roll up into channels (brand and non-brand search usually belong apart) and keep the mapping stable.
- Log structural changes. A new conversion action, a tracking fix or a different attribution window moves platform numbers without moving real sales.
| Question | Use |
|---|---|
| Which ad set, audience or creative inside Meta should get more? | Platform attribution |
| How much should go to Meta versus Google next month? | The cross-platform model |
| Does this channel cause any lift at all? | An incrementality test |
| Are we on track to spend the plan and hit the target this week? | Pacing against the plan, with each platform's numbers read through its credited ratio |
Mistakes we see most often
- Adding up platform-reported conversions and calling it the total.
- Reallocating on average CPA.
- Treating a point estimate as exact when its range is wide.
- Judging a budget change before the channel's carry-over has played out.
- Changing every channel in the same week, so the model can't separate one move from another.
- Running the model without business totals or an events calendar, then reading a promotion as media effect.
Where Medusa fits
Medusa runs a Bayesian media mix model every day on the ad platforms you connect (Google Ads, Meta, TikTok and LinkedIn), with GA4 on-site results and your business totals when you add them. The attribution and analytics page shows what you get: reported against credited for each channel with its range, plus carry-over, saturation and response curves. The model's marginal returns feed budget allocation and the AI recommendations, which rank possible moves by expected impact and show the evidence for each. Nothing changes in an ad account until a planner approves it.
Frequently asked questions
What is the difference between attribution modelling and media mix modelling?
Attribution modelling is the general job of splitting credit for results between channels. Media mix modelling is one way to do it, with a statistical model on aggregated spend and results over time. It works across platforms and doesn't need user-level data, which click-path attribution does.
Which attribution model is best?
It depends on the decision. Platform attribution is best for optimising inside a platform, a cross-platform model for splitting budget between platforms, and an incrementality test for proving that a channel causes lift. Most planners use the model for allocation and the platforms for day-to-day optimisation.
Why don't platform conversions match my shop or CRM?
Each platform counts every conversion it can link to its own ads inside its own window. A customer who touched three platforms is counted three times, and customers who would have bought anyway are counted too. Your shop or CRM counts each sale once.
How much data does attribution modelling need?
Medusa's model gives useful ranges from about 90 days of daily data, and the ranges narrow with more history and more variation in spend. Trust each figure in proportion to how narrow its range is.
How does GA4 help attribution?
GA4 adds what happens on your own site: sessions, engagement, purchases and revenue by source, medium and campaign. That lets you compare cost per session and on-site revenue across ad platforms on the same basis. Medusa reads aggregated GA4 reports only, never user-level data.
Should I stop using platform attribution?
No. Platform attribution is still the best signal for bids, audiences and creative inside a platform. Read its numbers through the model's credited ratio, and let the model decide how budget is split between platforms.