Attribution

Marketing attribution: Why Meta says 300 orders and Shopify says 210

Open three reports for the same week and you get three totals. Most of the gap comes from rules, not mistakes, because each tool counts its own days, clocks, clicks and views. Here is what each one counts, a 20 minute check to run before you move budget, and what a post purchase survey app sees that none of them can.

SEA Survey Team · 9 min read

In short

  • Shopify counts the orders your store took. Each ad platform counts the orders that came after its own ads, by its own rules.
  • Eight things push the totals apart: windows, views, overlap between platforms, dates, time zones, modeled conversions, missed or doubled tracking, and what counts as a purchase.
  • Add up what Meta, Google and TikTok report and you will usually get more orders than you took. That is normal.
  • Watch the ratio between a platform and Shopify week by week. A steady ratio is fine. A sudden jump with no change on your side points to broken tracking.
  • No click report sees why the buyer came. A post purchase survey app asks them on the Thank you page.

Each report answers a different question

Marketing attribution reports only agree when they count the same thing, and they rarely do. Before comparing numbers, it helps to know what each one is counting.

ReportThe question it answersWhat it cannot see
Shopify ordersHow many orders did the store take?Where buyers came from
Shopify AttributionWhich marketing visit came before each order, by the model you pick?Ads people saw but never tapped
GA4Which channel brought this visitor and this purchase, by Google's rules?Visitors who block its tag or decline cookies, unless Google models them
Meta, Google Ads, TikTokHow many orders came after our own ads?Other platforms' ads, and buyers it cannot match to an ad
A post purchase survey appWhat does the buyer say brought them?Buyers who skip the question

Shopify says it plainly in its own help center: each platform credits sales by its own rules, so a buyer who clicked both your email and your Google ad can be counted by both. So the goal is not to make the numbers match. The goal is to know why they differ, and to notice when the difference changes.

Eight reasons the numbers drift apart

1. Each tool counts for a different number of days

Meta counts a sale for 7 days after a link click. Google Ads counts for 30 days, Klaviyo for 5 days after an email open, and GA4 looks back 90 days before a purchase. An order 10 days after a Meta ad tap shows up in Shopify and GA4 but not in Meta. We list every default in attribution windows explained.

2. Ad platforms also count people who only saw the ad

Meta, TikTok, Pinterest and Google Ads give an ad credit for a sale up to a day after someone saw it without tapping, and Meta also counts likes, shares, saves and short video views. Shopify and GA4 only count visits. In Google Ads, sales after a view sit in the All conversions column, not in Conversions, so check which one you are reading.

3. Two platforms claim the same order

Each platform sees only its own ads, so it claims every order that came after them. A buyer who tapped a TikTok ad on Monday and a Google ad on Thursday is one order in Shopify and two orders in your ad accounts.

In one made up month, Shopify shows 1,000 orders. Meta Ads Manager reports 610, Google Ads 420 and TikTok 190. Added up, the platforms claim 1,220 orders, 220 more than the store took.

A bar of 1,000 Shopify orders next to a taller stacked bar of 1,220 orders made of Meta 610, Google Ads 420 and TikTok 190, with the extra 220 marked as orders claimed by more than one platform or credited for a view
Add up the ad platforms and you get more orders than the store took. The extra comes from shared orders and from views.

Shopify has a model built for this check. On the Attribution page, the Any click model gives full credit to every channel a buyer clicked, so it double counts on purpose, the way ad platforms do. Shopify suggests using it to reconcile with each platform. Compare Meta Ads Manager with the Meta line under Any click, not with the total.

4. The same order lands on different days

Google Ads files a sale under the day of the click, not the day of the order. A shopper who clicks on Black Friday and buys on Cyber Monday counts on Friday in Google Ads and on Monday in Shopify. It also means last week's Google Ads numbers keep growing for days as late orders come in. To line up with Shopify's dates, add the Conversions (by conv. time) column, which uses the day of the sale.

Meta changed its rule in June 2025. Purchases on your website now appear on the day they happen, while actions inside Meta, such as link clicks, stay on the day the ad was shown.

5. Each report runs on its own clock

Meta reports in the time zone you picked when you created the ad account, and changing it later means Meta closes that account and opens a new one. Shopify reports in your store's time zone. Say your store runs on New York time and your Meta account on Los Angeles time. An order at 1:30 AM on Saturday, November 28 in New York is 10:30 PM on Black Friday in Los Angeles. Meta counts it on Black Friday, Shopify on the day after. Over a whole week this evens out. Over a single day, during the busiest days of the year, it does not.

