overads
All postsPaid media10 min read

Meta vs Shopify ROAS: why the two rarely agree and how to reconcile them

Meta credits purchases inside each ad set's attribution setting; Shopify credits an order to the last non-direct click it saw. What Meta changed in 2025 and 2026, how Shopify's models work, and a reconciliation you can run in a spreadsheet.

overads teamPublished Updated

TL;DR

  • Meta and Shopify ROAS differ because each credits different sales. Meta credits purchases inside each ad set's attribution setting, which can include a sale after a view or a non-link engagement. Shopify credits an order to the last non-direct click it saw on your store.
  • Since March 2026, Meta's click-through attribution counts only link clicks for website and in-store conversions. Likes, shares and saves moved to a renamed engage-through setting, and an engaged video view now takes 5 seconds instead of 10.
  • Shopify's marketing data defaults to last non-direct click, and a custom report that pairs a sales metric with a marketing dimension preselects last click. Shopify says its any click model can help reconcile what each channel reports.
  • To reconcile, match time zone, currency and dates, then set Meta's 7-day click purchase value beside Shopify's any-click sales for your Meta ad traffic. For budget calls, total store sales over total ad spend avoids attribution altogether.
  • Neither report shows what an ad caused. Meta's own March 2026 post calls incrementality experiments such as Conversion Lift the gold standard for that question.

What changed: updated on October 26, 2026 to add X Ads, which overads has read since October 23, 2026, to the platforms it reads; the Meta and Shopify method is unchanged. It was rewritten on September 28, 2026 for Meta's 2025 and 2026 attribution changes and Shopify's current attribution models. The earlier version described Meta's old defaults, called Shopify a last-click tool and made product claims about overads that were not accurate.

Why Meta and Shopify credit different sales

Meta and Shopify report a different ROAS for the same ads because each one decides for itself which sales an ad earned. Meta counts a purchase event from your pixel or the Conversions API when it falls inside the ad set's attribution setting. Shopify credits an order to a channel it saw in the shopper's visits to your store, using referrers and campaign tags.

The two also measure different amounts. Meta's pixel reference requires a value and a currency on every Purchase event, so Meta's purchase value is whatever your store sends in that field. Shopify's sales reports define total sales as gross sales minus discounts and sales reversals, plus taxes, duties, shipping charges and fees. Net sales is the same figure without taxes, duties, shipping and fees. Shopify includes pending, unpaid and canceled orders in these reports. A return lowers total sales on the date it is processed.

Meta's guide to conversion count differences and Shopify's marketing reports help between them name most of the causes. The table groups them by which number each one tends to raise.

Where the gap between Meta and Shopify comes from
CauseWhat happensTends to raiseSource
View and engagement creditMeta can credit a sale to an ad someone saw or engaged with without clicking; Shopify only sees visits to the storeMetaMeta attribution settings help
Journeys across devicesMeta measures people across devices; Shopify counts sessions and visitors with cookies on each deviceMetaMeta conversion count differences; Shopify marketing reports
Lost referrersA shopper who comes back later in a new tab, or through a shortened link, reaches the store with no referrer, so the visit is not tied to the adMetaMeta conversion count differences; Shopify marketing reports
Ad blockersThe Meta pixel may not fire, so Meta never receives the purchaseShopifyMeta conversion count differences
Organic social clicksShopify's Social referrer covers any link clicked on social media, including unpaid posts and shared linksShopifyShopify marketing reports
Repeat purchasesMeta's All conversions counts every conversion after the ad; its First conversion counts only the firstMeta, when All conversions is usedMeta compare attribution settings help
Time zone, currency and dateDifferent settings move sales between days or change the valueEitherMeta troubleshooting help

What Meta changed about attribution in 2025 and 2026

Meta changed what counts as a click in 2026: for website and in-store conversions, click-through attribution now counts only link clicks. Meta's announcement of March 3, 2026 said the rollout would begin later that month. Until then, Meta credited every kind of click, including a share, a save or a like, while many third-party tools credit only website link clicks. Conversions after a share, a save or another non-link click now fall under engaged-view attribution, which Meta renamed engage-through attribution. Meta also shortened an engaged view on a video ad from 10 seconds to 5 seconds.

Meta's attribution settings help page now lists three standard settings for website and in-store conversions. Click-through counts events within 1 day or 7 days after a link click. View-through counts events within 1 day after an impression. Engage-through counts events within 1 day after any click on the ad other than a link click, or after a video play of 5 seconds (97% of the video when it is shorter). The page adds that some accounts may still use the earlier click-through and engage-through versions while the change rolls out.

Two earlier changes on Meta's API side matter to anyone who exports Meta data into a spreadsheet or a reporting tool. Meta's Insights API best practices page says that from June 10, 2025 the API follows each ad set's attribution setting, as Ads Manager does, and dates off-Meta actions such as web purchases by when they happened. Meta's 2025 API change log adds that from January 12, 2026 the 7-day and 28-day view-through windows return no data.

