MishaBook a demo

Aug 14, 2026

Adjudicating Meta ROAS vs Shopify MER Without Politics

Attribution discrepancy occurs when ad platform metrics (ROAS, CPC, conversions) diverge from ecommerce platform metrics (MER, AOV, revenue) due to differences in conversion windows, pixel implementation, and order source assignment.

Why the Numbers Always Disagree

Meta Ads Manager and Shopify Analytics use different attribution models and measurement windows. Meta defaults to 7-day click and 1-day view attribution. Shopify uses last-click attribution by default, with a 30-day window. Neither is wrong - they're answering different questions.

Meta measures conversions that fire the pixel within its window. Shopify measures orders that complete within its window. A customer who clicks a Meta ad on day 6, browses for 3 days, and purchases on day 10 will count in Shopify (within 30 days) but not in Meta's 7-day click window.

Pixel implementation also matters. If the pixel fires on 'thank you' page load but the order takes 2 hours to process, Meta may not attribute it. If the pixel doesn't fire at all on some order paths (guest checkout, mobile app, third-party integrations), Meta sees fewer conversions than Shopify records.

The Three Measurement Layers

Layer 1 is the pixel event. Meta counts a conversion when the pixel fires within its attribution window. This is the smallest number and the most Meta-specific.

Layer 2 is the order. Shopify records an order when payment clears. This includes orders from traffic sources Meta can't see (direct, email, organic, dark social). This is always larger than Meta's pixel count.

Layer 3 is revenue attribution. Shopify's attribution reports assign orders to traffic sources based on last-click within 30 days. This is what MER measures. Meta's ROAS measures revenue divided by ad spend, using only conversions Meta attributed.

  • Meta ROAS = (Revenue from Meta-attributed conversions) / (Meta ad spend)
  • Shopify MER = (Total revenue from all sources) / (Total marketing spend across all channels)
  • Shopify's 'Meta' channel MER = (Revenue attributed to Meta in Shopify) / (Meta ad spend)

The Reconciliation Checklist

Start by isolating Meta's contribution. Pull Meta's total conversions and total revenue from Ads Manager. Divide revenue by ad spend to get Meta's reported ROAS. Write this down.

Next, check Shopify's attribution. Go to Analytics > Marketing. Find the Meta channel. Note the revenue attributed to Meta and the number of orders. This is Shopify's view of Meta's performance.

Compare the two revenue numbers. If Meta reports $50k revenue and Shopify attributes $42k to Meta, the 16% gap is likely attribution window mismatch or pixel implementation issues. If the gap exceeds 25%, investigate pixel firing.

  • Verify the pixel is installed on the thank you page (not just the cart page)
  • Check that standard events (Purchase) are configured, not just custom events
  • Confirm the pixel isn't blocked by consent managers or ad blockers (use browser console to test)
  • Review Shopify's attribution settings - confirm it's using last-click, not first-click or data-driven
  • Check for order source assignment - some orders may be tagged as 'direct' when they should be 'paid_search'

When Meta ROAS Looks Too Good

Meta ROAS of 4.0x or higher while Shopify MER is 1.5x suggests Meta is over-attributing. This happens when the pixel fires but the order would have happened anyway (brand search, repeat customers, high organic traffic).

Meta's attribution model gives credit to any conversion within the window, even if another touchpoint was more influential. A customer who sees a Meta ad, then searches the brand name, then purchases will credit Meta even though the brand search was the deciding factor.

To test: pull Meta's conversion data for new vs returning customers. If 60%+ of Meta conversions are returning customers, and your repeat purchase rate is 40%, Meta is over-attributing to returning traffic.

When Shopify MER Looks Too Low

Shopify MER includes all marketing spend (paid ads, email, content, affiliates). If MER is 1.2x while Meta ROAS is 3.0x, the gap reflects other channels underperforming or non-marketing costs being included.

Check the denominator. Is Shopify's 'marketing spend' pulling from a custom field, a Shopify app, or manual entry? Misclassified spend (shipping costs, refunds, platform fees) will deflate MER.

Isolate Meta's contribution to MER. Take the revenue Shopify attributes to Meta, divide by Meta ad spend only. If this number is 2.1x and Meta's reported ROAS is 2.8x, the 25% gap is normal attribution window variance.

The Decision Rule: Which Number to Trust

For paid channel performance (Meta, Google, TikTok): use the platform's ROAS as the leading indicator, but validate with Shopify's channel-specific MER. If they diverge by more than 30%, investigate pixel implementation.

For overall business health: use Shopify MER. It includes all revenue and all marketing spend. It's the only number that tells whether the business is profitable.

For budget allocation: use Shopify's channel-level attribution. It shows which channels drive orders that stick (don't get refunded) and which drive high-AOV customers. Meta ROAS alone doesn't account for refunds or customer quality.

  • If Meta ROAS > Shopify Meta MER by >30%: audit pixel implementation and attribution window
  • If Shopify MER < 1.5x: check that all marketing spend is captured in the denominator
  • If Meta ROAS < 1.5x but other channels show >2.0x: test creative, audience, and bid strategy before cutting spend
  • If conversion counts differ by >20%: check for order source misclassification in Shopify

Implementation: Monthly Reconciliation Process

Run this audit monthly. Pull Meta's Ads Manager summary (conversions, revenue, spend) for the calendar month. Pull Shopify Analytics for the same period, filtering to the Meta channel. Create a simple spreadsheet: Meta reported ROAS, Shopify Meta MER, variance %, and notes.

If variance exceeds 20%, investigate that month's pixel changes, iOS updates, or traffic pattern shifts. Document the finding and the fix.

Share the reconciled number with the team - not the platform number or the Shopify number, but the reconciled understanding of what Meta actually drove. This prevents false confidence in either system.

Questions

FAQ

Should we trust Meta or Shopify more?

Neither alone. Meta measures what it can see (pixel fires within its window). Shopify measures what it records (orders that complete). Use Meta ROAS to optimize campaigns. Use Shopify MER to assess profitability. The truth is in the overlap - revenue both systems agree on.

Why does Meta show more conversions than Shopify attributes to it?

Meta counts pixel fires. Shopify counts orders. If the pixel fires but the order is later attributed to a different source (direct, email, organic), the counts diverge. Also, some pixel fires don't result in orders (cart abandoners, test purchases, refunds).

Is a 20% discrepancy between Meta ROAS and Shopify MER normal?

Yes. Attribution windows, pixel implementation, and order source assignment create natural variance. Beyond 30%, investigate. Below 20%, accept it as measurement noise and focus on trend direction, not absolute accuracy.

How do we know if the pixel is firing correctly?

Open a test order in an incognito browser. Use the browser console (F12, Network tab) to confirm the pixel fires on the thank you page. Check Meta's Ads Manager conversion count the next day - it should match test orders. If not, the pixel isn't firing or is blocked.

Want this on your account?

Thirty minutes. Bring the number that keeps you up.

More from the blog