Tracking & Attribution

What Is Event Match Quality (EMQ)?

Event Match Quality (EMQ) is Meta's 0–10 score for how well your CAPI events match real Meta users. Scores of 8+ are great; below 7 is poor.

Quick answer

Event Match Quality (EMQ) is Meta's score from 0 to 10 for how well a conversion event matches a real Meta user. Scores of 8–10 are great; below 7 is poor. Higher EMQ improves ad optimization, audience matching, and reporting accuracy. The score is driven by the customer-data parameters you send (hashed email, phone, name, fbp/fbc) and how correctly they're hashed.

What is Event Match Quality (EMQ)?

Event Match Quality is Meta’s published score for whether a conversion event can be tied back to a known Meta user. A high EMQ means Meta successfully matched the event to a real Facebook or Instagram account; a low EMQ means Meta received the event but couldn’t confidently match it to a user, so the event is less useful for optimization, attribution, and audience building.

EMQ is exposed in Meta Events Manager under the Data Sources tab for each pixel. The score appears at three levels: per-event-type (e.g., the EMQ for your Purchase event), per-data-source (the Pixel vs. the CAPI integration), and as an account-level aggregate. The per-event-type view is the most useful for diagnosis.

EMQ was introduced alongside the broader Conversions API rollout in 2020–2021 as Meta’s way of giving advertisers a public-facing diagnostic for whether their server-side data was actually being used. Before EMQ, advertisers had no way to tell whether the events they were sending to CAPI were doing anything; the score made the black box transparent.


How does Meta calculate the EMQ score?

EMQ is calculated from two underlying components: match-key quality (how many high-value parameters the event includes) and event-level match rate (what percentage of recent events Meta successfully matched to a user). The two are combined into the 0–10 score shown in Events Manager.

Component What it measures Improves by
Match-key quality Number and weight of customer-data parameters per event Sending hashed email, phone, name, IP, fbp, fbc on every event
Event-level match rate Share of last 7 days of events Meta successfully matched Sending parameters Meta can actually resolve (correct hashing, real values)

Match-key quality is the lever you can move directly. Adding hashed email to events that didn’t have it raises the score. Sending the _fbp and _fbc cookies that the browser-side Pixel sets raises it. Sending IP and user-agent from the server raises it slightly. Sending nothing but event_name and event_time floors the score.

Event-level match rate is partially out of your control — it depends on whether your customers actually have Meta accounts and whether their data matches Meta’s records. A B2B audience with work emails will have a structurally lower match rate than a B2C consumer audience with personal emails, regardless of implementation quality.


What do the EMQ score ranges mean (great, good, poor)?

Meta publishes four EMQ tiers in Events Manager, each with a different practical implication for ad performance:

Score range Tier What it means
8.0 – 10.0 Great Events are reliably matched; algorithm sees full signal
6.0 – 7.9 Good Most events match; some optimization signal is lost
4.0 – 5.9 OK Half-strength signal; campaigns can run but optimization is noisy
0 – 3.9 Poor Events landing but not usable for optimization

The target operators consistently aim for is 8.0 or higher. Below that, ad performance degrades in proportion to how far below — a 5.0 score means Meta is treating roughly half your conversions as untrustworthy for optimization purposes.

EMQ is not a vanity score. The difference between a 6 and a 9 typically shows up in real campaign performance within 7–14 days of the change — usually as lower cost per result and more stable scaling.


Which customer-data parameters carry the most weight?

Not all parameters contribute equally to EMQ. Meta weighs identifying parameters heavily and fingerprinting parameters lightly. Hashed personal data is the lever; browser fingerprint data is the cushion.

Parameter Field name Weight Required hashing
Email address em Highest SHA-256, lowercased, trimmed
Phone number ph High SHA-256, digits only, country code
First name fn Medium-high SHA-256, lowercased
Last name ln Medium-high SHA-256, lowercased
Date of birth db Medium SHA-256, YYYYMMDD
Gender ge Low-medium SHA-256, f or m
City, state, ZIP, country ct, st, zp, country Low-medium SHA-256, lowercased
External ID external_id Variable Optional hashing
Facebook browser ID fbp Medium Plain text (no hashing)
Facebook click ID fbc Medium Plain text (no hashing)
IP address client_ip_address Low Plain text
User agent client_user_agent Low Plain text