Meta changes that affect a Meta vs Shopify comparison, as of September 28, 2026
DateChangeWhat it means for the comparison
June 10, 2025The Insights API follows each ad set's attribution setting, as Ads Manager does, and dates web purchases by when they happenedMeta made the change to reduce gaps between an API export and Ads Manager
January 12, 20267-day and 28-day view-through windows return no data in the APIOlder spreadsheets built on those windows stop filling
March 2026 onwardClick-through counts link clicks only; shares, saves and likes move to engage-through; an engaged video view takes 5 secondsMeta's click-through figure is closer in kind to Shopify's click-based view; the engage-through figure is credit Shopify cannot see

Meta states the aim plainly: it hopes the new definition makes its reporting line up better with third-party tools such as Google Analytics. It does not promise that the numbers will match, and the view-through and engage-through credit still has no counterpart in a store's own reports.

How Shopify attributes a sale by default

Shopify credits a sale with its last non-direct click model by default when you view marketing activity data: the last channel the shopper came from before buying, ignoring direct visits. If a journey holds only direct visits, the order stays direct. That is not the same as last click, which counts direct visits too. Shopify's marketing reports help names both as defaults in different places. It says a report that combines a sales metric with a marketing dimension, such as gross sales by referring channel, selects the last click model by default. Check which model a report shows before comparing it with Meta.

Shopify's attribution models, from Shopify's marketing reports help
ModelHow it credits an orderWhat Shopify says it is for
Last non-direct clickAll credit to the last channel before purchase, skipping direct visitsThe default for marketing activity data; the last channel that influenced a sale
Last clickAll credit to the last channel, direct visits includedThe final impact before purchase
First clickAll credit to the first channel, direct visits includedChannels that create top-of-funnel interest
Any clickFull credit to every channel the shopper clicked, so credit adds up to more than your ordersOne channel at a time, and reconciling what each channel reports
LinearEqual credit to each click in the journey, direct visits includedMore complex journeys

Shopify's tracking has limits of its own. Its marketing reports cover Online Store orders. If a visitor does not buy within 30 days of a session, the first-interaction referrer resets to the next one. After an order, the next referrer starts a new journey. Performance by referring channel, Performance by marketing activity and Performance by UTM campaign are the default reports that let you choose the model.

A four-step reconciliation you can run in a spreadsheet

A Meta vs Shopify reconciliation compares like with like in four steps, and its job is to explain the gap, not to close it. The steps follow Meta's troubleshooting checklist and Shopify's attribution models. The order and the choice of columns are this article's method.

  1. Align the frame. Use the same time zone, the same currency with the same decimal places, and the same dates in both tools. Meta lists each of these as a common cause of mismatched counts. Leave out the last few days, which are still settling, as our guide to how fresh ad platform data is explains.
  2. Pull two Meta figures. In Ads Manager, export purchase value under the ad sets' own attribution setting and, from Compare attribution settings, under 7-day click. Meta says you can compare 1-day view, 1-day click, 7-day click and 28-day click regardless of what a campaign optimizes for. Choose First conversion if customers reorder quickly, because Shopify starts a new journey after each order.
  3. Pull two Shopify figures. Open Performance by UTM campaign, filtered to the tags on your Meta ads, and read sales under the any click model and the last non-direct click model. Without UTM tags on the ads, Performance by referring channel is the fallback, and its Facebook and Instagram rows include unpaid social clicks. Pick the sales figure that matches what your Purchase event sends as its value, for example total sales if it sends the order total.
  4. Record the gap each week and label it. When the ad sets count views or engagements as well as 7-day clicks, the difference between Meta's setting and its 7-day click figure is roughly the view-through and engage-through credit, which Shopify cannot see by design. The gap between Meta's 7-day click figure and Shopify's any-click figure estimates cross-device journeys, lost referrers and window differences. Watch the gap's trend over several weeks rather than its size in one.

The table works one week through with invented figures, to show the arithmetic. It is not data from any store.

A worked week with illustrative figures ($2,000 of Meta spend)
FigureWhere it comes fromSalesROAS
Meta, ad set settingAds Manager, the ad sets' own attribution setting$9,0004.5x
Meta, 7-day clickAds Manager, Compare attribution settings$6,0003.0x
Shopify, any clickPerformance by UTM campaign, Meta ad tags$4,8002.4x
Shopify, last non-direct clickPerformance by UTM campaign, Meta ad tags$3,6001.8x

Read top to bottom, the example explains the whole gap without either tool being wrong. In this example, $3,000 of Meta's figure came from view-through or engage-through credit. Of the $6,000 left, Shopify's any click model found $4,800, so $1,200 was lost to devices, referrers or the longer Meta window. Last non-direct click gave Meta $1,200 less again, because another channel was clicked later in some of those journeys.

Exporting Meta data without counting a sale twice

