Cross-channel ROAS measurement starts outside the platforms
The sum of your platform ROAS figures is always a lie. It may equal CRM-booked revenue by coincidence, but Google Ads, Meta and another channel can each claim the same conversion without enforcing uniqueness between them. The cost is not merely untidy attribution: duplicated revenue protects the wrong spend and distorts board decisions.
Honest cross-channel ROAS measurement must therefore happen outside the advertising platforms.
Google Ads answers whether a conversion meets Google’s attribution rules. Meta answers the same question using Meta’s evidence. Neither system checks whether the other has already claimed that CRM deal.
A buyer might discover a supplier through LinkedIn, return through Meta and convert after a Google search. All three platforms can present a plausible claim. Only one contract was booked.
Platform dashboards are useful evidence, but they are not an accounting system. Our examination of the gap between reported and real Google Ads return applies even more forcefully when several platforms compete for the same deal.
The defensible numerator begins with one row per finance-approved CRM deal. Platform claims are then joined to those rows, conflicts are resolved and every booked pound is counted once.
Platform totals are claims, not accounts.
One month: platform-claimed revenue vs CRM-booked revenue
Take an illustrative UK cyber-security consultancy spending across Google Ads, Meta and LinkedIn. Assume four deals were marked closed-won and finance-approved in April, with no forecast values or future renewals included.
| CRM deal | Booked value input | Platforms claiming the deal | Verified acquisition source |
|---|---|---|---|
| Alpha | £24,000 | Google Ads and Meta | Meta |
| Bravo | £18,000 | Google Ads and LinkedIn | Google Ads |
| Charlie | £12,000 | Google Ads and Meta | Google Ads |
| Delta | £10,000 | Meta | Meta |
The re-runnable arithmetic is:
Input — paid-media spend:
Google Ads £9,000 + Meta £7,000 + LinkedIn £4,000 = £20,000
Input — platform-claimed revenue:
Google Ads £54,000 + Meta £46,000 + LinkedIn £18,000 = £118,000
Input — unique CRM-booked revenue:
£24,000 + £18,000 + £12,000 + £10,000 = £64,000
Double-counted revenue:
£118,000 − £64,000 = £54,000
ROAS using the duplicated platform numerator:
£118,000 ÷ £20,000 = 5.9x
Deduplicated cross-channel ROAS:
£64,000 ÷ £20,000 = 3.2xThe April board comparison is £118,000 platform-claimed vs £64,000 CRM-booked. The corresponding return is 5.9x reported vs 3.2x deduplicated.
Applying the verified sources produces further comparisons: Google Ads falls from £54,000 claimed to £30,000 credited, Meta moves from £46,000 to £34,000, and LinkedIn moves from £18,000 to £0. The overall £64,000 does not change; only its allocation does.
This example deliberately uses booked deals. Open opportunities require a separate method for valuing leads before revenue is booked, not probabilities smuggled into an accounting report.
One deal can fund only one revenue row.
The five-rule deduplication decision hierarchy
CRM and finance own whether revenue exists; acquisition evidence determines its channel label.
Apply this ordered five-rule hierarchy whenever platforms claim the same deal:
- The finance-approved CRM row wins on status and value. A platform cannot create revenue, upgrade an opportunity or overrule a credit note.
- A captured click ID from the original converting session wins the channel. The identifier must persist from lead creation to the CRM deal rather than live only inside an analytics tool.
- When several verified paid touches exist, the last paid click before first CRM lead creation wins. A remarketing interaction after lead creation cannot steal acquisition credit.
- Without a click ID, the original source and medium stored at first lead creation win. Later session data and platform view-through claims rank below that record.
- Without deterministic evidence, the deal becomes “paid — unresolved”. Never force it into the channel with the most persuasive dashboard.
This hierarchy is an acquisition-reporting choice, not a causal claim. Record ten fields for every revenue row: deal ID, net booked value, booked date, lead ID, originating click ID, original source and medium, claiming platforms, winning source, evidence tier and conflict reason.
Reliable capture starts before the CRM join. The mechanics of a sound Google Ads lead-generation programme help create usable identifiers, but Google’s identifier becomes cross-channel evidence only after it maps to a unique deal.
Four publication gates prevent unresolved data becoming false certainty:
- If one deal ID appears in two or more platform exports, count it once and apply the hierarchy.
- If more than 2% of booked revenue lacks a stable deal ID, publish the total but withhold channel rankings.
- If more than 10% of paid-associated booked revenue remains unresolved, freeze channel budget reallocations.
- If claimed revenue exceeds CRM revenue by 5% or £1,000, whichever occurs first, reconcile before issuing the board pack.
Deterministic evidence beats competing platform claims.
Reporting design for cross-channel ROAS measurement
A board should see accounting truth before acquisition interpretation.
Use a five-block monthly report:
- Control block: reporting month, currency, data-freeze date and the exact closed-won status included.
- Outcome block: unique CRM-booked revenue, total paid-media spend and deduplicated cross-channel ROAS.
- Reconciliation block: platform-claimed revenue, credited revenue and variance by channel.
- Evidence block: revenue coverage for deal IDs, click IDs and unresolved sources.
- Decision block: approved budget changes, named owners, deadlines and reasons.
For the illustrative month, the reconciliation block would read:
| Channel | Platform-claimed | Deduplicated credit | Removed duplication |
|---|---|---|---|
| Google Ads | £54,000 | £30,000 | £24,000 |
| Meta | £46,000 | £34,000 | £12,000 |
| £18,000 | £0 | £18,000 | |
| Total | £118,000 | £64,000 | £54,000 |
In our paid-search management, the useful reporting question is whether each Google-claimed deal maps to one CRM row. Google explaining its own number is insufficient. The broader B2B measurement operating model covers ownership and governance; this report has the narrower job of enforcing uniqueness.
Website architecture also determines whether conversion records retain commercial meaning. Three architecture examples make the point: Lanteria routed a broad Microsoft 365 HR offer for several stakeholder audiences; AfriCap Hub separated catalogue, filtering and registration; Lake Erie Shores separated stay and ownership under one site.
Our project case studies document those architecture decisions, not performance figures. Their reporting lesson is straightforward: a registration, ownership enquiry and software demonstration should not arrive in the CRM as three indistinguishable “form submissions”.
A useful report makes disagreement visible before budgets move.
If the path from ad click to signed revenue still has gaps, Actualyse will trace each hand-off with you — book a call
What deduplication does not fix
A perfectly reconciled £64,000 can still be wrongly credited to paid media.
Deduplication reallocates credit; it does not measure whether the spend caused anything. A deal touching Google Ads might have happened through existing demand, a referral or an active sales conversation without that click.
This is confounded by five factors: existing brand demand, outbound activity, partner referrals, sales follow-up and pricing changes. A CRM join records observed interactions, not the outcome in a world where advertising was absent.
The honest limit here is that cross-channel ROAS measurement can establish booked revenue and consistent credit, but it cannot establish causation. That requires a separate incremental question; relabelling attribution does not answer it.
Our double-counting claim is falsifiable: mutually exclusive platform deal IDs whose net total matches finance within £1 would prove no duplication occurred that month. External reconciliation, rather than a platform sum, would still establish that fact.
If one deal contributes more than 25% of monthly booked revenue, prohibit budget changes based on a one-month view; compare one month vs three months and disclose the concentration.
Deduplicated attribution still cannot prove causation.
Four things that do not improve cross-channel ROAS measurement
A prettier dashboard leaves duplicated pounds untouched.
Four popular fixes fail for specific reasons:
- Combining dashboards in Looker Studio copies several claims into one interface. Visual consolidation does not impose a unique CRM deal key.
- Changing attribution models inside Google Ads or Meta redistributes credit inside that platform. Neither setting prevents the other platform claiming the same contract.
- Standardising UTMs without a CRM join produces cleaner source labels but cannot resolve two legitimate-looking claims attached to one buyer.
- Adding decimal places or averaging platform ROAS figures creates false precision. Better arithmetic cannot repair a duplicated numerator.
Reject any dashboard that cannot trace each revenue row to a stable CRM deal ID. If channel allocations differ from the unique CRM total by more than £1 after rounding, the report fails sign-off.
Presentation quality cannot repair duplicated revenue.
FAQ
Refunds, contract values, currencies and late CRM changes require four explicit operating decisions.
How should refunds and credit notes be handled?
Use net booked revenue. A £4,000 credit note tied to Deal 183 must subtract £4,000 from that same deal row and its credited channel. Never create an unlinked negative conversion.
What value should a multi-year contract contribute?
Use finance-approved first-year net contract value and cap the initial acquisition entry at 12 months. An illustrative £3,000 monthly contract contributes £3,000 × 12 = £36,000, not the full £108,000 from a three-year term.
How should deals in different currencies be reconciled?
Convert each deal using finance’s approved month-end GBP rate. If the platform conversion and finance conversion differ by more than 1%, finance wins and the variance enters the exception log.
When should the monthly report close?
Freeze the report on the fifth working day. Restate a closed month only when later CRM changes alter net booked revenue by more than 2%; smaller corrections enter the next report with a note.
Explicit operating decisions keep edge cases out of channel politics.
Summary
Apply these five rules:
- Calculate the revenue numerator from unique CRM and finance records, never summed platform claims.
- Treat any deal appearing in two or more platform exports as duplicated until reconciled.
- Withhold channel rankings when more than 2% of booked revenue lacks a stable deal ID.
- Freeze budget reallocations when unresolved paid revenue exceeds 10% of the booked total.
- Block the board pack when platform claims exceed CRM by 5% or £1,000, whichever occurs first.
Honest reporting starts where platform claims end.
Actualyse builds measurement and attribution setups that tie B2B ad spend to real revenue. Book a call to talk through where yours stands.

