Why Meta, Google, and Shopify Never Agree on ROAS (And What to Trust)
Meta ROAS vs Shopify never match. Learn what each platform counts, the seven causes of gaps, profit ROAS, and a 30-minute diagnostic for UK DTC brands.
Alpomi Team
Content Team
Why Meta, Google, and Shopify Never Agree on ROAS (And What to Trust)
You open three tabs before Monday stand-up. Meta says 4.2x.
Google says 3.8x. Shopify says 2.1x.
Same store, same week, same ad spend. You are not bad at ads.
Each platform counts a different version of a conversion on a different clock. Buying another dashboard does not remove the gap.
It usually moves the argument to a fourth screen.
If you spend £10k or more monthly on Meta and Google, a 40% gap between platform ROAS and Shopify-attributed revenue is not rounding error. On £40k ad spend, that is £16k of attributed revenue you cannot explain to finance in one sentence.
The fix is not picking the tab that flatters you most. You need to name what each system counts, decide whether you care about revenue or profit, and agree one source of truth before anyone changes budget.
At a glance: what this guide covers
This post walks through what Meta, Google, and Shopify each count as a conversion, the seven structural reasons their ROAS figures diverge, a thirty-minute diagnostic you can run in a spreadsheet, and how to choose one source of truth for budget decisions. If you are evaluating attribution tools, pair this with our GMV pricing explainer and parallel-run switching playbook.
Why three tabs disagree by default
On a normal Monday, Meta Ads Manager often looks acceptable. Google Ads is a little lower but still workable.
Then Shopify Analytics shows channel revenue that does not match either platform. That sequence is normal for UK Shopify DTC brands running paid on Meta and Google.
It is usually not a broken pixel or a lazy media buyer. It is three systems with three definitions of conversion.
Founders often treat the highest number as correct because it feels like permission to scale. That is expensive.
The platform that wants more budget tends to report the rosiest picture. The number finance should care about is closer to cash after COGS, returns, and fees, not the largest figure in Ads Manager.
What each platform actually counts
Meta (Facebook and Instagram)
Meta counts conversions it can attribute inside its ecosystem. Default settings are often 7-day click, 1-day view, which means someone can see an ad, buy days later, and Meta still claims credit.
Meta uses pixel and Conversions API data. It does not see organic traffic, email, or influencer sales unless those paths also touch Meta tracking.
Wide windows and multiple campaigns claiming the same purchase inflate platform ROAS.
Meta's attribution documentation explains window options. Many UK stores never change defaults and then wonder why Shopify disagrees.
Google Ads
Google distributes credit across Search, Shopping, Performance Max, and YouTube using models that range from last click to data-driven attribution. Google's overview shows how each model splits credit. Google counts activity on Google inventory.
Without Enhanced Conversions or clean offline import, Google does not see your full Shopify order picture. Shopping and branded search often look strong because retargeting and brand demand inflate the numerator.
Shopify
Shopify reports revenue from completed orders. Marketing reports try to attribute those orders to channels using UTMs, referrer data, and integrations.
When UTMs are missing or wrong, Shopify buckets sales as direct or mislabels the source. Shopify often shows the lowest ROAS of the three because it is closer to cash, but it is still gross revenue, not profit.
Shopify's marketing reports documentation is explicit: attribution quality depends on how traffic arrives. No UTM, no clean story.
Seven common causes of large gaps
When meta roas vs shopify gaps exceed 30%, one or more of these is usually involved.
Attribution windows. Meta's 7-day click and 1-day view give credit for purchases Shopify may attribute to email or organic on the order date.
View-through conversions. A shopper scrolls past your ad and buys from a Google search two days later. Meta may still claim credit. Shopify sees Google or direct.
Missing or broken UTMs. Paid social without utm_source and utm_medium lands as direct in Shopify. The stack looks broken when tagging is the problem.
Duplicate pixel fires. Double Purchase events inflate Meta and Google without adding real orders.
Refunds and cancellations. Platforms report gross conversion value at click time. Shopify adjusts when orders refund.
Currency and timezone drift. GBP store, USD ad account, or midnight boundaries between London and platform UTC create daily noise that compounds.
iOS and consent gaps. ATT and cookie banners reduce signal. Platforms model estimated conversions. Shopify counts only completed checkouts.
Polar Analytics and Niblin's reconciliation guide walk through alignment in plain language. Bookmark both.
Which suspect when?
:::table caption="ROAS gap diagnostic: symptom → likely cause → first fix" | Symptom | Likely cause | First fix | |---------|--------------|-----------| | Meta ROAS 50%+ above Shopify | Wide window or view-through | Narrow Meta to 7-day click only for comparison | | Google strong, Shopify "direct" spike | Missing UTMs on paid social | Audit URL templates in Meta Ads Manager | | All platforms high, refunds later | Gross vs net timing | Recalculate net ROAS after refunds | | Gap spikes on iOS-heavy weeks | ATT / modeled conversions | Compare Android cohort; expect some permanent gap | | Random daily swings | Timezone or duplicate pixels | Align to Europe/London; dedupe Purchase events | | Shopify low but bank fine | Organic/email driving sales | Audit direct landing pages before cutting spend | :::
Example: Leeds supplement brand
A UK supplement store doing roughly £85k monthly revenue saw Meta at 4.6x, Google at 3.9x, and Shopify marketing reports at 2.3x against total ad spend. In a sample week, eleven of thirty orders had blank utm_source.
Six were labeled direct despite paid social landings in session data. Meta claimed view-through credit on email buyers who had seen Instagram ads days earlier.
Over two weeks they standardised UTM templates, narrowed Meta reporting to 7-day click for comparisons, and loaded COGS to see profit ROAS at 1.6x instead of 4.6x revenue ROAS. Meta platform ROAS fell to 3.8x as expected.
Shopify-attributed paid ROAS rose to 2.9x. The remaining gap was documented as view-through and organic assist.
Finance signed off because the story was explainable.
That is the target: not perfect match, but a narrative your CFO can repeat.
Revenue ROAS vs profit ROAS
Platform ROAS is almost always revenue ROAS: ad spend divided by attributed gross sales. That ignores COGS, shipping subsidies, payment fees, returns, and discount codes.
A 3.0x revenue ROAS on 60% margin products can be healthy. On 30% margin it can be loss-making.
True ROAS for operators usually means profit ROAS: contribution margin after variable costs divided by ad spend. None of the three native tabs show this by default. You need COGS in the stack.
Meta at 4.0x revenue ROAS can feel like a scale signal. Profit ROAS at 1.4x says fix unit economics first. When you evaluate a shopify attribution tool, ask whether it calculates margin-adjusted ROAS or only stitches platform revenue.
A 30-minute diagnostic you can run this week
You do not need a data science team. You need one clean week, one spreadsheet, and honest UTMs.
Minutes 0–10: Pick a normal trading week with no flash sale or site outage. Export Meta purchase value, Google conversion value, and Shopify total sales for the same seven days.
Minutes 10–20: Pull twenty orders from Shopify. Note UTM source/medium, referrer, and whether Meta or Google reports a matching conversion. If more than a quarter have blank UTMs, fix tagging before you fix tools.
Minutes 20–25: Calculate platform ROAS for Meta and Google, then Shopify-attributed channel revenue divided by total ad spend (Meta + Google).
Minutes 25–30: Write the gap: (Meta ROAS − Shopify ROAS) ÷ Meta ROAS. Above 40%?
Windows or UTMs are prime suspects. Below 15%?
You are healthier than most. Repeat monthly.
Trend beats one snapshot.
Spreadsheet structure
Copy this layout into Google Sheets or Excel for your seven-day window. Fill one row per week and track trend, not a single snapshot.
:::table caption="Weekly ROAS reconciliation template" | Metric | Meta | Google | Shopify | Notes | |--------|------|--------|---------|-------| | Ad spend (7 days) | | | N/A | Same range, GBP | | Reported conversion value | | | N/A | Platform export | | Attributed channel revenue | N/A | N/A | | Shopify marketing report | | Total store revenue | N/A | N/A | | Sanity check | | Revenue ROAS | | | | Denominator = Meta + Google | | Refunds same week | | | | Subtract on Shopify side | | Profit ROAS (if COGS loaded) | | | | Decision metric | :::
Platform comparison at a glance
:::table caption="What each tab optimises for" | Platform | What it counts | Typical bias | Best use | |----------|----------------|--------------|----------| | Meta | Pixel/CAPI conversions in Meta windows | Highest ROAS | Creative and audience tests inside Meta | | Google | Google-attributed conversions across inventory | Strong Shopping/PMax | Bid and budget inside Google | | Shopify | Completed orders + UTM channel labels | Lowest ROAS | Cash-adjacent revenue and MER | :::
What to fix and what to accept
Some gaps should be closed. Broken CAPI or Enhanced Conversions, campaign URLs without UTMs, and budget calls based on revenue ROAS when margins are thin all belong in the fix column.
Some mismatch is structural. Platform numbers will not match Shopify order for order.
View-through will always disagree with last-click Shopify reports. Modeled conversions after iOS changes are estimates, not audit truth.
The goal is a single source of truth for decisions: usually Shopify orders plus COGS plus agreed attribution rules, with platforms used for optimisation inside their own walls.
Common mistakes that widen the gap include scaling budget off Meta ROAS alone, changing attribution settings mid-quarter without logging it, ignoring MER when all platforms over-report together, letting agencies pick reporting windows without alignment, and treating Shopify "direct" as free traffic when UTMs are missing.
Your options when tabs still disagree
Spreadsheet reconciliation is free and fine under roughly £30k monthly ad spend if you touch it weekly. Attribution SaaS tools stitch platforms to Shopify and add modeled layers, often with GMV-priced contracts. See why Triple Whale bills climb with GMV and how to compare tools by band.
Alpomi pulls Shopify orders alongside Meta and Google spend into one UK-friendly view with flat monthly pricing. It is built for brands that want Playbook recommendations and Action Board accountability, not another ROAS chart alone.
We are not claiming perfect attribution. We are claiming honest math, one login, and a path from three conflicting numbers to one budget rule your team can defend.
Connect Shopify and your ad accounts. Run your existing tool in parallel for 2–4 weeks if you are switching.
Compare order-level match rates, not vanity dashboards. Our switching playbook covers that week by week.
Frequently asked questions
Why does Meta ROAS usually look higher than Shopify? Meta uses wider windows and view-through credit. Shopify counts completed orders and relies on UTMs for channel labels.
What is true ROAS for Shopify stores? Usually profit ROAS: contribution margin after COGS, fees, shipping subsidies, and average returns, divided by ad spend.
Should I trust Google or Meta for scaling budget? Trust each platform for intra-platform optimisation. Trust Shopify-grounded profit ROAS for total spend caps and MER targets.
Do I need a Shopify attribution tool? If you spend over £5k/month on paid and still reconcile in spreadsheets, probably. Compare options in our GMV band guide. Under £5k/month, fix UTMs first.
Can the three numbers ever match exactly? Rarely. Aim for explainable gaps under 20% after UTM fixes and aligned dates.
How does Alpomi differ from attribution-only tools? Alpomi unifies Shopify, Meta, and Google with flat pricing on /pricing, profit-aware views when COGS is connected, and closed-loop recommendations on the Action Board. See /for-ecommerce/dtc and /integrations.
Stop refreshing three tabs and hoping the best number is real. Map the gap, fix UTMs, measure profit ROAS, and pick one source of truth. Start free with Alpomi.
Connect Shopify and your ad platforms. No card required.
Run beside whatever you use today for 2–4 weeks and compare the numbers that pay the bills.
About Alpomi Team
Alpomi Team is the Content Team at Alpomi, bringing years of experience in digital advertising and marketing analytics. Passionate about helping businesses maximize their advertising ROI through data-driven strategies.