A Meta export counts one sale more than once if every purchase row in it is added up, because Meta reports purchases under several action types at the same time. Meta's Ads Action Stats reference lists pixel purchases (offsite_conversion.fb_pixel_purchase) and on-Facebook purchases (onsite_conversion.purchase) as action types, and lists omni_purchase among grouped action types, which combine others. Summing a grouped type with the types it groups repeats the same sales.

Revenue rows need the same care. Meta's pixel reference lists value as a parameter on events such as ViewContent and Search, not only Purchase, so the value column of an export can also carry events that are not sales. Take one purchase value per row, from one action type, and leave the rest out.

overads' own Meta connector is built around this. It reads one purchase value per row, taking omni_purchase first and falling back to the other purchase types in a fixed order, and it never adds them together. It counts conversions the same way, with one purchase type and one lead type per row.

When a blended number is the better check

A blended ratio, total store sales divided by total ad spend across every platform, is the better check when the question is whether the whole ad budget pays. Some teams call it MER, marketing efficiency ratio. It needs no attribution at all, so no platform can inflate it. It also cannot say which channel earned a sale. And it includes sales that ads did not cause, such as repeat and organic orders.

Platform ROAS stays useful inside the platform. Meta's help page warns that results cannot be compared across ad sets with different attribution models, so compare ad sets and creatives only under the same setting. For what an ad caused, Meta's March 2026 post points to incrementality experiments such as Conversion Lift. Meta's help page also describes an incremental attribution model that predicts whether a conversion was caused by an ad.

Where overads fits

overads does not read Shopify, so it cannot run this reconciliation for you. It has no Shopify connector and never reads a store's orders, which the overads page for DTC operators states plainly. Use the spreadsheet method above to set store sales against ad data.

overads reads Meta, Google, X and Snapchat ad accounts read-only. It proposes changes, and a person applies them in the platform's own ad manager. Meta, Google and X sync every campaign, ad set and ad; Snapchat shows spend totals only. overads counts each Meta purchase once, as described above. Its Meta sync sets no attribution window of its own, so under Meta's June 2025 rule its Meta figures follow each ad set's attribution setting.

The ROAS that Ads manager calls blended is not the store-sales ratio in this article. It divides the conversion value the ad platforms report by total ad spend, so it carries each platform's attribution. When connected accounts report in different currencies, overads labels the totals as unconverted rather than converting them; our guide to normalizing cross-platform ad metrics shows how to put them on one basis yourself. A team that needs order-level attribution from its own store data needs a dedicated attribution tool. Meta says it has started working with analytics providers such as Northbeam and Triple Whale to include both clicks and views in their attribution.

Frequently asked questions

Should I switch my ad sets to 1-day click so Meta matches Shopify?

Not just for reporting. Meta's help page says the attribution choice also informs ad delivery, so changing it changes what the ad set optimizes for. Meta's Compare attribution settings columns show other windows without touching the campaign.

Did Meta's March 2026 attribution change affect what I pay?

No. Meta's announcement says there is no change to how advertisers are billed; only how conversions are credited in reporting changes.

Does the link-click change apply to app or messaging campaigns?

Meta's announcement scopes the new click-through definition to website and in-store conversions, and says it rolls out to campaigns optimizing for those. Its help page lists separate rules for iOS 14 and later app campaigns.

Sources

  1. Simplifying Ad Measurement for a Social-First World. Meta for Business, Mar 3, 2026. Accessed Sep 28, 2026.
  2. About attribution models and attribution settings. Meta Business Help Centre. Accessed Sep 28, 2026.
  3. Compare attribution settings in Meta Ads Manager. Meta Business Help Centre. Accessed Sep 28, 2026.
  4. Troubleshoot common reporting differences between Meta Ads Reporting and third-party reporting tools. Meta Business Help Centre. Accessed Sep 28, 2026.
  5. About conversion count differences between Meta Ads Reporting and third-party reporting tools. Meta Business Help Centre. Accessed Sep 28, 2026.
  6. Limits and Best Practices (Ads Insights API). Meta for Developers. Accessed Sep 28, 2026.
  7. 2025 Out-of-cycle changes (Marketing API). Meta for Developers. Accessed Sep 28, 2026.
  8. Ads Action Stats (Marketing API reference). Meta for Developers. Accessed Sep 28, 2026.
  9. Meta Pixel API reference. Meta for Developers. Accessed Sep 28, 2026.
  10. Marketing reports. Shopify Help Center. Accessed Sep 28, 2026.
  11. Sales reports. Shopify Help Center. Accessed Sep 28, 2026.
  12. overads product summary (llms.txt). overads. Accessed Oct 10, 2026.
  13. overads for DTC operators. overads. Accessed Sep 28, 2026.

Drafted with AI assistance, then checked against primary sources and the product itself by the overads team.

Read Meta, Google, X and Snapchat ad data in one place

overads reads Meta, Google, X and Snapchat ad accounts read-only, counts each Meta purchase once, and proposes changes that you apply in the platform. It does not read your Shopify store.

Get started