Why Meta Ads and Shopify Sales Don’t Match

Separate an attribution gap from a reporting problem. Then match your ad spend to the Shopify sales and expenses it belongs with.

Decide which numbers you expect to match

Reconcile the spend first. The amount you deduct as an advertising expense should match what the in-scope ads spent. Then explain the sales gap. Meta’s purchase value reflects orders or purchase events it credits to ads. Shopify’s store sales cover purchases across channels. A Shopify marketing report can apply its own attribution model to the same customer journey.

For example, a shopper might click a Meta ad, come back through a branded search, and buy. Meta can give the ad credit within its reporting window. A Shopify report using last-click attribution can assign the sale to search. Both tools can be following their published rules. See Shopify’s marketing report models and Meta’s Ads Insights reference.

Capture matching report settings

  1. Store and campaign scope. Start with Ads Manager’s account spend. For a shared ad account, isolate campaigns belonging to the Shopify store. Check that you exclude other stores and count each ad’s spend once.
  2. Time window. Use one completed date range. A Toronto store and a Pacific-time account can assign a late-evening order to different reporting days. Check the settings before collapsing hourly or daily rows. Record any difference you cannot align from the available exports. Find the store settings in Shopify’s store details and the account fields in Meta’s ad account reference.
  3. Currency. Label USD and CAD explicitly. When a US-dollar ad account funds a Canadian-dollar store, convert spend with an agreed exchange-rate source and record the date and rate.
  4. Sales definition. Write down whether you use net merchandise sales or include net shipping income. Shopify’s finance reports put shipping and tax outside net sales. Check whether refunds, tax, or shipping change the comparison.

Keep three results side by side

In this illustrative week, Meta’s account shows C$1,150 in spend. C$150 belongs to a different brand, leaving C$1,000 for the Canadian store. After applying the same scope, these are three distinct metrics.

Illustrative Canadian Shopify store, one reporting week
ResultCalculationValue
Meta attributed ROASC$3,600 attributed purchase value ÷ C$1,000 Meta spend3.60×
Store sales to Meta spendC$4,500 Shopify net sales ÷ C$1,000 Meta spend4.50×
Profit after tracked costsC$4,500 net sales − C$1,000 Meta spend − C$2,600 other tracked costsC$900

The 4.50× figure includes store sales from every channel. Label the denominator as Meta spend. For a store-wide sales-to-ad-spend ratio, include the other paid channels in the denominator as well. The profit row assumes the tracked costs cover the expenses being compared.

Investigate gaps that remain after alignment

If ad spend is still off, check filters, currencies, the account ID, and duplicate export rows. If spend matches but attributed purchases suddenly jump, check installation changes and reporting windows. Teams sending purchases through both Meta Pixel and Conversions API can review Meta’s guidance for duplicate events.

Record when each export was pulled, then revisit a completed period after delayed events or refunds have arrived. Keep a short note about remaining differences, such as a changed attribution setting or a shared account. That note makes next week’s numbers easier to interpret.

Move from reconciliation to a profit review

Save the matched spend, Shopify revenue, selected dates, currency, and missing cost lines together. If you want to see how those figures fit in one report, open the Profit Inspector sample dashboard. Use the period selector and profit breakdown to separate store income from ad spend. Then follow the first profit report blueprint with your own exports.

Common questions

Does a difference mean my Meta Pixel is broken?

A different credit rule, reporting period, or sales definition can explain it. Check event setup when the gap changes abruptly or the reported event counts are implausible after the report settings match.

Should I use Meta purchase value as Shopify revenue?

Use Shopify revenue for the store profit calculation. Keep Meta purchase value in a separate attributed ad performance column so the same sale is counted only once in revenue.

Explore a sample profit report

Trace Shopify sales, Meta spend, and each tracked cost through the same report.

Open sample dashboard