The single highest-impact action for low EMQ is adding hashed email. The second is adding hashed phone. After those two, the marginal lift from each additional parameter drops quickly — but adding fbp/fbc and IP/user-agent is essentially free for any setup that already has the Pixel installed.

Hashing format matters. Meta rejects mis-hashed parameters silently — they’re accepted by the API but don’t contribute to matching. The most common mistakes are forgetting to lowercase email before hashing, not stripping whitespace, and hashing phone numbers with formatting characters (+1 (415) 555-1234 instead of 14155551234).


Why does EMQ matter for ad performance?

EMQ directly drives three things: how much conversion signal the algorithm sees, how accurately Meta builds lookalike and retargeting audiences, and how confidently Meta reports your campaign performance. All three matter.

Meta has publicly stated that advertisers running CAPI alongside the Pixel see meaningfully lower cost per result than Pixel-only setups; the EMQ score is the operational metric that quantifies how much of CAPI’s benefit you’re capturing. A CAPI integration with a 4.0 EMQ is structurally close to running Pixel-only — Meta has the events but can’t use most of them.

The compounding effect: campaigns with high EMQ scale more cleanly because Meta’s machine learning has more data to train on per dollar spent. Campaigns with low EMQ tend to plateau early, with cost per result drifting up as Meta runs out of qualified audiences to bid for. This is why the gap between a 6 and an 8 EMQ score often looks bigger in real campaign performance than the absolute score difference suggests.


How often does Meta refresh the EMQ score?

EMQ in Events Manager updates approximately every 48 hours and is computed from a rolling 7-day window of events. Changes you make to your integration take effect on the next 48-hour refresh and continue to improve over the following 7 days as the older (lower-quality) events age out of the window.

The practical implication: if you add hashed email to your CAPI payload on Monday, you won’t see the full EMQ benefit in Events Manager until the following Monday. Don’t iterate on EMQ daily; iterate on a 5–7-day cycle. The Test Events tool in Events Manager is the right place to validate changes in real time before they hit the rolling window.

This delay is one of the reasons EMQ debugging is often misdiagnosed — operators add a parameter, see no immediate change, conclude the parameter isn’t being received, and revert the change. Validate in Test Events first; wait at least 48 hours before declaring success or failure on the live score.


How can PartialLeads improve your EMQ without a developer?

The traditional path to high EMQ requires a developer. You need to capture customer-data parameters on every conversion event, hash them with SHA-256 to Meta’s specification, generate matching event_id values for Pixel/CAPI deduplication, store and rotate the Meta access token, POST the payload to Meta’s CAPI endpoint, and debug the inevitable hashing and parameter-format issues. For most mid-sized advertisers, this is 1–3 days of backend engineering plus ongoing maintenance.

PartialLeads is built to skip that path. The platform installs as a single tag on your site (or via a no-code platform connector for Shopify, WordPress, and similar), captures form fields as the visitor types them, hashes the customer-data parameters server-side to Meta’s spec, generates the shared event_id so the Pixel and CAPI deduplicate cleanly, and sends the events to Meta’s CAPI endpoint with the access token managed inside the platform.

The structural EMQ advantage:

  • More events with full match data. Pixel-only setups fire on submit, which means abandoned forms contribute nothing to EMQ. PartialLeads captures email and phone at the moment they’re typed, so partial leads — not just completed submissions — feed Meta’s matching engine. The larger pool of high-quality events lifts the rolling event-level match rate.
  • No developer in the loop. The SHA-256 hashing, the access token rotation, the event_id generation, and the parameter formatting all happen inside the platform. There’s no application code to write and no integration to maintain when Meta updates the CAPI spec.
  • Deduplication is automatic. PartialLeads’ tag sets the matching event_id on both the browser-side Pixel call and the server-side CAPI call, so Meta deduplicates cleanly and counts each conversion once — not twice (which lowers EMQ) and not zero times (which loses it entirely). For advertisers who would otherwise be sending CAPI events with only IP and user-agent — or not sending CAPI events at all — moving to a managed partial-capture-and-relay setup typically lifts EMQ from the 3–5 range into the 7–9 range within the first 48–72 hours of installation.

