- Google, Meta and other platforms each count conversions with their own windows and data, so the same sale is often claimed more than once.
- Start from the sales your CRM or finance system recorded, match each one to the clicks before it, then compare that with what each platform claims.
- Attribution models (last click, data-driven, multi-touch) only divide up credit; incrementality tests show whether a channel caused the sales at all.
- Judge each channel on reconciled gross profit, and send real sales back to Google and Meta so they optimise on what actually happened.
Cross-channel attribution is how you decide which ads and channels earned a sale when a customer met several of them on the way. Google, Meta and every other platform answer that question separately, each with its own rules and its own data, so the same sale is often counted more than once. The practical fix is to start from the sales your CRM, booking system or finance records actually show, match each one back to the spend that touched it, and test your biggest channels for incrementality.
What cross-channel attribution is, and what it is not
Inside one ad platform, attribution is easy: Google Ads credits Google ads and Meta credits Meta ads. Cross-channel marketing attribution asks the harder question across all of them: of the sales you made last month, which channels deserve the credit, and what did each pound return?
It is not the same as adding up the dashboards. Each dashboard is a claim made by the party being paid, so a real cross-channel view starts from one record of what was sold and works backwards.
Why Google and Meta both claim the same sale
Take a customer who clicks a Meta ad on Monday, searches your brand name on Thursday, clicks a Google ad and buys. Meta counts the sale because it fell inside its attribution window. Google counts it because the last click was a Google ad. Your CRM recorded one sale. Both platforms are following their own rules correctly; they simply cannot see each other.
Five differences widen the gap:
- Different windows. Google Ads counts a conversion up to 30 days after a click by default (Google Ads Help). Meta counts conversions inside the attribution setting chosen for each ad set, such as 7 days after a click or 1 day after a view (Meta Business Help Centre).
- Views as well as clicks. Meta can credit a sale to someone who saw an ad and never clicked. Your CRM has no way of seeing that view.
- Modelled conversions. Where UK visitors decline cookies or tracking is blocked, both platforms estimate conversions they cannot observe, so part of every report is an estimate.
- Different dates. Google Ads reports a conversion against the date of the ad interaction unless you add the "by conversion time" columns, while your CRM records the date of the sale (Google Ads Help). Month-end totals rarely line up.
- Different values. A platform records whatever value the tag sent, often the basket total including VAT and before refunds or cancellations.
Marketers know this. In Affinity Solutions' 2026 survey of more than 200 senior brand and agency marketers, mainly in the US, 91% said they believe their platform results are overstated (Affinity Solutions). Few can check: Salesforce's State of Marketing 2026 found only 51% of the 250 UK marketers surveyed have complete access to sales data (Salesforce).
The main attribution models, compared fairly
An attribution model is the rule for splitting credit between the touchpoints before a sale. Each answers a slightly different question.
| Model | How it splits credit | Useful for | Blind spot |
|---|---|---|---|
| Last click | All credit to the final click before the sale | Seeing what closes sales; easy to audit | Over-credits brand search and retargeting; ignores what created demand |
| First click | All credit to the first click | Seeing what introduces new customers | Ignores everything that persuaded them afterwards |
| Linear | Equal credit to every touchpoint | A neutral starting point for long journeys | Treats a passing impression the same as a decisive search |
| Time decay | More credit to touchpoints closer to the sale | Short buying cycles with a clear final push | Undervalues early awareness work |
| Position-based | Most credit to the first and last touch, the rest shared | Valuing both the introduction and the close | The split (often 40/20/40) is a convention, not evidence |
| Data-driven | Credit estimated by a model from converting and non-converting paths | Accounts with plenty of conversion data | Sees only the journeys that platform can track; hard to audit |
Two things have changed. First, Google has retired most rules-based models: Google Ads now supports only last click and data-driven, and conversion actions that used first click, linear, time decay or position-based were moved to data-driven (Google Ads Help). GA4 offers data-driven, paid and organic last click, and Google paid channels last click (Analytics Help).
Second, a multi-touch attribution model has to follow one person across every channel, and consent rules, browser privacy changes and platforms that keep user-level data to themselves make those journeys patchy. It still helps high-volume online businesses, but it is no longer a complete answer.
Incrementality: the question attribution cannot answer
Every model above divides up credit for sales that happened. None asks whether they would have happened anyway. That is incrementality: the sales a channel caused, measured against what would have happened without it. A customer who was always going to type your brand name into Google will be credited to your brand search ad under almost any model.
| Method | How it works | What it needs | Watch out for |
|---|---|---|---|
| Platform lift study | The platform withholds ads from a control group and compares conversions (Google and Meta both call theirs Conversion Lift) | Enough conversions; for Google, access through your account representative (Google Ads Help) | The platform designs and marks its own test |
| Geo holdout test | Pause or cut a channel in some regions, keep it in matched regions, and compare sales in your own records | Several comparable regions, a few weeks, and sales data by location | Regional events, stock or price changes that muddy the result |
| On and off test | Pause one campaign, such as brand search, for a set period and watch total sales | A steady baseline and clear start and end dates | Seasonality, and competitors bidding on your name while you are off |
| Marketing mix modelling | A statistical model of how weekly sales move with spend by channel, price and season. Google's Meridian is an open-source example. | A long run of weekly spend and sales history | Needs analyst time; answers come as ranges, not exact figures |
Meta has also added an incremental attribution setting in Ads Manager, which aims to count only the conversions its models estimate the ads caused, rather than every conversion inside the window. It is useful for comparing Meta campaigns with each other. It is still Meta's estimate of Meta's own effect, so it does not settle how to split a budget between Meta and Google.
Be realistic about scale: a lift test needs enough conversions in both groups to beat ordinary week-to-week noise. At £5,000 to £20,000 a month, a clean monthly reconciliation and one well-designed geo or on and off test a year often teach more than attribution software.
Worked example: reconciling Google and Meta against the CRM
This example uses made-up numbers to show the method. Say a retailer with two brands spends £30,000 in a month: £18,000 on Google Ads and £12,000 on Meta. Its gross margin, after the cost of goods, delivery and payment fees, is 45%.
Step 1: write down what each source claims
| Source | Sales | Revenue | Ad spend | ROAS |
|---|---|---|---|---|
| Google Ads (data-driven, 30-day click) | 260 | £98,000 | £18,000 | 5.4 |
| Meta (7-day click or 1-day view) | 190 | £71,000 | £12,000 | 5.9 |
| Platforms added together | 450 | £169,000 | £30,000 | 5.6 |
| CRM, every source, net of refunds and VAT | 330 | £118,000 | £30,000 | 3.9 |
The platforms claim 450 sales between them; the CRM recorded 330 from every source, including organic search, email and repeat customers. The ads are being credited with 120 more sales than the business made, before anything else gets any credit. The last row, total revenue divided by total ad spend, is a blended check that cannot be double counted.
Step 2: match each CRM sale to the clicks before it
For each order or enquiry, the CRM should hold the Google click ID (gclid), the Meta click ID (fbclid) and the UTM tags captured when the customer arrived. Matching on those sorts every sale into one of four groups.
| CRM sales with | Sales | Revenue |
|---|---|---|
| A Google click only | 120 | £44,000 |
| A Meta click only | 55 | £19,000 |
| Both a Google and a Meta click | 60 | £23,000 |
| No paid click found (organic, direct, email, referral) | 95 | £32,000 |
| Total | 330 | £118,000 |
Step 3: agree a house rule for shared sales
Sixty sales had both a Google and a Meta click. No rule is correct, so pick one, write it down and apply it every month to every agency. Here they are split evenly; a business that values introductions more might give the first click 60%.
| Channel | Ad spend | Platform ROAS | Reconciled revenue | Reconciled ROAS | Gross profit after ad spend (45% margin) |
|---|---|---|---|---|---|
| Google Ads | £18,000 | 5.4 | £55,500 | 3.1 | £6,975 |
| Meta | £12,000 | 5.9 | £30,500 | 2.5 | £1,725 |
Both channels make money on this view, but far less than the dashboards suggest, and Meta's reconciled ROAS of 2.5 sits only just above the break-even ROAS of 2.2 that a 45% margin implies (our guide to what a good ROAS is shows how to work that out).
Step 4: explain the gaps before acting on them
Google claimed 260 sales and 180 carry a Google click in the CRM. Meta claimed 190 and 115 carry a Meta click. The differences usually come from a short list:
- View-through conversions, which the CRM cannot see (mostly Meta)
- Modelled conversions for people who declined tracking
- A conversion tag firing twice, or a form start or basket add counted as a sale
- Refunds, cancellations and unqualified leads the platform still counts
- Timing differences between click date and sale date
- Click IDs that a form, call tracker or checkout failed to pass into the CRM
Lost click IDs are a data gap you can fix. Views and modelled conversions are where incrementality matters: before cutting Meta because the CRM cannot see its views, run a geo holdout test and find out what those views are worth.
Step 5: act on it
Set next month's budgets on the reconciled, gross-profit view, not on either dashboard. Then send the CRM's real sales back to Google and Meta so their bidding learns from actual sales. Our guide to offline conversion tracking covers how.
How to measure marketing attribution every month
- Choose one record of sales: the CRM, booking system or finance ledger, net of refunds, cancellations and VAT.
- Capture the click at the door: gclid, fbclid and UTM tags stored against every form, call, booking and order.
- Export platform conversions on the same basis: same dates, same conversion actions, ex VAT.
- Match each sale and apply your house rule to shared ones.
- Compare claimed with matched by channel, brand and ad account, and investigate any gap that moves sharply.
- Judge on gross profit: reconciled revenue times margin, minus spend.
- Test and feed back: test the biggest channel for incrementality once or twice a year, and send sales back to Google and Meta through offline conversion imports and the Conversions API.
The main marketing attribution challenges, and how to fix the data gaps
Most attribution problems are data problems first:
- Every agency reports its own channel. The search agency quotes Google's numbers, the social agency Meta's, and nobody owns the total. Fix: one reconciliation and one house rule for everyone.
- Sales happen offline. Phone orders, in-branch sales and quotes that close weeks later never reach the platforms. Fix: record the source in the CRM and import the outcome.
- Click IDs get lost. A new form, booking widget or checkout often drops them. Fix: test the capture whenever a page changes, and alert when the share of sales with a known source falls.
- Several brands and ad accounts. One customer can be counted by two brands' accounts. Fix: match at customer level across the group.
- Spreadsheets. Monthly copy and paste is slow and breaks quietly. Fix: automate the joins once the method is agreed.
Orion's demo, on sample data, shows how quietly a gap can open. In it, a site's new booking form stopped Meta's Conversions API Lead event firing. Meta lost the signal and optimised blind, and cost per booking rose. The problem showed up by comparing what Meta reported with what the CRM recorded, not in Meta's own dashboard. Explore the demo to see how it was spotted.
Spreadsheets, dashboards, attribution software or a built view?
Each has a place; the test is whether it starts from your recorded sales or from platform claims.
- A spreadsheet is enough for one brand, two channels and a monthly check, if someone owns it. It struggles with several accounts, weekly decisions and order-level matching.
- Data Studio (formerly Looker Studio) or Power BI with connectors (Supermetrics-style tools) put platform numbers side by side quickly and cheaply. Side by side is not reconciled: unless the CRM is joined at order level, you are still adding up claims.
- Multi-touch attribution software suits high-volume businesses that sell mostly on their website. It is weaker where sales close offline or many visitors decline tracking, and still needs incrementality tests alongside.
- A view built on your CRM and finance data reconciles every sale automatically, by brand, location and channel, with every sale tied to the pound that bought it. Cross-channel attribution AI, such as an assistant you can question in plain English, helps on top, but only as well as the joined data underneath allows.
Where to start
Run the five steps above on last month's numbers, even roughly. If the platforms claim more sales than you made, you have your answer on double counting. If you would rather have it done for you, Orion's diagnostic reconciles ad spend against invoices and results across every brand and account, and puts a cost on each finding. Book a diagnostic call to talk it through.
See it on a sample business
Orion joins every channel, brand and account into one live view, judged on profit. Open the platform on sample data, or book a 30-minute call about your own numbers.
Questions people ask
What is cross channel attribution?
Cross-channel attribution decides which channels earned a sale when a customer met several of them, such as a Meta ad, then a Google search, then an email. Each ad platform attributes sales to itself by its own rules, so a real cross-channel view starts from the sales your CRM or finance system recorded and matches each one back to the spend that touched it.
How do you measure marketing attribution?
Pick one record of sales, net of refunds and VAT. Capture click IDs and UTM tags on every form, call and order. Match each sale to the clicks before it, apply a written rule for sales that several channels touched, and compare the result with what each platform claims. Judge channels on gross profit, and test the biggest one for incrementality once or twice a year.
How do you fix data gaps that hurt attribution?
Most gaps come from click IDs lost at a form, booking widget or checkout, sales that close offline, and visitors who decline tracking. Store the click ID and source on every CRM record, test the capture whenever a page changes, and send closed sales back to Google and Meta through offline conversion imports and the Conversions API. Then set an alert for when the share of sales with a known source drops.
How can advertisers use cross-channel attribution?
Use it to set budgets on reconciled numbers rather than platform dashboards: move money towards the channels, brands and campaigns that return the most gross profit per pound, hold every agency to the same rule, and catch double counting before it inflates targets. It also shows when tracking breaks, because a sudden gap between platform claims and recorded sales is usually a data problem.
How does cross channel attribution improve campaign planning?
It replaces several conflicting stories with one. When planning the next quarter you can see which channels introduce customers and which close them, what each returns in gross profit, and where extra spend has stopped paying. That lets you set channel budgets and targets from your margin and recorded sales, then use incrementality tests to check the biggest assumptions.
What are the main challenges in implementing marketing attribution?
The usual ones are sales data the marketing team cannot reach, click IDs lost between ad and sale, phone and offline sales, consent rules that hide part of each journey, several agencies each reporting their own channel, and ad accounts split across brands. None needs a complex model to start: one record of sales, consistent capture of the source and a written rule for shared sales fix most of it.