Skip to content

How to audit Meta ads conversions, step by step

Start in Events Manager with coverage, matching and diagnostics for Purchase. Then set Ads Manager's claim against what Meta received and against your Shopify orders. Read the modeled and incremental results, and settle the rest with a lift test or a geo holdout.

By , Founder & CEOUpdated 8 min read

Run the numbers for your store: the free break-even ROAS calculator.

To audit Meta's conversions, work from the data up. First check that Meta receives and matches your purchases. Then compare what Ads Manager claims with your Shopify orders. Then see how much is estimated or would have sold anyway. If the first checks fail, fix the data before you judge any ad.

Open four tabs: Events Manager, Ads Manager, Experiments and your Shopify admin. Use one closed week, so late purchases have settled, and the same dates everywhere. Each step answers one question, and the order matters: a count built on broken events is not worth discounting.

Step by step

  1. Count what Meta received. In Events Manager, select your dataset, find Purchase and click View details. The Event overview tab shows browser events from the pixel and server events from the Conversions API. Note the server count for your week. The total adds pixel and server copies without removing duplicates, so the server count is the cleaner number. Events Manager hears about all buyers, whether or not they saw an ad. These breakdowns need the Conversions API; with the pixel alone, some tabs may be missing. Menu path: Events Manager > your dataset > Purchase > View details > Event overview.
  2. Read coverage and matching. On the Event coverage tab, Meta advises a 75% ratio of Conversions API events to pixel events. The Event matching tab shows how well purchases tie to Meta accounts. Meta scores that match quality from 0 to 10. A weak score means fewer of your sales can be credited to anyone who saw an ad. Menu path: the same View details screen, Event coverage and Event matching tabs.
  3. Clear the Diagnostics tab. A red icon next to a data source marks critical issues. Open each active issue and follow the fix Meta suggests. Menu path: Events Manager > Data sources tab > your data source > Diagnostics.
  4. Set Meta's claim against your orders. In Ads Manager, note the purchases for the same week. Ads Manager only shows purchases it attributes to people shown your ads, after dropping duplicates. Then count your Shopify orders for the same dates. Divide the first number by the second: that is the share of your sales Meta claims. Menu path in Shopify: Orders, then the Date filter.
  5. Look for estimated results. In Ads Manager, hover over any in-product message next to your results. Meta uses one such note where statistical modeling may fill in missing or partial data. That modeled part is Meta's estimate, not events it received. Menu path: the Ads Manager results table, then hover over the message.
  6. Put Meta's own discount next to the claim. The incremental column keeps only the conversions Meta's model considers incremental. You can view it even when your ad sets use standard attribution, though not for dates before 1 April 2025. Menu path: Ads Manager > Columns: Performance > Compare attribution models > Incremental > Apply.
  7. Check the value as well as the count. Shopify sends Meta the order's total price, including duties, taxes and discounts. Compare Meta's purchase value with order totals, not with net sales. Note your data sharing level too: at Standard, only the pixel reports, and a browser ad blocker can silence it. Menu path in Shopify: Sales channels > Facebook & Instagram > Settings > Data sharing settings.
  8. Test the claim against a no-ads group. A Conversion Lift test keeps a control group from seeing your ads and compares purchases. You create it in Experiments, and the test itself costs nothing extra. Meta's page on holdout results says they can appear after 100 conversion events, but advises waiting until the test is finished. Menu path for results: Experiments > Learn > your test > View report.

A worked example

For illustration, here is one closed week for a store, with round, made-up numbers.

For illustration, one closed weekCount
Orders in Shopify1,000
Server purchases in Events Manager950
Purchases in Ads Manager, standard attribution380
Purchases in Ads Manager, incremental attribution210
Conversions Google Ads claims450
Orders Klaviyo credits to email260

For illustration, steps 1 to 3 pass: Meta hears about 950 of the 1,000 orders, and Diagnostics is clear. For illustration, step 4 gives Meta a claim on 380 of 1,000 orders, a 38% share. For illustration, add Google Ads and email, and the three claims reach 1,090, more orders than the store took. Nobody lied; each platform kept every sale it touched.

