It depends on what you're comparing, but a gap is normal and expected — Facebook Ads Manager almost always reports higher revenue than Shopify. Meta counts view-through and modeled purchases, reports revenue on the ad-click date, usually passes only the product subtotal, and never subtracts refunds. Shopify records the real, completed, server-side order value. The two answer different questions, so they will not tie out. Your Shopify total sales is the truth for revenue that happened; Meta's number is an estimate of revenue its ads influenced.

The short version: two systems, two definitions of "revenue"

Your Facebook Ads Manager says your campaigns drove $12,000 last week. Shopify says Facebook-attributed sales were closer to $8,500. Nothing is broken — you're comparing two numbers that were never designed to be equal.

Shopify records a completed checkout on its own servers. That's a fact: money moved, an order exists. Meta reports how much revenue it believes its ads influenced, using attribution windows, statistical models, and its own crediting rules.

So the question isn't "which one is lying?" It's "which number answers the question I'm actually asking?" This article walks the exact mechanics, runs a full worked example, and shows you how to reconcile the two without chasing a match that can't exist. It sits inside our broader guide to reconciling your ecommerce data.

Why Facebook's revenue number runs high

Five mechanics inflate Meta's reported revenue relative to Shopify. Most stores have all five running at once.

1. View-through revenue (the biggest inflator)

On the default 7-day-click / 1-day-view attribution window, Meta claims a purchase if the buyer merely saw your ad within a day of buying — no click required (Foreplay). Shopify has no concept of a "view." It only records checkouts.

Every view-through purchase adds its full revenue to Meta's total and zero to Shopify's Facebook column. A gap of roughly 20–35% between Meta-reported purchases and Shopify orders is considered normal on the default window (Vaizle; TrackBee). Since revenue tracks purchases, the revenue gap runs in the same range.

2. Modeled revenue

When Meta can't directly observe a purchase — an iOS opt-out, a blocked pixel, a declined consent banner — it estimates one with machine learning and reports the estimated revenue as if it were counted (TrackBee). Shopify never models. It reports only real orders. Modeled revenue is why Meta's number can exceed observed sales even after your tracking is flawless.

3. Subtotal vs. total sales

This one quietly shifts the dollar figure in the opposite direction and confuses everyone. Many pixel setups pass only the product subtotal as purchase value — no shipping, no tax. Shopify's "Total sales" adds shipping and tax on top (Shopify Help).

So Meta may report more purchases but at a lower per-order value. If your counts look inflated but revenue looks low, this definition mismatch is usually why. This same revenue-definition trap drives the Facebook Ads ROAS mismatch, since ROAS is just revenue over spend.

4. Click-date reporting

Meta books revenue on the date of the ad click, not the date of the purchase (Jon Loomer). A click Monday that converts Thursday lands in Monday's Meta report and Thursday's Shopify report. Compare a single day and the numbers will never align — always compare on trailing 7-to-14-day windows.

5. Refunds stay in Meta's totals

When a customer refunds, Shopify reduces net and total sales. Meta and GA4 generally do not retroactively remove the original conversion (Vaizle). So after a refund wave, Meta's revenue stays high while Shopify's drops — widening the gap for reasons that have nothing to do with tracking.

A full worked example

Say you run a print-on-demand store, "Nomad Mugs," and drive Meta ads for one week. Here's the ground truth and how each system reports the revenue.

What actually happened: 100 real orders. Each order is $40 subtotal + $5 shipping + $4 tax = $49 total. Of the 100 buyers: 55 clicked a Meta ad within 7 days, 15 only saw an ad within 1 day, 10 came from Google, 20 from organic or direct. Eight buyers later refunded.

Meta Ads Manager reports ≈ $3,120.

  • 55 click-through + 15 view-through = 70 attributed purchases, plus ~8 modeled = 78 purchases.
  • Pixel passes the $40 subtotal only: 78 × $40 = $3,120.
  • Refunds are not subtracted; ~12 purchases are booked on the prior week's click dates.

Shopify Analytics reports ≈ $4,508.

  • 100 real orders × $49 = $4,900 in total sales.
  • Eight refunds (avg $49) reduce it: $4,900 − $392 = $4,508.
  • Under last-click, only ~55 orders sit in the "Facebook" column — the 15 view-through buyers clicked nothing, so Shopify files them under their real last referrer.

So for one week of 100 real orders you get at least three different revenue figures — Meta's $3,120 (subtotal, no refunds, view-through + modeled), Shopify's Facebook-column revenue (~$2,695 at 55 × $49), and Shopify's total sales of $4,508. None is wrong. They answer different questions. The same divergence shows up in order counts and in session totals.

The number both dashboards skip: profit

Here's the part every SERP article glosses over. Even if you perfectly reconciled Meta and Shopify revenue, neither tells you whether that revenue made money. Revenue is not profit.

