Skip to main content
Gemini said Isometric illustration of broken neon dashboards and warning gauges strangling a central 'Creative ROI' graph, symbolizing urgent performance debugging and troubleshooting for account management and client retention.

Meta scores your purchase events out of 10

Event match quality is Meta's 0 to 10 score for how well the customer information on a server event matches a Meta account. Meta publishes no pass mark. Here is which parameters it ranks highest, what a low score actually costs you, and how to tell whether a change worked.

Eisha Faisal·March 4, 2026·Updated September 21, 2026·8 min read

Open Events Manager, choose your dataset, find Purchase and click View details. There is a number out of 10 next to it. On a Shopify apparel store we audited on 9 September 2026, Purchase read 9.3 and Add to cart read 6.2. Same store, same day, same integration.

You already know the shape of this. Your admin shows more orders than Meta reports. Someone suggests new creative. You spend a fortnight testing hooks against a number that was never the problem.

That spread is the subject. The score does not judge your store or your creative. It judges how much of the customer record reached Meta when each event fired. A checkout form hands over far more of it than a product page.

Event match quality is Meta’s 0 to 10 score for how well the customer information you send with a server event can be matched to a Meta account. Meta calculates it per event type, from the last 48 hours of data. You raise it by sending more matchable customer parameters, not by shipping better creative.

This is for the operator buying the ads, not the agency reporting on them

You run a Shopify or Shopify Plus store. You approve the ad spend yourself. Meta’s reported purchases do not match the orders in your admin, and your weekly call keeps turning into an argument about whose number is right. Somebody has told you the Conversions API is the fix. The Conversions API is Meta’s server-side route for sending events, alongside the browser pixel.

This is not for a store with no Meta ads live. Meta says the score exists only for website events sent through the Conversions API. A store that sends nothing from its server has nothing to raise. It is also not for the person writing the monthly deck. Every decision below is made in your checkout, your consent banner and your server.

The cost of leaving it alone is hours, not mystique. Every month you re-run the same argument, then set next month’s budget against whichever number won. Getting the two to agree is analytics and attribution work. Autonomous Technologies is a Shopify systems partner, and this is the measurement half of what we build for operators after launch. Treat it as a separate pass, with a separate owner.

Meta ranks the parameters, and only two of them rank high

A customer information parameter is a field you attach to an event so Meta can work out whose account it belongs to. Meta publishes the list, and a priority against each one, on its About event match quality page, read on 21 September 2026.

Meta's own priority for customer information parameters. Email and click ID are the only two rated high, and four of the five low-priority fields are name and address detail.
Meta's priorityParameters at that priorityWhere you get them
HighEmail, click IDCheckout, account login, newsletter capture. The click ID comes from the cookie the browser writes after an ad click.
MediumPhone number, birthdate, country, external ID, browser ID, Facebook login IDThe order record, the customer record, and your own internal customer ID.
LowFirst name, last name, city, zip or postal code, leadThe shipping address on a completed order.
Meta's own priority for customer information parameters. Email and click ID are the only two rated high, and four of the five low-priority fields are name and address detail.

Ten of these need SHA-256 hashing before they leave your server: email, phone, first name, last name, date of birth, gender, city, state, zip and country. Four must not be hashed: client IP address, client user agent, click ID and browser ID. Meta recommends hashing external ID but does not require it.

Format matters as much as presence. Meta’s parameter reference asks for lowercased and trimmed email, phone as digits with a country code, city lowercased with no spaces, and country as a two-letter code. Hash the wrong shape and you send a hash of the wrong string. It matches nobody.

A low score costs you reported conversions, not sales

The order happened. Your bank knows. Meta either does not know, or cannot tie it back to the ad that caused it with enough confidence. That is the defect. Creative is a different conversation.

Read Meta’s own wording literally. It is hedged. Matched events help you attribute conversions and reach people more likely to buy. That, Meta says, “can result in better ad performance and lower cost per action”. Better matching “may result in an increase in your additional conversions reported”.

Meta promises no number at any score. Its page names no pass mark, no threshold and no grade. The bands you have read elsewhere, Poor, OK, Good and Great, with 8.0 as the line, come from vendor blogs and not from Meta. Treat the score as a measure of how much of your data arrived. Compare each event against its own history, never against a borrowed benchmark.

Check what your store already sends before you add a second sender

Shopify’s Facebook and Instagram channel already sends server events when data sharing is set to Maximum. Adding a second Conversions API sender on top is the fastest way to double count every order.

We verified this on a couture atelier store on 14 July 2026. The native integration was live and healthy. Over the previous 30 days Meta had received 4,451 browser events and 4,564 server events from one dataset. The small server surplus is the point: it carries events the browser never reported. That store’s Shopify commerce system is where we now verify event integrity in production.

The match keys told the rest. Over the same 30 days the dataset carried external ID on 5,472 events, phone on 956 and email on 875. Email is Meta’s highest priority parameter. It reached only the identity-bearing slice: checkout steps and logged-in sessions.

Five readings in Events Manager, with the figure Meta publishes for each. The last row settles most arguments about why Meta and Shopify disagree.
What to readWhere it livesThe figure Meta publishes
Event match qualityEvent matching tabA score from 0 to 10, from the last 48 hours of data.
Event coverageEvent coverage tabAim for a 75% ratio of Conversions API to pixel events.
Deduplication overlapEvent deduplication tabThe share of events received by both sources. Higher is better.
Data freshnessData freshness tabDelay between event time and receipt. Real time is best practice.
Events receivedEvent overview tabThe sum from both sources, not deduplicated.
Five readings in Events Manager, with the figure Meta publishes for each. The last row settles most arguments about why Meta and Shopify disagree.

