Why Your Facebook Ads and Shopify Numbers Never Match (And What to Do About It)

TL;DR
- Facebook and Shopify count revenue in different ways. They will never match exactly and that is normal.
- The main reasons for the mismatch are attribution windows, view through conversions, different time zones, and how each platform handles refunds and discounts.
- You should treat platform ROAS as a directional signal, then cross check it against Shopify and your bank account.
- Post-purchase surveys and server-side tracking help you understand which channels really create demand when pixels and cookies are incomplete.
- Blended ROAS and contribution margin are the best guardrails for deciding how much you can safely spend.
- Karbon Analytics connects Facebook Ads, Shopify, and GA4 so you can see a single source of truth without building your own reporting stack.
Why Facebook and Shopify Never Match
If you run a Shopify store and spend on Facebook Ads, you already know this pain. Facebook tells you a campaign printed money. Shopify says revenue barely moved.
This is not a bug in your store or your pixel. Facebook and Shopify are answering different questions with different rules. Once you understand those rules, the mismatch stops being scary and starts being something you can manage.
In simple terms:
- Facebook is trying to answer "Who should get credit for this sale?"
- Shopify is trying to answer "How much money actually hit the store?"
- Your finance stack is trying to answer "How much profit did we really keep?"
How Facebook Attributes Conversions
Facebook does not just report what happened after someone clicked an ad today. It uses attribution windows and view through conversions to decide which ads get credit.
- Attribution window: The time period where Facebook is allowed to take credit for a purchase after someone views or clicks an ad. A common default is 7 day click and 1 day view.
- Click through conversion: Someone clicks an ad, does not buy right away, but returns later and buys within the attribution window. Facebook often takes credit.
- View through conversion: Someone sees an ad but never clicks. They later buy on your site. Facebook may still take credit because the ad was viewed.
This is why you can see things like:
- More revenue reported in Facebook than you see in Shopify for the same day.
- Facebook showing conversions from people who never show up as "Facebook" traffic in Shopify analytics.
Key idea:
Facebook cares about influence. Shopify cares about transactions. They will both be "right" inside their own rules and still disagree with each other.
What Shopify Actually Shows You
Shopify analytics are closer to your bank account. They focus on orders, refunds, discounts, and net sales. Attribution is mostly last click and first party. If someone clicks an email and then buys, Shopify will usually credit the email, not the Facebook ad they saw yesterday.
- Last click bias: The final channel before purchase gets the credit.
- Direct traffic buckets: If Shopify cannot see a clear source, the sale often lands in "Direct". Many view through conversions look like this.
- Refunds and discounts: Shopify removes refunded revenue and includes discounts in its numbers. Facebook often does not.
The result is simple. Performance usually looks better in Facebook than it does in Shopify. That does not mean Facebook is lying. It means you are looking at two different layers of the same story.
Using Post-purchase Surveys for Reality Checks
Pixels and cookies are fragile. Browsers block them. People use multiple devices. Private browsing breaks chains of events. You need one more signal that does not depend on tracking scripts.
That signal is a simple question on your thank you page: "How did you first hear about us?"
- Give customers clear choices like "Facebook or Instagram", "Google search", "TikTok", "Friend referral", "Podcast", "Other".
- Do not worry if the answers are not perfect. Directional trends are what matter.
- Compare survey responses to what Facebook and Shopify tell you. If 60 percent of new customers say "Facebook or Instagram", that is a strong hint even if tracking is messy.
Practical example
Shopify says only 20 percent of revenue is "paid social". Facebook claims 60 percent. Your post-purchase survey says 55 percent of new customers heard about you on Facebook or Instagram. The truth is probably closer to the higher number, and you can scale with more confidence.
Blended ROAS: The Metric That Keeps You Sane
If you try to force Facebook and Shopify to match line by line, you will go in circles. A better approach is to ask a simpler question.
For the whole business in a given period:
- How much did we spend on ads in total?
- How much revenue did the store make in total?
Blended ROAS (Return on Ad Spend) is defined as:
Blended ROAS = Total store revenue / Total ad spend across all channels
Why blended ROAS works:
- It ignores which platform takes credit and focuses on what hit the store.
- It bakes in view through effects automatically because you look at total revenue, not just tracked clicks.
- It gives you a clear guardrail. For example, "We can profitably scale as long as blended ROAS stays above 3.0".
Once you know your blended ROAS guardrail, you can treat channel level ROAS as a way to move budget around inside that overall limit instead of as a perfect truth source.
A Simple Workflow for Daily Decisions
Here is a lightweight workflow you can run each morning without a data team.
- Check Shopify totals: Yesterday revenue, refunds, and new customers.
- Check ad spend: Total spend across Facebook, Google, and any other major channels.
- Calculate blended ROAS: Yesterday revenue divided by yesterday ad spend.
- Scan Facebook campaigns: Kill or cut budgets on any campaigns that are far below your blended target, especially over a seven day window.
- Scan post-purchase survey responses: Watch for shifts in where customers say they heard about you.
This keeps you grounded in real money while still using Facebook data to make tactical moves.
How Karbon Analytics Helps
You can run the workflow above in spreadsheets. Many teams do. The problem is that it takes time every morning and is easy to get wrong when you are tired or busy.
Karbon Analytics connects Shopify, Facebook Ads, Google, and GA4 into a single source of truth. It automatically calculates blended ROAS and contribution margin, and it watches for changes in your performance so you do not have to live in dashboards.
- Unifies ad spend and store revenue so you can see true blended ROAS by day, week, and month.
- Surfaces which campaigns are driving profitable new customers instead of only last click conversions.
- Sends you email reports with plain language summaries so you know what changed and where to look next.
If you are tired of arguing about whose numbers are "right", start using a unified view. You can start exploring your data with Karbon Analytics in a few minutes without hiring an analyst.