Where it sits on the path: Ad · Lead · Revenue
Which Ad Made the Sale? Marketing Attribution in 2026
No attribution model is correct; measurement must fit the decision. Three layers, a monthly report marketing and finance both sign, and a test of whether the sale would have happened anyway.
The short answer
Marketing attribution assigns credit for a sale to the touchpoints before it, and every ad platform does it by its own rules, so each claims the same sale. Measure in three layers: platform reports to steer campaigns, GA4 to compare channels, and CRM plus finance to judge collected revenue. Record one source per lead, send real sales back to Google and Meta, and run a holdout test before deciding budgets.
The bottom line
- The sum of what platforms claim will always exceed your sales; set budgets on CRM and finance revenue, not on the sum of reports.
- Record a lead's source at first contact, in a mandatory field with a fixed list, never later from memory.
- If sales close on WhatsApp, store the click ID with the conversation and send purchases back to Meta; send cancelled orders back to Google Ads.
- Choose the model by decision: data-driven to steer bidding, paid and organic last click for a simple channel comparison.
- Before doubling a channel's budget, switch it off in one region or period and measure what happens to sales.
In this article9 sections
- Why does every platform claim the same sale?
- Three layers of measurement
- What has changed in attribution up to 2026?
- The minimum stack for a business that sells on WhatsApp
- Send real sales back to Google and Meta
- Incrementality: would the sale have happened anyway?
- A monthly report marketing and finance agree on
- From my work
- What to do next
No single platform report will tell you which ad made the sale, because each platform credits itself by its own rules. You find out by reading three layers together: what the platforms say, what GA4 says, and what the CRM and the accountant recorded. Attribution is the assignment of credit for a sale to the touchpoints before it; an attribution model is the rule that does the assigning.
My position from the start: there is no correct attribution model. No model tells you whether the customer would have bought without the ad. A model is a tool for a specific decision; budget calls come from collected revenue and from incrementality tests. Platform details here are current as of October 2026. This article extends high ROAS, losing money.
Why does every platform claim the same sale?
Each platform counts a sale if an interaction with its ad came first, within a window it defines, and none of them sees the others' ads. A customer who watched a Snapchat video, tapped an Instagram ad, then searched your store's name on Google and bought shows up as a sale in all three reports.
The rules themselves move. In March 2026 Meta announced, as reported by Search Engine Land, that click-through attribution for website and in-store conversions would count only link clicks, that conversions after likes, shares and saves would move to a category it calls engage-through, and that the video view threshold would drop from 10 seconds to 5. Click-attributed sales in Ads Manager before March 2026 are not directly comparable with those after.
Hypothetical example, rounded numbers: in one month Google Ads reports 90 orders, Meta 65 and Snapchat 45, a total of 200. The store recorded 160 orders from every source; 22 cash-on-delivery orders were cancelled, so 138 were delivered. The platforms claim more than the store sold in total, and none of them knows about the cancellations. The decision isn't built on 200; it is built on 138 and on what the third layer says about where those orders came from.
Three layers of measurement
This tool sets out what to ask each layer, and what not to. Pin it up where marketing and finance can both see it.
| Layer | Source | Answers | Cannot answer | Use it to |
|---|---|---|---|---|
| 1. Platform | Google Ads, Meta Ads Manager, Snapchat, TikTok | Which campaign, ad and audience line up with conversions in the platform's window | Whether the sale would have happened without it; what the customer actually paid | Steer campaigns and bidding inside the platform |
| 2. Analytics | GA4 with UTMs | Which channel brought the session and conversion, under one model for all channels | Sales closed on WhatsApp or by phone; cancellations and collection | Compare channels with each other |
| 3. CRM and finance | CRM, order system, accounts | Where the customer came from, whether the sale closed, whether the money arrived | Exactly which ad the customer saw before getting in touch | Judge budgets and return |
The rule: use each layer for the decision it can see, never for another layer's decision. Don't judge the Meta budget on Meta's report, and don't steer Google Ads bidding from the accountant's spreadsheet.
What has changed in attribution up to 2026?
Measurement tools have changed a great deal in three years. These are the changes that touch your decisions, with dates:
| Date | Change | What it means for you |
|---|---|---|
| Nov 2023 | Google removed first click, linear, time decay and position-based models from GA4 | Three remain: data-driven, paid and organic last click, Google paid channels last click |
| 2023 | Data-driven attribution became the default in Google Ads and GA4 | Google says every conversion action is eligible regardless of volume, and recommends 200 conversions and 2,000 interactions in 30 days for better precision |
| Apr 2025 | Google announced a Channel performance page for Performance Max | You see Search, YouTube, Display and others instead of one figure |
| Jan 2026 | Google Ads API v23 began splitting Performance Max by network, with data from June 1, 2025 | Dashboards that pull data automatically may show different rows and totals; check them |
| Mar 2026 | Meta announced link-click-only click attribution and an engage-through category | Don't compare figures across the change directly |
| Apr 2026 | Google Ads merged enhanced conversions for web and for leads into one setting | Review the setting in your account |
| Jun 2026 | Offline conversion uploads moved to the Data Manager API and were blocked in the Google Ads API | Confirm your connector has migrated |
In GA4, the default lookback window is 30 days for acquisition events and 90 days for other key events. Consent mode sends Google signals instead of full data when a visitor declines cookies, and enables modeling. But behavioral modeling in GA4 requires, among other things, 1,000 events a day from declining users for at least 7 days and 1,000 daily consenting users on 7 of the last 28 days. Most small businesses won't reach that threshold, so don't count on modeling to fill your gaps.
The minimum stack for a business that sells on WhatsApp
In Jordan and Saudi Arabia, much selling starts with a WhatsApp message and closes on a call or with cash on delivery. GA4 sees only half of that path. This is the minimum I ask for before any budget discussion:
- Consistent UTMs. Google says to always use utm_source, utm_medium and utm_campaign, and recommends utm_id. Write one dictionary of lowercase values, because values are case-sensitive: Snapchat and snapchat are two different sources in the report.
- A source field in the CRM. Mandatory, a fixed list, filled at the first message rather than at the sale.
- "How did you hear about us?" with fixed options, asked by sales in the first conversation. The answer reveals what no platform can see: a friend's recommendation, an influencer's account, an ad seen but never tapped.
- The click ID kept with the chat. Meta ads that open a WhatsApp chat pass a click identifier (ctwa_clid) in the message data. Store it with the conversation so you can send the sale back to Meta.
- An order ID on every conversion. Without it you can't later withdraw a cancelled order from Google Ads.
Send real sales back to Google and Meta
A platform that knows who actually bought aims ads at people like them. A platform that only knows who pressed "submit" aims them at people who press buttons.
- Google Ads: Google recommends enhanced conversions for leads, the upgraded form of offline conversion import, which pairs the GCLID click ID with hashed data such as email. Data Manager is now the easiest route to set it up. For cancelled cash-on-delivery orders, Google's conversion adjustments let you retract a conversion or restate its value, provided you sent a transaction ID with the original conversion.
- Meta: the Conversions API sends events from your server or CRM. For conversations, the Conversions API for Business Messaging accepts events such as QualifiedLead, Purchase and OrderCanceled from WhatsApp, Messenger and Instagram, using the click ID for WhatsApp. Meta notes that purchase optimization is available for click-to-WhatsApp and click-to-Messenger ads.
Incrementality: would the sale have happened anyway?
An incrementality test compares sales in a group that saw the ad with a similar group that didn't, so it measures what the ad actually added. No attribution model answers that question. A simple version for a small business:
- Pick one channel and one question: do branded search campaigns on Google add sales, or would those customers have arrived for free?
- Pick two comparable regions with similar sales in previous months, such as two cities of similar size, or split by time if you can't split by place.
- Switch the channel off in one region for two to four weeks, keep it running in the other, and change nothing else.
- Compare CRM sales in both regions before and during the test.
- Calculate the difference and divide it by the spend you switched off.
Hypothetical example, rounded numbers: two cities each sold about 200 orders a month. Branded campaigns were paused in the first for four weeks and its sales fell to 188, while the second stayed at 202. About 14 orders would not have happened without the campaign, far fewer than the campaign was claiming. The decision: cut the branded budget and move the difference to channels that bring new customers.
Larger companies use marketing mix models (MMM), including Google's open-source Meridian. I don't start there with a company whose CRM source field is still mostly empty.
A monthly report marketing and finance agree on
The argument between marketing and finance ends when both read one table. This is the monthly reconciliation sheet, one row per channel:
| Channel | Spend | Platform-claimed | Leads per CRM | Closed sales per CRM | Revenue collected | Margin after spend |
|---|---|---|---|---|---|---|
| Google Ads | ||||||
| Meta | ||||||
| Snapchat | ||||||
| No source recorded | — | — | ||||
| Total |
Agree three things in advance: which column decides budgets (collected revenue and margin), one GA4 attribution model that stays fixed, and the share of "no source recorded" that counts as an alarm. When that row grows, the problem is recording, not advertising.
From my work
At CoderZ I set campaign KPIs on qualified leads, enrollment conversion and return on marketing investment rather than form submissions, and I design the CRM workflows that make them measurable: lead capture, ownership, statuses, escalation and reporting. That work has not been measured as a single number, so I don't quote one. Before that, I managed about USD 4M in Google Ads cumulatively on the HungerStation and LINE Live projects (2018–2019), which is why I read a platform report as the start of a question, not its answer.
What to do next
Open your CRM and count this month's leads with no recorded source. If they exceed a quarter of the total, start with the minimum stack before any tool or model. Then fill the reconciliation sheet for one month with finance. If you want help building these layers and reading the numbers with both teams, that is part of my revenue-based marketing audit. To decide which leads deserve to be sent back to the platforms, read lead quality vs volume; to check tracking in your Google Ads account, use the Google Ads audit checklist.
Want your team trained on this? Training programs are built on your own accounts and data.
Questions
What is the best attribution model in GA4?
Only three models remain in GA4 since November 2023: data-driven, paid and organic last click, and Google paid channels last click. Use data-driven when you have enough data and want to steer bidding, and paid and organic last click when you need a simple comparison everyone understands. What matters most is fixing one model for monthly reporting and not switching it every month.
Why do Meta and Google together report more sales than my store made?
Each platform counts a sale if an interaction with its ad came first within its window, and it cannot see the other platform's ads. A customer who saw a Meta ad, then searched on Google and bought, is counted once in each. That isn't fraud; it is overlapping arithmetic, which is why you need a neutral third layer.
Do I need a paid attribution tool?
Not before the basics work: consistent UTMs, a source recorded in the CRM, sales sent back to the platforms, and a monthly report with finance. Most small and mid-sized businesses get what they need for budget decisions from that foundation. A paid tool can't fix data whose source was never recorded.
How do I measure ads when the sale happens on WhatsApp?
Run ads that open a WhatsApp chat, store the click ID (ctwa_clid) Meta passes with the conversation, then send purchase or qualified-lead events through the Conversions API for Business Messaging. In the CRM, record the source at the first message and ask "how did you hear about us?" with fixed options. For Google Ads, send the sales back as offline conversions.
Sources
- Get started with attribution: attribution models in GA4 · Google Analytics Help
- Select attribution settings (lookback windows) · Google Analytics Help
- About data-driven attribution · Google Ads Help
- About offline conversion imports and enhanced conversions for leads · Google Ads Help
- Conversions API for Business Messaging · Meta for Developers
- Introducing channel-level reporting for Performance Max campaigns · Google Ads Developer Blog