Each ad platform only sees its own ads, uses its own attribution window, and takes full credit for any sale it touched. When a customer meets three of your ads before buying, three platforms each report one sale. The fix is not a better dashboard. It is one source of truth for totals, a consistent model for comparisons, and tests for the big decisions.
One sale, four claims
Picture a single $120 order. The customer's week looked like this:
- Day 1: watches a TikTok ad to the end. Does not click.
- Day 5: searches for the product type and clicks a Google ad. Browses, leaves.
- Day 6: clicks a retargeting ad on Instagram. Adds to cart, leaves.
- Day 7: opens a cart reminder email, clicks through and buys.
The next morning TikTok reports a $120 purchase. So does Google Ads. So does Meta. Your email tool reports $120 in attributed revenue as well. That is $480 of credit for $120 of sales, and every one of those reports is correct by its own rules.
This is the everyday reality of marketing attribution: the rules each system uses to decide which touchpoint gets credit for a conversion. To read your numbers properly you need to understand two settings, the window and the model.
Attribution windows: how long a platform keeps its claim
A window is the period after an ad interaction during which the platform will count a conversion as its own. There are usually two: one for clicks, one for views.
| Platform | Common default | What that means |
|---|---|---|
| Meta Ads | 7-day click, 1-day view | Counts purchases within 7 days of a click, or 1 day of an ad being seen |
| TikTok Ads | 7-day click, 1-day view | Same idea; view credit is common on video-heavy placements |
| Google Ads | Data-driven model, 30-day click | Splits credit across Google's own ad clicks leading to the sale |
| GA4 | Data-driven, cross-channel | Splits credit across the channels that brought visits to your site. Cannot see ad views |
These are common defaults at the time of writing. Platforms change them, and each ad account or conversion action can be set differently, so check your own settings before comparing anything.
Two consequences follow. First, windows overlap: in the example above the purchase fell inside every platform's window at once. Second, view-through credit is generous. A one-day view window means anyone who was served an ad and bought within 24 hours is counted, whether or not the ad had anything to do with it. Retargeting campaigns shown to people who were about to buy anyway can look spectacular this way.
Attribution models: how the credit is split
The model decides how one sale is divided among the touchpoints that a system can see. Here are the classic rule-based models applied to the $120 order, assuming a tool that can see all four touches.
| Model | TikTok | The question it answers | |||
|---|---|---|---|---|---|
| Last click | $0 | $0 | $0 | $120 | What closed the sale? |
| First click | $120 | $0 | $0 | $0 | What started the journey? |
| Linear | $30 | $30 | $30 | $30 | What was involved at all? |
| Position-based (40/20/40) | $48 | $12 | $12 | $48 | What opened and what closed? |
| Time decay (7-day half-life) | $20 | $30 | $33 | $37 | What happened closest to the sale? |
Same customer, same order, and TikTok is worth anything from $0 to $120 depending on which row you read. None of the rows is wrong. They are different opinions about what matters.
The sixth option, data-driven attribution, replaces fixed rules with a statistical model trained on your own conversion paths. It compares journeys that ended in a purchase with journeys that did not, and gives more credit to the touches that appear to change the outcome. Google now uses it as the default in Google Ads and GA4, and has retired first click, linear, time decay and position-based from both products. It is usually more sensible than a fixed rule, but it is still limited to what that system can observe. GA4 does not know your customer watched a TikTok ad without clicking.
Why your totals will never match
Put windows and models together and the reasons for the mismatch become concrete:
- Each platform is blind to the others. Meta does not know about the Google click. Inside its own walls, it was the only ad in the journey, so it takes 100%.
- Views are counted by ad platforms and invisible to analytics. GA4 only sees sessions. A view-through sale shows up in Ads Manager and nowhere in GA4.
- Dates differ. Ad platforms usually report a conversion on the day of the ad interaction. Your store reports it on the day of the order.
- Tracking has gaps. Consent banners, ad blockers and browser privacy features drop some events. Platforms fill part of the gap with modelled conversions, which are estimates.
- Identity is fuzzy. Someone who sees the ad on a phone and buys on a laptop is one person to a logged-in platform and two strangers to a cookie.
So stop trying to make the dashboards agree. They are built to disagree. Give each number a job instead.
What to trust, and for what
For totals: your store and MER
The only revenue figure that cannot be double counted is the one in your store's order report. Divide it by total ad spend across every channel and you have MER, the marketing efficiency ratio. Track it weekly and compare it with your break-even ROAS. If MER is above the line, the whole system is profitable, whoever takes the credit.
For decisions inside one platform: that platform's numbers
Platform data is still the best tool for choosing between two ad sets or two creatives on the same platform, because both are measured with the same bias. Use it for relative comparisons, not for the absolute total.
For comparing channels: one consistent yardstick
Pick a single view and hold every channel to it. Two practical options:
- GA4 with clean UTM tags on every ad and email. It under-credits channels that work through views, but it applies the same rule to everyone.
- Click-only windows. In Meta, use Compare attribution settings to see 1-day click and 7-day click side by side with 1-day view. The gap between them shows how much of the reported result depends on view-through credit.
For the question "did the ads cause it?": incrementality
Attribution describes who touched the sale. Incrementality asks whether the sale would have happened without the ad. That needs an experiment:
- Platform lift studies. Meta and Google can hold back a random group who do not see your ads, then compare purchase rates.
- Geo holdouts. Pause a channel in a few comparable regions for two to four weeks and compare sales with the regions where it kept running.
- Simple on/off tests. For a small account, pausing branded search or retargeting for a fortnight and watching total orders is crude but revealing.
For the customer's own view: ask them
A one-question post-purchase survey, "How did you first hear about us?", catches what tracking misses: podcasts, word of mouth, a TikTok seen three weeks ago. It is self-reported and imperfect, and it is frequently the only place upper-funnel channels show up at all.
Larger advertisers add marketing mix modelling, a statistical model of sales against spend over time. Open-source tools such as Meta's Robyn and Google's Meridian have made it more accessible, but it needs a couple of years of data and real budget variation to say anything reliable.
A fifteen-minute weekly routine
| Step | Source | What you are looking for |
|---|---|---|
| 1. Total revenue and orders | Store admin | The real number. Everything else is commentary |
| 2. Total ad spend | All ad platforms | Add it up. Calculate MER and compare with break-even |
| 3. Sum of platform-claimed revenue | All ad platforms | Divide by real revenue. A ratio that keeps rising means more overlap, not more sales |
| 4. Channel split | GA4, same model each week | Shifts in mix, not absolute values |
| 5. One change at a time | Your notes | If you raise a budget, watch whether store revenue moves, not just the platform's |
Step 3 is the one most teams skip. If the platforms together claim 1.4 times your real revenue this month and 1.9 times next month, you have not grown. Your channels are overlapping more heavily on the same buyers, which is often a sign that retargeting has been scaled past its useful size.
The point of all this
Attribution is not broken. It is a set of partial views, each drawn by a party with an interest in the result. Read the platform numbers as claims, read your store as the verdict, and run a test before any decision large enough to hurt. That combination is more reliable than any single dashboard, and it costs nothing but a little discipline.
Common questions
Which attribution model is best?
None of them is correct in an absolute sense. Last click is the simplest and the most conservative for upper-funnel channels. Data-driven attribution uses your own conversion paths and is the default in Google Ads and GA4. The best practice is to pick one model for cross-channel comparison, keep it consistent, and validate big budget decisions with an incrementality test.
Why doesn't GA4 match Meta Ads Manager?
They measure different things. Meta counts conversions from people who clicked an ad within 7 days or viewed one within 1 day, including people who later arrived another way. GA4 only sees visits to your site, cannot see ad views, and credits the sale across the channels that brought sessions. Meta will almost always report more conversions than GA4 gives it.
What is an attribution window?
An attribution window is how long after an ad interaction a platform will still take credit for a conversion. A 7-day click window means a purchase within seven days of an ad click is counted. Longer windows and view-through windows produce higher reported conversions.
Are view-through conversions real?
Some are and some are not. A view-through conversion means someone was served an ad, did not click, and bought within the window. The ad may have nudged them, or they may never have noticed it. Treat view-through numbers as an upper bound and use a lift test to learn how many are genuinely caused by the ad.
What is MER and how do I calculate it?
MER is the marketing efficiency ratio: total store revenue divided by total ad spend across all channels for the same period. If the store took $50,000 and you spent $20,000 on ads, MER is 2.5. Because it uses real revenue, it cannot be inflated by platforms counting the same sale twice.