For illustration, step 6 keeps 210 of Meta's 380 as incremental. For illustration, Meta's own model then expects the other 170 to have happened anyway. Suppose a lift test later measures 150 extra purchases over a comparable week. For illustration, that makes 150 the number to budget on, not 380.

Read the table as a ladder. Orders sit on top, then the purchases Meta heard about, then the ones it claims, then the ones its model calls incremental. Each rung should sit at or below the one above it. A rung that climbs over its neighbour is where the audit starts, and steps 1 to 6 tell you which neighbour to blame.

Now one store's real export, which holds shares of revenue, not purchases. On its Channels sheet, the touched view adds up to 110.4%, because a journey that touched two channels counts for both. It is the same overlap as the worked example, seen from inside GA4. Each ad platform reporting alone does the same, and none of them sees the others' claims. The export holds no Meta figures, spend or orders, so it cannot score Meta for that store.

What to check when the numbers look wrong

  • Server purchases beat Shopify orders. Look for test orders, a second shop sending to the same dataset, or duplicates on the Event deduplication tab.
  • Server purchases trail pixel purchases. Meta's own rule is that Conversions API events should match or exceed pixel events. If they fall short, the server setup is dropping purchases, and step 7 is the first place to look.
  • Ads Manager claims more than Meta received. If attributed purchases top both the server and the pixel counts, only estimates can explain it. Go back to step 5 and read the modeling note before you trust the total.
  • The match score dropped this week. Meta scores matching on the last 48 hours of data, so a recent change shows up fast. Check whether a checkout or theme update stopped sending email or phone with the purchase.
  • The incremental column is empty. Your date range probably starts before 1 April 2025. Move the start date forward and look again.
  • The lift test shows no result. Meta can hold back a result while a test is young or when the gap between groups is too small. Let it finish before you read anything into it.
  • Meta's value beats your net sales. That is expected, since Shopify sends order totals with duties and taxes. Compare totals with totals.

What to do this week

  1. Start a weekly trust sheet. Write down four numbers each week: Shopify orders, server purchases in Events Manager, and Ads Manager purchases under standard and incremental attribution. Pass: the four keep the same order week after week. Fail: the order flips, so find what changed before you act on any campaign.
  2. Clear every active issue in Diagnostics. Pass: no red icon next to your data source and no active issues. Fail: an issue stays open, so treat this week's Meta purchases as provisional.
  3. Put a no-ads group on the calendar. Create a Conversion Lift test in Experiments if a campaign qualifies, or write a geo holdout plan if none does. Pass: the test has dates and a control group before the month ends. Fail: nothing is booked, so Meta keeps marking its own homework.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: View server event details in Meta Events Manager (Meta Business Help Center); Differences between event counts in Meta Ads Manager, Ads Reporting and Events Manager (Meta Business Help Center); About event match quality (Meta Business Help Center); View diagnostics in Meta Events Manager (Meta Business Help Center); Filtering orders (Shopify Help Center); Understand how results are sometimes calculated differently (Meta Business Help Center); About Meta's Modeled Conversions (Meta Business Help Center); How to view results for incremental attribution in Meta Ads Manager (Meta Business Help Center); Facebook data sharing (Shopify Help Center); About Conversion Lift (Meta Business Help Center); View and understand holdout test results across Meta technologies (Meta Business Help Center).

Frequently asked questions

  • What event match quality score should I aim for on Meta?
    Higher is better on Meta's 0 to 10 scale, and above 5 is a sensible floor. Meta sets that bar for self-serve Conversion Lift tests that use the Conversions API. Below it, fewer purchases match to people, so Ads Manager can credit fewer sales than your ads touched.
  • Why does Events Manager show more purchases than Ads Manager?
    They count different things. Events Manager shows every purchase Meta received, including buyers who never saw an ad, and its data sources total is not deduplicated. Ads Manager shows only purchases it attributes to people shown your ads, after removing duplicates. So a gap between them is expected.
  • Does Meta's purchase value include taxes on Shopify?
    Yes, through Shopify's Facebook and Instagram channel. Shopify says events that track an order value use the order's total price, including duties, taxes and discounts. Compare Meta's purchase value with your order totals, not with net sales, or Meta will look richer than it is.

Go deeper: Incrementality testing, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.