
Event Match Quality: What It Is and How to Raise Your Score
- Event Match Quality (EMQ) is Meta’s 0–10 score for how effectively event identifiers match conversions to real user accounts, based on identifier quality, formatting, and successful resolution rather than parameter count alone. Higher EMQ improves both attribution accuracy and the quality of optimization signals over time.
- The highest-impact EMQ improvements are sending normalized, hashed email on every conversion event, adding hashed phone numbers, preserving and forwarding critical identifiers such as fbc, client IP address, and user agent, and combining Pixel with Conversions API using shared event deduplication. Accurate data quality matters more than sending additional parameters.
- EMQ updates over a rolling 3–7 day window, with meaningful gains typically visible within about a week after deployment. Practical performance benefits diminish above roughly 8.5 EMQ, making high-8 Purchase scores a more efficient target than pursuing a perfect score.
- Offline registration events often achieve higher match quality than web events because customers provide first-party identifiers directly instead of relying on browser-held data. Brij Signal automates normalized, deduplicated offline event delivery to Meta and is positioned as a complement to existing Pixel and Conversions API implementations.
Introduction: About Event Match Quality
Event Match Quality is the closest thing Meta gives you to a straight answer about your tracking. Most platform metrics are downstream of a dozen variables you don't control. EMQ is different: it responds predictably to specific changes, it tells you which changes to make, and it's visible in about two minutes.
If you've landed here because there's a 4.8 sitting in Events Manager and a "Below Average" label next to it, skip to the ranked fixes. If you want to understand what the number actually measures first, start at the top.
What is Event Match Quality?
Event Match Quality (EMQ) is Meta's score, from 0 to 10, for how effectively the customer information you send with an event lets Meta match that event to a real account in its system.
It exists because of a specific problem. When your server tells Meta "a purchase happened," Meta has to figure out whose purchase. It can only do that by comparing the identifiers you sent (hashed email, hashed phone, click ID, IP address) against its own user graph.
EMQ is Meta's report card on how well that comparison went.
Two things EMQ is not:
- It's not a count of parameters. Sending ten fields doesn't beat sending three if the ten include errors. EMQ is a weighted measure of which parameters arrive, how clean they are, and how often they actually resolve to a person.
- It's not the same as match rate, though the two are related and often conflated. Match rate is the percentage of your events that successfully connect to a user. EMQ folds that in alongside parameter quality into a single score.
Why EMQ Matters
EMQ affects two things, on two different timelines:
- Attribution (immediately): An unmatched event is an invisible conversion. It happened, you sent it, and Meta can't credit it to any campaign — so it doesn't appear in your reporting and doesn't inform any decision you make.
- Optimization (over weeks): This is the bigger one. Meta's delivery system (Andromeda at the retrieval layer, Advantage+ at the campaign layer) decides who sees your ads based on what it learns from your conversion data. Unmatched events teach it nothing. Worse, if the events that do match are systematically different from the ones that don't, the model learns from a biased sample of your customers.
The size of the gap is worth seeing. An analysis of more than 50,000 ad accounts by Upstack Data found that Purchase events from a Pixel-and-CAPI hybrid setup averaged an EMQ of 8.2, while Pixel-only setups averaged 5.1.
Same advertisers, same customers, but different plumbing that can deliver a three-point spread in Meta's ability to recognize who bought.
Where to Find Your Score
- Open Events Manager and select your dataset.
- On the Overview tab, EMQ appears per event (Purchase, AddToCart, etc)
- Click the score. Clicking through gives you a parameter-level breakdown: which identifiers you're sending, what percentage of events include each one, and Meta's own suggestions for what to add.
If the score is blank or says "Insufficient Data,"you have a volume problem. Meta needs more events to compute a score.
What Counts as a Good EMQ Score?
Benchmarks circulate widely and vary by source, since Meta doesn't publish hard thresholds. The bands below reflect common practitioner consensus rather than official guidance.
Score band:
- 8 - 10 EMQ: Strong, Meta can reliably identify your customers
- 6 - 7 EMQ: Acceptable, with room to improve
- 3 - 5 EMQ: Weak, with matching and optimization both constrained
- 0 - 2 EMQ: Severe signal loss - Meta can't do much with the current data
For omnichannel brands, it's important to consider the event type when benchmarking yourself.
- PageView events: Target a 6.5 - 7.5 EMQ score, as almost no customer data exists at this stage. A low score here is normal.
- AddToCart events: Target an 8.0+ EMQ score. These are more engaged users, and more will likely be logged in.
- Purchase events: Target an 8.8-9.3 EMQ score. Checkout is where you have the most complete data. This is the one to optimize.
For reference, most Shopify stores land in the 4–6 range on Purchase. Which means if you're there, you're normal, and also leaving real performance on the table.
The Parameter Hierarchy
Not all identifiers carry equal weight. Roughly in order of matching power:
- Email: The strongest single signal. Meta's user graph is email-anchored, and most accounts have a verified address.
- Phone number: Nearly as strong, and additive rather than redundant. If you send only email, adding phone is typically the single biggest jump available.
- fbc (click ID): Derived from the fbclid parameter Meta appends when someone clicks your ad. Extremely high match confidence for ad-driven traffic, because it points at a specific user directly. This is where most implementations fail.
- fbp (browser ID): Meta's first-party cookie. Free if you're running the Pixel.
- client_ip_address and client_user_agent: Frequently omitted on server-side events and shouldn't be.
- external_id: Your own stable customer ID. Improves matching and helps Meta connect a person's events across sources.
- Name, city, state, ZIP, country, date of birth: Smaller individual contributions that compound meaningfully in aggregate.
Nine Ways to Raise your Score, Ranked
1. Send Email on Every Conversion Event
This is. the highest-impact fix, and also the most common gap. Email is available at checkout and for any logged-in customer. Normalize it (lowercase, trimmed), SHA-256 hash it, and include it on Purchase and InitiateCheckout. Email alone will typically get you into the 5 – 6 EMQ range.
2. Add Phone Number
If you have email but not phone, this is usually your largest remaining gain. Format to E.164 before hashing (strip spaces, dashes, and parentheses, include the country code).
3. Fix Your fbc Coverage
When someone clicks a Meta ad, the landing URL gets ?fbclid=... appended. Your job is to capture that, persist it (typically as the _fbc cookie), and attach it to events for that user,including events that happen in a later session.
Two of the four warnings Meta commonly surfaces in Events Manager (the prompt to send more parameters, and the nudge toward the parameter builder tool) are usually both pointing at low fbc coverage.
It breaks constantly: single-page apps that drop the query string, redirects that strip parameters, checkout flows on a different subdomain, and Safari's Link Tracking Protection removing fbclid outright in Private Browsing, Mail, Messages, and in-app browsers.
4. Forward IP Address and User Agent on Server Events
Server-side events sent without client_ip_address and client_user_agent score measurably lower than browser events.
Remember to forward the original visitor's IP, not your CAPI server's IP. Practitioners report this single fix lifting EMQ by roughly 0.8–1.2 points, which makes it the best effort-to-impact ratio on this list.
5. Add external_id
This is a stable, hashed customer ID. It's cheap to implement if you have customer accounts, and it does double duty, matching plus cross-source identity resolution.
6. Normalize Before You Hash
Normalize to lowercase, trim the whitespace, and strip the formatting. For example, [JSmith@Gmail.com ] and [jsmith@gmail.com] produce entirely different hashes, and only one of them matches.
This will result in silent failure: Meta will accept the event, but it won't match it.
7. Stop Hashing the Fields that Must Stay Raw
fbp, fbc, lead IDs, mobile advertiser IDs, IP address, and user agent all go unhashed. Hashing them destroys their matching value with no error message.
This is a leading cause of unexplained EMQ drops after a migration or a new integration.
8. Run the Pixel and CAPI Together
Per the benchmark above, hybrid setups average around 8.2 on Purchase versus 5.1 for Pixel-only. The Pixel supplies fbp and fbc natively; CAPI supplies durability and hashed PII.
Just deduplicate on a shared event_id, or you'll trade a matching problem for a double-counting problem.
9. Add Address Components
Name, city, state, ZIP, country. Individually small, collectively worth a few tenths — worth doing once the higher-impact items are done.
What Actively Lowers Your Score
Adding parameters helps only if they're correct. Sending bad data is worse than sending nothing.
- Wrong or fake emails: Bot form fills, test@test.com, typo'd addresses. Each one is an event Meta tries and fails to match.
- Guest checkout without capture: No email, no phone, nothing to match on.
- Unnormalized values: Covered above, and worth repeating because it's invisible.
- Placeholder conversion values: If every Purchase event carries an identical value, Meta may flag it. It also breaks value-based bidding entirely.
- Truncated or partial identifiers: A first name field carrying a full name, a ZIP field carrying ZIP+4 inconsistently.
The governing principle: fewer accurate parameters beat more inaccurate ones. Audit before you expand.
What to Expect After You Deploy a Fix
EMQ recalculates continuously but the displayed score reflects a rolling window of roughly 3–7 days, so nothing changes instantly.
A realistic timeline:
- Day 1-2: Parameter coverage percentages improve in the Diagnostics tab
- Day 3-5: EMQ rises, commonly by 0.5–1.0 points
- Day 7-10: Score stabilizes at a new baseline
- Day 14+: Campaign efficiency begins to reflect the better signal
If nothing moves after seven days, the coverage probably didn't actually improve. Go back to the Diagnostics tab and find the parameter still sitting under 60%. That will likely highlight where your fix deployment broke.
We also recommend that you don't manually dismiss Meta's warnings. Let them age out as fresh events flow through.
Dismissed warnings reappear the following week with stale data attached, which makes it harder to tell whether you fixed anything.
Know When to Stop
EMQ has diminishing returns, and chasing a perfect score is a poor use of time.
Most accounts cap out somewhere around 9.5–9.7; a true 10 is largely unattainable. More usefully, the practical benefit to attribution and cost per acquisition tends to flatten above roughly 8.5.
Getting from 4 to 8 is transformative. Getting from 8.7 to 9.1 is a rounding error you can spend a sprint on.
Get Purchase into the high 8s, then go work on something else.
EMQ for Retail and Marketplace Purchases
Here's the part that surprises brands the first time they see it: offline events sourced from customer registration often score higher than the same brand's web events.
The reason is structural. A web event is assembled from whatever the browser managed to hold onto, such as a cookie that may have been purged, a click ID that may have been stripped, or an email that exists only if the customer was logged in.
An offline event from a product registration or rebate claim starts from a customer who typed their own email and phone number into a form. Nothing is inferred. The identifiers are first-hand and correct by construction.
This is why the identity-capture step matters more than any parameter tuning. You can spend a quarter lifting web EMQ from 6.2 to 7.4 through better cookie persistence, or you can start sending events where the customer told you who they are.
How Brij Signal Works
Brij Signal produces exactly that. A shopper buys your product in retail or on a marketplace, then scans a QR code on pack or at shelf, registers the product, claims a rebate, or uploads a receipt.
Brij verifies the purchase and sends it to Meta as a physical_store conversion event automatically, with normalization, per-field hashing, the raw-field exceptions, and order_id deduplication all applied on every event, which removes most of the nine fixes above from your team's scope entirely.
Signal's feeds average a 99.7% match rate, because there's no probabilistic step in which accuracy can be lost.
Worth being clear that this complements your web work rather than replacing it. Keep the Pixel, keep web CAPI, fix your fbc coverage. Signal covers the offline and marketplace half, which for most brands selling through retail is the larger half, and the one where match quality is easiest to get right.
A Note on TikTok
TikTok runs its own event match quality scoring, calculated as a weighted average of your match key coverage across similar identifiers (email, phone, and click ID equivalents).
The principles transfer directly: send email and phone, capture and persist the click ID, normalize before hashing.
If you're already fixing this for Meta, do TikTok in the same pass. The work is nearly identical and the second implementation costs a fraction of the first.
FAQ
What is a good Event Match Quality score?
A good EMQ depends on the event type. For Purchase events , 8.8–9.3 is a strong target and most practitioners treat anything below about 7 as a problem. For PageView, 6.5–7.5 is normal because very little customer data exists at that stage. Broadly, 8–10 is strong, 6–7 is acceptable, and below 6 warrants attention.
How is Event Match Quality calculated?
Meta weighs which customer information parameters arrive with each event, how clean and correctly formatted they are, and how often they successfully resolve to a real account. It is a weighted quality measure, not a count of how many fields you send.
What's the fastest way to improve my EMQ score?
1) Send hashed email on every conversion event 2) add hashed phone number 3) forward the original visitor's client_ip_address and client_user_agent on server-side events. That last one alone is commonly worth 0.8–1.2 points and is usually a small code change.
Why did my EMQ score suddenly drop?
Most often an upstream change stopped populating a field, for ex: a checkout redesign that lost the email, a redirect stripping fbclid, a new integration hashing something that should stay raw, or a cookie-persistence change. Open the parameter-level breakdown and look for the coverage percentage that fell.
Is Event Match Quality the same as match rate?
No, though they're related. Match rate is the share of your events that connect to a user account. EMQ combines that with parameter quality into a single 0–10 score.
How long does it take for EMQ to update after a fix?
Parameter coverage moves in the Diagnostics tab within a day or two, but the displayed score reflects a rolling window of roughly 3–7 days. Expect movement by day 3–5 and a stable new baseline by day 7–10.
Can I get a perfect 10?
Effectively, no. Most accounts cap around 9.5–9.7, and the practical benefit flattens above roughly 8.5. Once Purchase is in the high 8s, additional effort is better spent elsewhere.
Does EMQ apply to offline and in-store events?
Yes. Match quality applies to offline event sources too, and registration-sourced offline events frequently score higher than web events because the identifiers come directly from the customer rather than from browser storage. Reporting presentation differs between web and offline datasets, so check Events Manager for your specific setup.
Does a higher EMQ actually lower my costs?
Better match quality means more conversions attributed and a more complete training set for Meta's optimization models, and improved efficiency generally follows. The magnitude varies by account, spend level, and how poor the starting point was.
The Takeaway
EMQ is unusual among platform metrics in that it's diagnosable and fixable. Meta tells you which parameters are missing. The fixes are mostly small. The feedback arrives within a week.
Three moves cover most of the available gain: email on every conversion event, phone number alongside it, and IP plus user agent forwarded on server-side events. Get Purchase into the high 8s and stop there.
And if your web score is stubborn, it's worth asking a different question. Web EMQ is capped by what the browser managed to retain. Events that come from a customer telling you who they are — at the moment they bought your product off a shelf — start from a fundamentally better place.
See how Brij sends high-match-quality retail purchase events to Meta automatically — book a demo of Signal today.

