How EMQ Scoring Works
Meta calculates EMQ based on two factors:
- The number of identifying signals you send with each conversion event
- The quality and accuracy of those signals (hashed correctly, not empty, actually matchable)
The score maps roughly to these ranges:
| EMQ Score | Rating | What It Means |
|---|---|---|
| 1-3 | Poor | Few signals sent. Meta can match a small percentage of conversions to users. Algorithm has limited data. |
| 4-6 | OK | Basic signals present (click ID, IP, maybe email). Functional but leaving performance on the table. |
| 7-8 | Good | Multiple identity signals included. Meta matches most conversions accurately. Algorithm performs well. |
| 9-10 | Great | Full signal set. Maximum match rate. Algorithm has rich data for optimization and lookalike audiences. |
The important thing: EMQ is scored per event type, not per account. Your "Purchase" events might score 8.2 while your "Lead" events score 4.1 if you're sending different signal sets for each.
Which Signals Affect EMQ
Meta's Conversions API accepts up to 15 matching signals. Each additional signal you send increases the probability that Meta can match the event to a user profile. Here's the full list, grouped by impact:
High-Impact Signals
These have the strongest effect on match rates because they're unique identifiers:
| Signal | Parameter | Notes |
|---|---|---|
em |
Hashed (SHA-256). The single most impactful signal. | |
| Phone | ph |
Hashed. Must include country code. |
| Facebook Click ID | fbc |
Captured from fbclid URL parameter. Direct click attribution. |
| Browser ID | fbp |
The _fbp first-party cookie. Connects browser sessions. |
| External ID | external_id |
Your internal user/customer ID. Enables cross-device matching. |
Medium-Impact Signals
These narrow the matching pool when high-impact signals are missing or ambiguous:
| Signal | Parameter | Notes |
|---|---|---|
| First Name | fn |
Hashed. Helps disambiguate common emails. |
| Last Name | ln |
Hashed. Same disambiguation purpose. |
| Date of Birth | db |
Hashed. Strong demographic identifier. |
| Gender | ge |
Hashed. Reduces matching ambiguity. |
Supporting Signals
These provide additional context for probabilistic matching:
| Signal | Parameter | Notes |
|---|---|---|
| City | ct |
Hashed. Geographic narrowing. |
| State/Region | st |
Hashed. |
| Zip Code | zp |
Hashed. Fine-grained geographic signal. |
| Country | country |
Two-letter ISO code. |
| IP Address | client_ip_address |
Not hashed. Used for session matching. |
| User Agent | client_user_agent |
Not hashed. Browser/device fingerprint. |
The Math
Most tracking setups send 3-5 signals: the click ID, IP, user agent, and maybe an email hash. That typically yields an EMQ around 4-6.
Sending all 15 pushes EMQ toward 9-10. The difference isn't just a number. A higher EMQ means Meta matches more conversions to actual users, which means its algorithm has more data points to learn from, which means it finds better audiences faster. The practical result is lower CPAs and more predictable ROAS.
Where to Check Your EMQ Score
- Open Meta Events Manager (business.facebook.com/events_manager)
- Select your Pixel/Dataset
- Click on a specific event (e.g., "Purchase")
- Look for the Event Match Quality card on the event details page
Meta shows:
- The overall EMQ score (1-10 scale)
- A breakdown of which signals you're sending
- Which signals are missing
- The percentage of events that were matched to a user
Common Reasons for Low EMQ
You're only sending click IDs and IP
This is the default for most basic Conversions API setups. The fbclid and IP address alone give Meta some matching ability, but if the user clears cookies, uses a different browser, or the click ID expires (28 days), the match fails.
Signals are hashed incorrectly
Meta requires SHA-256 hashing for PII fields. Common mistakes: hashing before normalizing (leading spaces, mixed case), double-hashing, or sending unhashed PII (which Meta will reject for privacy compliance).
Empty or placeholder values
Sending a signal parameter with an empty string or a placeholder value (like "N/A" or "unknown") is worse than not sending it at all. Meta counts it as a sent signal but can't match on it, which can actually hurt your score.
No browser ID (fbp cookie)
If your site doesn't set the Meta Pixel alongside CAPI, you lose the _fbp cookie. This first-party cookie persists across sessions and is one of the most reliable matching signals. Running CAPI without the pixel means you're missing this signal entirely.
How to Improve Your EMQ
1. Run the Pixel alongside CAPI
Meta recommends this setup explicitly. The pixel captures browser-side signals (fbp, fbc) in real time. CAPI ensures the conversion event reaches Meta even when the pixel fails. Together with proper deduplication (shared event IDs), you get the best of both worlds.
2. Capture and pass more user data
Every form field your users fill out is a potential signal. Email and phone are the most impactful. First name, last name, city, and zip code are available on most checkout forms. Date of birth and gender are less common but significantly boost matching when available.
3. Preserve the fbclid parameter
When a user clicks your Meta ad, the URL contains a fbclid parameter. This needs to survive through your entire funnel: landing page, checkout page, and conversion event. If your redirect chain strips query parameters or your landing page JavaScript drops them, you lose this signal.
4. Hash correctly
All PII fields must be:
- Lowercased
- Trimmed of leading/trailing whitespace
- Hashed with SHA-256
- Sent as lowercase hex strings
Email: normalize before hashing (john.doe@gmail.com, not John.Doe@Gmail.COM).
Phone: include country code, digits only (14155551234).
5. Use a tracker that sends the full signal set
Most tracking platforms send 3-5 signals because that's what their standard CAPI integration supports. ClickerVolt sends all 15 signals to Meta automatically: the full identity set (email, phone, names, DOB, gender), geographic data (city, state, zip, country), browser identifiers (fbp, fbc, external_id), and technical signals (IP, user agent). It also handles Pixel + CAPI deduplication automatically on every plan, including the free tier.
I'll be direct about why EMQ gets ignored: it's not visible during campaign setup, and by the time you check it, you've already been running on bad signal quality for weeks. Most media buyers optimize creative, bidding, and audiences obsessively, then leave their CAPI implementation on whatever was default from day one. I've seen accounts where switching from a 4/10 EMQ to an 8/10 EMQ let campaigns exit the learning phase twice as fast. Not because anything else changed. Just because Meta finally had enough matched data to work with.
The signal that moves the needle most, in my experience, is email hash combined with the full geographic set (city, state, zip). Email is the strongest single identifier Meta uses. Geography narrows the matching pool dramatically when email alone isn't enough. Most marketers send one. Few send both. Even fewer send date of birth and gender on top. That combination is where 8/10 becomes 9/10.
โ See ClickerVolt's 15-signal CAPI in action (free, no credit card)
EMQ and Ad Performance: The Connection
Higher EMQ doesn't just mean better numbers in Events Manager. It has a direct, measurable impact on campaign performance:
Better learning phase performance. Meta's algorithm needs ~50 conversions per week per ad set to exit the learning phase. With low EMQ, some of those conversions can't be matched to users, so the algorithm effectively sees fewer data points. Higher EMQ means more matched conversions feeding the learning phase.
Stronger lookalike audiences. When Meta builds lookalike audiences from your conversion data, it uses the matched user profiles. If your EMQ is 4/10, Meta is building that lookalike from a fraction of your actual buyers. At 9/10, nearly every buyer is included, producing a more accurate seed audience.
More accurate ROAS reporting. Low EMQ means under-reported conversions in Ads Manager. You might see a 1.5x ROAS in the dashboard when the real number is 2.3x. This leads to bad decisions: killing profitable campaigns or misallocating budget.
Frequently Asked Questions
What is a good Event Match Quality score?
Meta considers 7+ to be "Good" and 9+ to be "Great". For most advertisers, getting above 6 provides meaningful performance improvements. The jump from 3 to 7 is where you'll see the biggest impact on CPA and ad optimization.
Does EMQ affect all campaign types?
Yes. EMQ affects any campaign that uses conversion optimization, whether that's purchase campaigns, lead generation, or app installs. The algorithm uses matched conversion data for all optimization types. Campaigns using traffic or reach objectives are not directly affected since they don't optimize for conversions.
Can I have different EMQ scores for different events?
Yes, and you likely do. Each event type (PageView, Lead, Purchase, etc.) has its own EMQ score based on the signals you send with that specific event. It's common to see high EMQ on Purchase events (where you have full customer data) and lower EMQ on PageView events (where you only have browser signals).
How long does it take for EMQ improvements to show results?
Changes to your signal set are reflected in EMQ scores within 24-48 hours. The downstream impact on ad performance (lower CPAs, better ROAS) typically takes 1-2 weeks as Meta's algorithm adjusts to the improved data quality.
Is EMQ specific to Meta, or do other platforms have it?
EMQ is Meta's specific metric. Google Ads doesn't publish an equivalent score, though Enhanced Conversions serves the same purpose of improving match rates. TikTok's Events API has diagnostic tools showing match rates but doesn't use the "EMQ" terminology. The underlying principle, sending more identity signals for better conversion matching, applies across all platforms.