Sources

  1. Meta Business Help — About Event Match Quality: https://www.facebook.com/business/help/765081237991954
  2. Meta for Developers — Customer information parameters: https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters
  3. Meta for Developers — Conversions API best practices: https://developers.facebook.com/docs/marketing-api/conversions-api/best-practices
  4. Meta Business Help — About the Conversions API: https://www.facebook.com/business/help/353532912433684
  5. TAGGRS — Meta Event Match Quality Score: https://taggrs.io/docs/server-side-tracking/facebook/event-match-quality-score
  6. CustomerLabs — Improving Event Match Quality: https://www.customerlabs.com/blog/improve-your-event-match-quality-from-ok-to-great/

Frequently asked questions

QWhat's the minimum EMQ score I should target?
Aim for 8.0 or higher. Meta classifies 8–10 as "Great" and treats events in that range as fully usable for optimization, audience-building, and reporting. Scores between 6 and 8 are "Good" but lose some optimization signal. Below 6 means Meta is treating a meaningful share of your conversions as unmatchable, and ad performance will plateau accordingly.
QDoes adding more customer-data parameters always increase EMQ?
Adding hashed email or hashed phone almost always increases EMQ measurably. Adding lower-weight parameters (city, state, gender) has diminishing returns once email and phone are in place. The parameters that have no negative effect when added but always help: hashed email, hashed phone, hashed first name, hashed last name, `_fbp`, `_fbc`, IP address, user agent. Incorrectly hashed parameters don't lower the score but don't help either.
QWhat is the highest EMQ Score that PartiaLeads can get?
9.3 and can get it low down to 8.5 if some user data is not required like the phone number or email when capturing leads.
QWhy is my EMQ stuck even after I added email?
The three most common reasons: (1) the email is being hashed incorrectly — Meta requires SHA-256 of the lowercased and trimmed email value, and any deviation produces silent rejection; (2) the events are being sent without a matching `event_id`, so the Pixel and CAPI are competing rather than deduplicating; (3) the EMQ score hasn't refreshed yet — the displayed score updates roughly every 48 hours from a rolling 7-day window of events, so changes take days to fully appear.
QHow long does EMQ take to update after I make changes?
The EMQ score in Events Manager updates approximately every 48 hours and is computed from the last 7 days of events. Changes start affecting the score on the next 48-hour refresh and continue improving over the following week as older lower-quality events age out of the window. Don't iterate on EMQ in real time — use the Test Events tool in Events Manager to validate changes immediately, then wait for the rolling window to catch up.
QDoes the Meta Pixel contribute to EMQ, or only CAPI?
Both contribute. EMQ is calculated per event source, and the Pixel can have its own EMQ score separate from your CAPI integration. The Pixel automatically captures `_fbp` and `_fbc` browser cookies, which contribute medium-weight match signal. The Pixel can also send hashed email and phone via Advanced Matching, which raises Pixel-side EMQ. Most advertisers see higher EMQ scores on CAPI than Pixel because CAPI integrations are usually configured to pass more parameters.
QCan I see EMQ broken down by event type?
Yes. In Meta Events Manager, the EMQ score is shown per event type within each data source. The `Purchase` event, the `Lead` event, and any custom events each have their own score. This is more useful than the account-level aggregate because it surfaces specific event configurations that need work — for example, a `Lead` event with EMQ 4 alongside a `Purchase` event at EMQ 9 usually means the lead form isn't capturing the same identifying fields the checkout flow does.
QIs high EMQ enough to guarantee improved ad performance?
No, but it's a necessary condition for most setups. EMQ measures whether Meta can use your events for optimization — it doesn't measure whether the events themselves are valuable. A high-EMQ feed of low-quality events (bot traffic, test conversions, irrelevant audience signals) won't outperform a lower-EMQ feed of clean conversions. Treat EMQ as a hygiene metric, not a performance metric: get it above 8, then focus on what events you're actually sending.

Find the qualified leads your forms are currently throwing away.

Install PartialLeads on one landing page, send traffic, and compare what your CRM captured against what PartialLeads recovered and qualified.