Why Shopify, Google Ads and Meta Report Different Sales Numbers
A breakdown of why your Shopify admin, Google Ads and Meta Ads Manager never show matching revenue, with worked examples.
Written by Mantas Jurgutis — Founder, Adsify — builds the Google & Meta automation merchants use daily
Editorially reviewed by Adsify Editorial on March 7, 2026 — Reviewed against Shopify, Google Ads and Meta official documentation.
Three systems, three definitions of a sale
Shopify's admin reports every order that completed checkout, full stop. Google Ads reports a conversion when it can attribute an order to an ad interaction within its attribution model and lookback window. Meta reports a Purchase event attributed within its own separate attribution window and model. These are three genuinely different counting methods, not three measurements of the same thing, so expecting them to match exactly is a misunderstanding of what each number represents.
Attribution windows differ by platform
Google Ads' default attribution setting for many conversion actions uses data-driven attribution with a lookback window commonly set to 30 or 90 days for clicks. Meta's default is 7-day click and 1-day view. If a customer clicks a Meta ad, doesn't buy, then clicks a Google ad 10 days later and purchases, Google may claim that conversion within its window while Meta will not, because the click fell outside Meta's 7-day window even if Meta's ad played a role earlier in the journey.
A worked example with real numbers
Assume a store has 200 total orders in a week worth $20,000 in Shopify. Google Ads reports 60 conversions worth $6,500 within its attribution window. Meta reports 55 Purchase events worth $6,000. These can overlap: if 25 of those orders were influenced by both a Google click and a Meta click within each platform's own window, both platforms legitimately claim credit for the same $2,500 of revenue. Add Google's $6,500 and Meta's $6,000 and you get $12,500, which is not 'missing' revenue, it's double-counted credit under two different attribution models, layered on top of $7,500 of orders neither platform attributed to ads at all.
Multi-touch reality vs. last-click platforms
Both Google Ads and Meta primarily report conversions using their own platform's view of the customer journey, essentially a form of self-attributed last-touch-within-window credit. Neither platform natively subtracts credit claimed by the other. This is why summing 'ROAS' across ad platforms and comparing it to total store revenue always overstates how much of your revenue came from paid ads.
iOS and browser privacy effects
Safari's Intelligent Tracking Prevention caps first-party cookie lifespan, which affects gclid-based Google Ads tracking for return visits beyond that window unless Enhanced Conversions or server-side matching recovers the link. iOS 14.5+ App Tracking Transparency reduced Meta's ability to track cross-app behavior for opted-out users, which is part of why Meta shifted default attribution windows down from 28-day to 7-day click in the first place, per Meta's own published changes.
Currency and refund timing
Shopify shows revenue net of any refunds processed by the time you check the report, updated immediately. Google Ads and Meta typically process refund/cancellation adjustments with a delay, and some third-party pixel setups don't send refund adjustments back to the ad platform at all, meaning a refunded order can keep inflating reported ad platform revenue indefinitely, while Shopify's own reports already reflect the refund.
Deduplication problems compound the gap
If a store runs both a manually pasted legacy Meta pixel and an app-installed Meta pixel simultaneously, Meta may report a Purchase count higher than actual order count for that store, independent of any attribution window difference. This is a data quality bug, not an attribution philosophy difference, and it's worth ruling out first in Meta Events Manager's source breakdown before assuming the discrepancy is purely about attribution windows.
View-through conversions
Meta counts 1-day view-through conversions by default, meaning someone who saw (but didn't click) an ad and purchased within a day gets attributed to that ad. Google Ads has its own separate view-through conversion metric, usually reported alongside but not combined into the main conversions column by default. A store owner comparing 'conversions' columns across platforms without checking whether view-through is included will see numbers that aren't apples to apples even within a single platform's own reporting choices.
How to reconcile the numbers sensibly
Rather than trying to make Google Ads, Meta and Shopify match exactly, track a blended metric: total ad spend across both platforms divided by total Shopify revenue for the same period, sometimes called blended ROAS or blended MER (marketing efficiency ratio). This sidesteps the attribution-window double-counting problem because Shopify's revenue figure doesn't care which platform claims credit.
Why UTM-based order attribution helps
Because Shopify records the landing page and referring domain data through order attributes when UTM parameters are present on the entry URL, cross-checking self-reported ad platform conversions against Shopify's own utm_source-based order tagging gives a third, independent view that doesn't rely on either platform's cookie or pixel matching, though it depends on UTMs surviving through checkout, which isn't automatic on every setup.
Where profit tracking changes the conversation
Revenue-based ROAS numbers from Google Ads or Meta don't account for product cost, shipping, discounts, or payment processing fees, so even a fully reconciled revenue number across platforms can still overstate profitability. This is the gap tools like Adsify's profit and POAS (profit on ad spend) tracking are built to close, layering cost-of-goods and fee data on top of the order data pulled from Shopify webhooks so budget decisions are based on margin, not just attributed revenue.
What to actually do about the discrepancy
Accept that Google Ads and Meta will never sum to Shopify's total revenue by design, verify there's no duplicate pixel firing inflating either platform independently, check both platforms' attribution window settings under their respective conversion/reporting settings, and anchor budget decisions on blended MER plus profit margin rather than each platform's self-reported ROAS taken at face value.