Walk the Nomad Mugs cohort down to cash. Take the $4,900 in captured charges and strip out what actually leaves your account:

  • Processing fees: on the Basic plan, US online cards run about 2.9% + 30¢ per transaction (Webgility). That's (0.029 × $4,900) + (100 × $0.30) = $142.10 + $30 = $172.10.
  • Refunds issued: 8 × $49 = $392.
  • One chargeback fee: about $15 per dispute in the US (Webgility) = $15.

Net payout deposited = $4,900 − $172.10 − $392 − $15 = $4,320.90. And that's still before your product cost and your ad spend.

Now layer those in. Say each mug costs $12 landed from your POD supplier, so 100 orders = $1,200 in cost of goods, and you spent $1,500 on Meta ads that week. Real profit ≈ $4,320.90 − $1,200 − $1,500 = $1,620.90. Your "revenue" was somewhere between $3,120 and $4,900 depending on the dashboard — but you took home roughly $1,621. That per-order profit of about $16 is the only number that decides whether you scale.

This is the gap between platform-reported revenue and reality that a payout finally settles. When it's time to make sure that cash actually lands, here's how to add a bank account to Shopify for payout.

How to reconcile without chasing a match

You will not make Meta and Shopify equal. Aim for a stable, explainable relationship instead.

  1. Pick your source of truth per question. Shopify total sales = revenue that happened. Meta = revenue its ads plausibly influenced. Your payout = cash in the bank. Never expect one to answer all three.
  2. Compare on trailing windows. Use 7-to-14-day ranges, never single days, to absorb click-date lag.
  3. Match the revenue definition. Decide whether you're comparing subtotal to subtotal or total to total, and configure your pixel value accordingly.
  4. Establish a normal ratio. Track your Meta-to-Shopify revenue ratio weekly. A steady 1.2-to-1.4× is healthy; a sudden jump signals a real tracking break, often a pixel-and-CAPI deduplication problem rather than genuine growth.
  5. Anchor on profit, not revenue. Your blended profit after fees, COGS, and spend is what tells you to scale. Revenue mismatches only matter because they distort the ROAS you feed that decision.

Where PodVector fits

Doing this by hand across two dashboards and a bank statement is where most merchants give up. PodVector connects your Shopify, Meta Ads, Google Ads, Printify, Printful, and Stripe accounts and computes your true per-order profit — reading the revenue Meta reports and the orders Shopify actually recorded, then settling both against the fees and refunds that hit your payout.

Victor, PodVector's AI operator, analyzes that live data and proposes moves you can act on. He reads your ad data but does not touch your ad account — the actions he executes are Shopify-side, and only with your approval. He's not a dashboard you have to interpret; he's an operator that does the reconciliation math for you and tells you the profit number underneath the mismatched revenue. Connect your store and see your true per-order profit.

FAQs

Why is my Facebook ads revenue higher than my Shopify sales?

Because Meta counts revenue from view-through purchases (people who saw but didn't click your ad) and from modeled purchases it estimates statistically, and it never subtracts refunds. Shopify only records real, completed, server-side orders. A Meta-over-Shopify revenue gap of roughly 20–35% is normal on the default 7-day-click / 1-day-view window (Vaizle).

Which revenue number should I actually trust?

For "how much revenue did my store make," trust Shopify total sales — it's the server-side record of completed orders. For "how much revenue did my ads influence," Meta's number is the relevant estimate. For "how much cash landed," trust your Shopify payout after fees and refunds. Each answers a different question; no single number is correct for all three.

Will setting up the Conversions API make the numbers match?

No. CAPI recovers events lost to ad blockers and consent declines, which narrows tracking gaps. It does nothing about the methodology gaps — view-through, modeling, click-date reporting, last-click vs. window (Meta for Developers). A structural gap remains even with flawless tracking. If revenue jumps right after you add CAPI, that's usually a deduplication misconfiguration, not real growth.

Why does Meta show more purchases but lower revenue than Shopify?

Because of the revenue definition. Many pixel setups pass only the product subtotal as purchase value, while Shopify's total sales includes shipping and tax (Shopify Help). So Meta can report a higher count of purchases at a lower per-order value, making its revenue total come in under Shopify's.

How do refunds affect the revenue gap?

Refunds only lower Shopify's revenue and your payout. Meta typically keeps the original conversion and its revenue, so its total stays inflated after a refund wave (Vaizle). This widens the gap for a reason that has nothing to do with tracking quality.

What's a healthy revenue ratio between Meta and Shopify?

There's no universal target, but a stable ratio matters more than the exact figure. Track your Meta-attributed revenue against your Shopify Facebook-channel revenue weekly. As long as the ratio holds steady, your setup is consistent; a sudden swing is the signal to investigate — often a pixel-and-CAPI deduplication issue rather than a real change in performance.