Articles on: Omega Facebook Multi Pixels
This article is also available in:

Order reconciliation: Why your Meta purchases don't match your Shopify orders

Shopify and Meta count purchases differently — and that's by design, not a bug. Shopify logs every order your store receives. Meta only reports the purchases it can confidently credit to your ads. The Order reconciliation section at the top of Ads Report shows you every step in between, so you always know where the difference comes from.


The four numbers



Metrics

What it counts

Shopify orders

Every order from all channels — online store, POS, draft orders. Your source of truth, the 100% baseline.

Omega sent

Orders Omega tracked and sent to Meta through the Conversions API. Because events are sent from your store (not the shopper's browser), this stays very close to Shopify orders.

EM purchases

Purchase events Meta confirms it received — the "Total server events received" line in your own Events Manager.

AM purchases

Purchases Meta credited to your ads — the number you see in Meta Ads Manager for the ad account selected on this card.


The two percentages

  • % reached Meta = EM purchases ÷ Omega sent. How many of the events we sent were accepted by Meta. Healthy setups sit near 100%.
  • % credited = AM purchases ÷ Shopify orders. How much of your total order volume Meta attributes to your ads. This is supposed to be well below 100% — the rest are organic, email, direct, and repeat sales.


Why the numbers step down

Shopify orders → Omega sent. Events are sent server-side from your store, so these two typically stay very close. A large gap here usually means the Conversions API isn't fully set up — contact support and we'll help you check.
Omega sent → EM purchases. Meta occasionally declines an event over data-quality issues. This is rare and usually negligible.
EM purchases → AM purchases. The biggest drop, and a normal one. Meta credits a purchase only when it can match the buyer to a Meta account and the purchase falls inside your attribution window (for example 7-day click / 1-day view).
A worked example. Say your last 7 days show 142 Shopify orders → 138 Omega sent → 137 EM purchases → 49 AM purchases. The 4 orders missing from "Omega sent" are usually edge cases like heavily delayed syncs. The 1-event dip at EM is Meta's quality filter. The big gap down to 49 is everyone who bought without clicking your ads recently — organic traffic, email, returning customers — plus buyers Meta couldn't match to an account. These are real orders; they simply aren't credited to your ads.


Choosing an ad account on the AM purchases card

AM purchases is always the number of one specific ad account — the one selected on the card. If your pixel is linked to several ad accounts, switch between them to reconcile each one. Selecting an account here also switches the Ads Performance section below to the same account, so everything on screen tells one consistent story. (You can still change the Ads Performance account separately afterwards.)
If you previously used the "All accounts" option: it has been removed. Each ad account reports in its own timezone on Meta's side, so a combined total couldn't be checked against anything in Meta — reconciliation is per account by design.


Timezones: why the two halves can differ near midnight

The four numbers follow two clocks:

  • Shopify orders and Omega sent follow your store timezone (e.g. GMT+7) — the same clock as your Shopify admin.
  • EM purchases and AM purchases follow the timezone of the selected ad account (e.g. GMT+3) — ⚠ PENDING: "the same way Meta reports them, so these numbers match what you see in Events Manager and Ads Manager."

Because the two clocks open and close each day at different times, numbers near day boundaries — especially today's — can differ slightly between the two halves. An order placed at 2 AM in your store's timezone may still belong to yesterday in the ad account's timezone. This is expected behavior, not missing data: the numbers catch up as soon as both clocks pass midnight, and fully closed days always match.
You can see which clock each section uses from the GMT labels on screen — hover any label for details.


When "% reached Meta" shows more than 100%

Occasionally EM purchases can be higher than Omega sent. Events Manager counts every server purchase event your pixel received during the period — including events from a previous setup, another app, or duplicate sends that Meta's deduplication window didn't catch. If you see this persistently, check whether another integration is still sending purchase events to the same pixel, or contact support and we'll help you trace the extra events.


Reporting delay: AM purchases keeps rising for a few days

Meta keeps attributing conversions after the fact, so AM purchases for the most recent 1–3 days usually climbs before settling. The other three numbers update in near real-time. If today's AM number looks low, check again tomorrow before concluding anything.


Quick checklist


What you see

What it mean

Omega sent ≈ Shopify orders

✅ Tracking is healthy

Large gap Shopify → Omega

⚠️ Check your Conversions API setup (contact support)

% reached Meta ≈ 100%

✅ Meta is accepting your events

AM much lower than EM

✅ Normal — attribution, not data loss

Today's numbers differ between the two halves

✅ Timezone day boundaries — see above

AM still low after 3 days & UTMs are set

⚠️ Worth a look — contact support


Still puzzled by a specific day? Reach out via in-app chat — send us the date range and ad account, and we'll walk through it with you.

Updated on: 14/10/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!