6. Some conversions are estimates

When platforms cannot see a person, they estimate. Meta models part of the sales from iPhone users who declined tracking, and labels those results as modeled. Google models sales from visitors who decline cookies on your consent banner, and those estimates appear in the Conversions column next to measured ones.

The share of people the platforms cannot follow is large. The measurement company Adjust found that 38% of iPhone users agreed to tracking in early 2026, and only 34% in shopping apps. An estimate can be right on average, but you will never find it as an order in Shopify.

7. Tracking misses some orders and counts others twice

Orders go missing from ad platforms and GA4 when:

  • An ad blocker or a privacy setting stops the tag. GA4 needs scripts and cookies to run.
  • A consent banner blocks it. In the EEA and the UK, with a consent banner on, Shopify only sends data to pixels after the visitor agrees, and a banner app that does not sync with Shopify's privacy settings can stop pixels from firing at all.
  • The Thank you page fails to load. Shopify sends the purchase event once, when the Thank you page or the first upsell page loads.
  • Safari forgets the visitor. Cookies set by scripts are deleted after 7 days without a visit, or after 24 hours when the visitor arrived from a link with a click ID. Apple Mail, Messages and Safari Private Browsing also remove tracking parameters that identify a person from links.
  • The order never touched the online store. Sales taken in person with Shopify POS never pass through a browser pixel.

Orders get counted twice when the Meta pixel and the Conversions API both send the same purchase without a shared event ID. Meta treats two purchase events as one only when the event name matches and the ID matches within 48 hours. Shopify's Facebook and Instagram app has three data sharing levels: Standard sends pixel events only, while Enhanced and Maximum add the Conversions API, which sends purchases from Shopify's servers and keeps working when a browser blocks the pixel.

8. They disagree on what a purchase is

Shopify lowers your sales when you refund or cancel an order. An ad platform keeps the purchase event it received at checkout. Test orders, edited orders and payment pages add more noise: GA4 can hand the sale to PayPal or another payment page as a referral, unless you add those sites under List unwanted referrals. Place one test order and check what value each platform received, because some setups send tax and shipping and some do not.

A normal gap or broken tracking?

The size of the gap tells you little. Its stability tells you a lot. Each week, take the orders a platform reports and compare them with your Shopify orders for the same days, written as orders per 100 Shopify orders.

Say Meta reports 61, 59 and 62 orders for every 100 Shopify orders three weeks in a row (made up numbers). In week 4, after a theme update, it reports 118. In week 5, after the fix, it is back to 60.

A line of Meta orders per 100 Shopify orders that stays near 60 for three weeks, jumps to 118 in the week of a theme update that sent the purchase twice, and returns to 60 after the fix
Around 60 for weeks is this store's normal. The jump to 118 came from a theme update that sent each purchase twice.

A steady 60 is normal for this store. A jump to 118 in a week when nothing changed in the ads means each purchase was sent twice. A drop to 20 would point the other way, to a pixel that stopped firing.

Before you blame tracking, rule out changes you made yourself. A new window, more retargeting, a campaign that leans on views, or a big email push can all move the ratio for real reasons.

A 20 minute check before you move budget

  1. Pick the same 7 days everywhere, ending at least 3 days ago. Google Ads fills in late sales, and Shopify can take up to 24 hours to sync ad spend from your marketing apps.
  2. Use full days in each report's own time zone, or compare whole weeks if the time zones differ.
  3. Read every platform on the same rule. In Meta, look at 7 days after a link click without views. In Google Ads, add the Conversions (by conv. time) column.
  4. Compare each platform with its own line in Shopify, under the Any click model on the Attribution page, in the Performance view.
  5. Write down the ratio and compare it with last week, not with an ideal number.
  6. If it jumped, place a test order and watch it arrive. In Meta Events Manager, check that browser and server purchase events are being deduplicated. Check that your consent banner app syncs with Shopify, and ask what changed in the theme or checkout apps that week.

When a big channel is in doubt, test it

Every report above shows which ads came before a sale, not which ads caused it. A lift test answers the second question. You hold the ads back from a random group of people, or from a few regions, and compare sales with the group that saw them. Meta itself calls lift experiments like its Conversion Lift the gold standard of measurement. Google Ads offers Conversion Lift studies too, and its entry point for a study dropped to a $5,000 budget in late 2025.

On a smaller budget, run a regional test. Pause one channel in a few states or regions for two to four weeks and compare their sales with similar regions where it kept running. Do it in January, not in the middle of the sale.