Meta’s server event documentation states that events received is a sum of pixel and server events before processing. Compared straight to your order count, it will always look broken. It never is.

Send more of the customer record, and nothing you are barred from sending

Work the parameters in Meta’s priority order, not in the order they are easy to wire up.

  1. Email first. It is the only high-priority field you control end to end.
  2. The click ID next. It sits in a cookie the browser writes after an ad click, so your server has to be handed it.
  3. External ID on every event, including anonymous sessions, so top-of-funnel events stop matching on nothing.
  4. Phone, country, name, city and postal code from the completed order, each hashed to Meta’s format.
  5. The three fields Meta requires on every web event: action source, event source URL and client user agent.

Never invent a value to fill a field. A placeholder postcode hashes to a string that matches nobody. It makes your coverage look healthy while the score stays flat.

Meta’s prohibited information list is not advisory. Health information, financial information, government identifiers, passwords, location coordinates and access tokens must never reach Meta. That holds in every field, including custom event names and anything after the domain in a URL. Meta’s prohibited information policy says its own filtering “is not a substitute for your own compliance mechanisms”. You remain responsible for what you sent.

Consent belongs in the same bucket. Meta’s rule is direct: do not share event data about people who have not consented. Sending from a server does not exempt you from the banner.

A parameter you sent is not a parameter that matched. Meta says so itself: coverage can be high and the score still low, because the events were never matched.

Prove it worked by reading the score per event, not the ROAS column

Wait 48 hours before you judge a change. The score uses the last 48 hours of data, so a fix shipped this morning is being scored against a window that is mostly pre-fix.

Then read the score per event type, never at account level. Purchase and Add to cart move for different reasons.

Event match quality by event type on one Shopify store, read 9 September 2026. The score tracks how much identity each step collects, not how good the store is.
EventScore out of 10What the shopper had handed over by then
Purchase9.3Email, phone, name and full shipping address.
Add payment info8.5Email and address, entered moments earlier.
Initiate checkout7.5Whatever the account or the cart already held.
Add to cart6.2Usually browser and click identifiers alone.
Page view6.1Browser and click identifiers alone.
Event match quality by event type on one Shopify store, read 9 September 2026. The score tracks how much identity each step collects, not how good the store is.

Read the deduplication tab next. Meta’s deduplication documentation is narrow: it merges two copies only when they share an event name and an event ID, and only inside 48 hours of the first event carrying that ID. If overlap fell while your score rose, you have a new reporting problem.

Read the reconciliation last: Meta’s reported purchases against your orders, over a fixed window, with the attribution setting written down. That number carries your decisions. The score is only an input.

What breaks, and who owns each piece

Every change here touches something live. The person who notices the break is rarely the person who caused it.

Each change, the failure it causes when it goes wrong, and the role that owns it. Two of the five fail silently.
What you changeWhat breaks if you get it wrongWho owns it
Adding a second Conversions API senderTwo senders mint different event IDs, so nothing deduplicates and every order reports twice.Whoever runs paid media.
Hashing format or normalisationValues arrive as hashes of the wrong string, match nothing, and the score falls silently.Your developer.
Passing the click ID to the serverAd-driven purchases lose the highest-priority identifier you had.Your developer.
Sending data before consentBreach of Meta's Business Tools terms, with data restrictions as a stated consequence.You, with your own counsel.
Custom event or parameter names carrying condition detailBlocked parameters, removed data, possible restrictions on the dataset.Merchandising.
Each change, the failure it causes when it goes wrong, and the role that owns it. Two of the five fail silently.

Give the integration a named owner and a written record of what each event sends. No new sender, tag or app goes live without a line in that record naming what it transmits and who reads it.

Event match quality questions Shopify operators ask

What is a good event match quality score?

Meta publishes no pass mark. Its documentation describes a score from 0 to 10 and names no threshold, band or grade. Compare each event type against its own history. On one store we audited, the same dataset returned 9.3 on Purchase and 6.2 on Add to cart on the same day, because a checkout collects far more of the customer record than a product page.

Does a low score mean I am losing sales?

No. It means fewer of the sales you already made get matched back to a Meta account and reported. Meta’s wording is that better matching may increase your additional conversions reported, and can result in better ad performance and a lower cost per action. The order happened either way.

Do I need the Conversions API if I am already on Shopify?

Check before you buy anything. Shopify’s Facebook and Instagram channel sends both browser and server events when data sharing is set to Maximum. Open Events Manager and see whether your Purchase event lists both a pixel and a Conversions API source. If it does, you have it, and a second sender will double count.

I added a parameter and the score did not move. Why?

Sending a parameter does not guarantee a match. Meta states that coverage can be high while the score stays low, because one parameter may not identify an account, or the person may not have one. Wait 48 hours as well, since the score uses the last 48 hours of data.

How do I know my browser and server events are not both being counted?

Open the event deduplication tab. Meta matches duplicates on event name plus event ID, inside 48 hours of the first event carrying that ID. A falling overlap share, or two senders that cannot share an event ID, means both copies are counting as separate conversions.

Filed under

Account ManagementClient RetentionPerformance DebuggingTroubleshooting

From the intelligence suite

Is your attribution stack lying to you?

AttributionCheck maps every gap in your data layer — free, in minutes. Find out which conversions you're missing.

Run a free check
Continue reading
Conceptual illustration of a scalable marketing data infrastructure and first-party data lake designed for agency operations and data hygiene.

Growth & Measurement

How to Design Scalable Marketing Data Infrastructure

Marketing data infrastructure is the layer that collects, stores and routes your customer and campaign data. Here is what breaks in a browser-only setup, what moving tag execution to your own server actually buys you, the three steps in order, and who owns each one when it breaks.

8 min read
Loading page