Why Your Attribution Numbers Are Inconsistent Across Marketing Platforms
by Jaz Field

Attribution numbers are inconsistent across marketing platforms because each one only sees its own touchpoints, credits itself under its own rules, and reports on its own dates. Some of the gap is by design and will never close. The rest is tracking that drops or double counts orders, and that part you can fix.
Add up the purchases that GA4, Meta, Google Ads, TikTok and Klaviyo each claim for last month. On most Shopify stores the total is well above the number of orders Shopify took. Nobody's tracking is necessarily broken. Every platform is counting the same orders.
This guide explains the seven reasons platforms disagree, which ones are faults, and how to get a single view of channel performance you can defend.
The same order gets claimed by several platforms
Take one shopper. She sees an Instagram ad on Monday without clicking. On Wednesday she searches your brand and clicks a Google ad. On Friday she opens your Klaviyo welcome email and buys.
- Meta credits the order to the Instagram ad, if Meta's view-through window covers it.
- Google Ads credits it to the search ad she clicked.
- Klaviyo credits it to the email she opened.
- GA4 shares the credit between the channels that brought her to the site, and never knew about the Instagram view.
- Shopify records one order.
That is one order and four claims. None of the platforms is wrong by its own rules. The rules are just different.
Why each platform credits the same sale differently
1. Each platform only sees its own touchpoints
Meta knows about Meta ads. Google Ads knows about Google ads. Klaviyo knows about emails and texts. None of them knows what else the shopper did, so each one assumes it deserves the credit. Only a cross-channel tool such as GA4 sees several channels at once, and it can only see the ones that sent a visit to your site.
2. Attribution windows differ
Each platform credits sales for a set period after someone interacts with it, and the defaults differ.
| Platform | Default window | Counts views or opens? | Reports the sale on |
|---|---|---|---|
| Meta Ads | 7-day click, 1-day view | Yes, ad views | Date of the ad click or view |
| Google Ads | 30-day click for most conversion actions | Engaged views for video | Date of the ad click |
| TikTok Ads | 7-day click, 1-day view | Yes, ad views | Date of the ad click or view |
| Klaviyo | 5 days after an email open or click | Yes, email opens | Date of the purchase |
| GA4 | 30-day lookback for acquisition, 90 days for other key events | No | Date of the purchase |
These are defaults, and most can be changed in each platform's settings. Check what yours are set to before comparing anything.
3. Views and opens count as interactions
Meta and TikTok credit sales after someone sees an ad without clicking. Klaviyo credits sales after someone opens an email, and Apple Mail's privacy protection opens many emails automatically. GA4 only counts visits. As a result, the platforms that count views and opens claim far more sales than GA4 gives them, especially on retargeting and brand campaigns where shoppers were likely to buy anyway.
4. Attribution models differ
Ad platforms credit the whole sale to their own ad. GA4's default is data-driven attribution, which splits credit across the channels in the path. Shopify's marketing reports use their own model, based on the UTM parameters and referrers of the shopper's visits. Three models applied to one order give three answers.
5. Sales are reported on different dates
Ad platforms report a conversion on the date of the click or view. GA4, Klaviyo and Shopify report it on the date of the purchase. A shopper who clicks on the 28th and buys on the 3rd lands in different months depending on which report you open. Time zones add to this: an ad account in one time zone and a GA4 property in another shift orders across days.
6. Some conversions are modeled
Meta and Google Ads cannot observe every purchase, especially from iOS users who opted out of tracking and shoppers who declined cookies. They estimate the missing conversions and include the estimate in their reports. GA4 does its own modeling for consent. These estimates have no matching event anywhere else, so they cannot be reconciled.
7. Tracking gaps drop or double count orders
The first six reasons are design. This one is a fault, and it makes every other difference harder to read.
- Lost purchases: ad blockers, consent timing and slow pages stop browser tags from firing, so some platforms never see the order.
- Lost sessions: a shopper who clicks an ad in the Facebook or Instagram in-app browser and buys later in Safari arrives with no campaign information. GA4 and Shopify record the sale as Direct.
- Duplicates: two installs of the same pixel, or browser and server events without a shared event ID, count one order twice.
To check, compare each platform's purchase count with Shopify's online order count for the same week. A platform above Shopify is double counting. A platform far below it is missing orders. The free Littledata Tracking Audit lists every tag on your storefront and flags duplicates.
How to get one view of attribution you can trust
You will not make the platforms agree. You can stop the disagreement from blocking decisions.
- Use Shopify orders as the total. No channel report should add up to more than Shopify, and none should replace it.
- Fix tracking first. Every platform should record each Shopify order once. Until it does, attribution differences and tracking faults are mixed together.
- Pick one tool to split the total between channels. For most Shopify stores that is GA4, because it sees every channel that sends traffic. Use it for budget decisions between channels.
- Use platform numbers inside the platform. Meta's attribution is the right number for choosing between Meta campaigns. It is the wrong number for deciding between Meta and Google.
- Tag every link with UTM parameters so ad and email traffic lands in the right GA4 channel instead of Direct.
- Watch the gap, not the match. If the difference between a platform and GA4 is stable week to week, the tracking is sound. If it jumps, something changed on the storefront or checkout.
- Test incrementality for big decisions. Attribution shows who touched an order. A holdout or lift test shows whether the order would have happened without the campaign.
Where the data layer fits
Most tracking gaps come from running a separate browser tag for every platform, each failing in its own way. The data layer for Shopify replaces that with one source: each order is recorded once, server-side, with the shopper's original session and customer details attached, and the same record goes to GA4, Meta, Google Ads, TikTok and Klaviyo.
That is what Littledata does. The platforms still apply their own attribution rules. But every difference you see is a difference in rules, not in data, which is the only kind of difference you can explain to finance.
Platform-by-platform guides
- Why your conversion data differs between Google Analytics and Meta Ads
- Meta attribution in 2026: what business owners need to know
- Why Enhanced Conversions might result in fewer conversions attributed to Google Ads
- Modeled attribution in GA4: which channels matter?
- How many shoppers are your Klaviyo abandonment flows missing?
- Marketing attribution for Shopify sales: 10 things to watch out for
Frequently asked questions
Why are my attribution numbers different in every marketing platform?
Each platform only sees its own touchpoints and credits itself for any sale within its own attribution window. They also use different windows, count ad views or email opens differently, report on different dates, and include modeled conversions. The same Shopify order is often claimed by three or four platforms at once.
Why do my platforms report more conversions than Shopify has orders?
Because the same order is credited by several platforms. A shopper who saw a Meta ad, clicked a Google ad and opened a Klaviyo email before buying counts as a conversion in all three. Add up every platform's conversions and the total is usually well above Shopify's order count.
Which platform's attribution should I trust?
Use Shopify orders as the total, and one cross-channel tool, usually GA4, to split that total between channels for budget decisions. Use each ad platform's own numbers for optimizing inside that platform, not for comparing channels against each other.
Can I make attribution consistent across platforms?
You can make it comparable, not identical. Fix tracking so every platform records each order once, tag every link with UTM parameters, align time zones, and compare each platform with Shopify rather than with each other. The attribution rules will still differ, but the gap will be stable and explainable.
Does server-side tracking fix attribution differences?
It fixes the tracking part, not the attribution rules. Server-side tracking stops purchases being lost to ad blockers, consent timing and in-app browsers, and keeps the shopper's session attached to the order. Platforms will still credit sales differently, but the differences will come from their rules rather than from missing data.
How do I measure the real impact of a channel?
Run an incrementality test: hold out part of your audience or a set of regions from a campaign and compare sales with the group that saw it. Meta and Google both offer lift studies. Attribution tells you who touched an order, an incrementality test tells you whether the order would have happened anyway.
The short version
Platforms disagree on attribution because they see different touchpoints and follow different rules. Accept that part, and use Shopify as the total and one cross-channel tool to split it. Then fix the tracking gaps, so that the only differences left are the ones you can explain.