Tests also show that a platform's own number is not always too high. Haus, a company that runs these tests, looked at 640 Meta tests by large brands and found that Meta's 7 day click results understated its real effect on direct to consumer sales by 15% on average. So when the platforms add up to more than your orders, look first at overlap and view credit, not only at each platform's click results.

In a shopping app, a referee decides

If you also sell through a mobile app, the same disagreement plays out over installs. Meta, Google and X work as self reporting networks: they decide on their own which installs their ads drove, then tell your mobile measurement partner (MMP), such as AppsFlyer or Adjust. The MMP applies one rule to every network, usually the last tap, so each install goes to one source only.

AppsFlyer lists the usual reasons its numbers differ from Meta's:

  • Overlap: Meta claims an install after its ad even if the person also tapped another network's ad. AppsFlyer gives it to the last tap.
  • Devices: Meta counts a tap on one phone and an install on another. AppsFlyer needs both on the same device.
  • Clocks: Meta reports in Pacific time, AppsFlyer in UTC.
  • Windows: The click window set in AppsFlyer can differ from Meta's 7 days.
  • Reinstalls: Inside AppsFlyer's reattribution window, a reinstall counts as retargeting, while Meta can still show it as a new install.

The rule from the web side holds here too. Watch the ratio between Meta and the MMP, and look into it when it moves.

What only a survey app sees

Every number above comes from clicks, views or devices. None of them sees the friend who recommended you at dinner, the creator who mentioned you without a link, or the answer ChatGPT gave. Those buyers type your address or search your name, and the reports hand the sale to Direct or Google search.

The only way to see them is to ask, and that is the job of a post purchase survey app.

Single choice, Thank you pageWhere did you first hear about us?
TikTokInstagramGoogle searchA friend or family memberA creator or influencerChatGPT or another AI toolOther (write in)

Put the share of buyers who name each channel next to Shopify's attribution for the same weeks. If Shopify gives Direct a quarter of your BFCM orders while buyers keep naming a creator, the creator started those sales and the reports gave them to someone else. Read how to put the two reports side by side for a worked example.

SEA Survey  is a post purchase survey app for Shopify. It adds this question to the Thank you page and saves each response on its order, next to its revenue. AI groups the written Other responses into topics, so a channel you never listed still shows up. On the Growth plan, the Marketing attribution dashboard shows revenue, LTV and repeat rate by the channel buyers named, as a third column next to Shopify and your ad accounts. For the models behind all of this, start with what marketing attribution is.

SEA Survey

Listed as SEA Post Purchase Survey Quiz, 4.9 stars from 188 reviews, with the Built for Shopify badge.

30% off any paid plan for 3 monthsStarter $13.30 instead of $19, Growth $34.30 instead of $49

BFCMSEA30Last day: Dec 7

  • Why now: Black Friday week is when Meta, Google and Shopify drift furthest apart, and the busier the sale, the more responses you collect. Start before Nov 27, and you have a third column for the week that matters most.
  • On the Free plan: 30 responses a month, with attribution, NPS and CSAT surveys.
  • What a paid plan adds: Starter counts 500 responses a month. Growth has unlimited responses and the Marketing attribution dashboard, with revenue and LTV by the channel buyers named, plus A/B testing and conditional logic.
  • How to claim: Install SEA Survey from the Shopify App Store, open Plans, paste the code and pick Starter or Growth. Both start with a 7 day free trial.

FAQ

Which number should I trust, Meta or Shopify?

Trust Shopify for how many orders you took and what they brought in. Use Meta to compare its own campaigns and ads with each other. To compare Meta with Google or TikTok, use Shopify's attribution and what buyers tell you, because each ad platform grades only its own ads.

How big a gap is normal?

There is no fixed number. It depends on your windows, how much of your spend goes to views and retargeting, and how many platforms you run. A ratio that stays steady from week to week is normal. A sudden jump or drop is not.

Why does Google Ads keep changing last week's numbers?

Google Ads files each sale under the day of the click, so orders placed days later fill in past days. The Conversions (by conv. time) column files sales under the day they happened, which matches Shopify.

Can a survey app replace my ad platform reports?

No. Use it next to them. Ad platforms show which of their own campaigns and ads work better. A post purchase survey app shows which channels buyers say brought them, including the ones that leave no click. Some buyers misremember and not every buyer responds, so read the responses as shares of buyers over several weeks.

Black Friday is Nov 27. Start collecting answers now.