Thread Transfer
Event Match Quality: How to Reach 8+ Score
Your Event Match Quality score directly impacts attribution accuracy and optimization. Below 6, you're flying blind. Here's how to reach 8+ and unlock better data.
Jorgo Bardho
Founder, Meta Ads Audit
You set up CAPI, verified your pixel fires correctly, and patted yourself on the back for having "good tracking." Then you checked Event Match Quality in Events Manager and saw a score of 5.2. That number isn't just a vanity metric—it directly determines how well Meta can attribute conversions to your ads and optimize delivery. Below 6, you're operating with significant data loss. Below 4, you might as well be guessing.
Event Match Quality (EMQ) measures how well the customer information you send with events matches Meta's user database. Higher scores mean better attribution accuracy, more efficient optimization, and ultimately lower CPAs. This guide explains exactly what drives EMQ, how to diagnose low scores, and the specific fixes that push you above 8.
What Is Event Match Quality?
When you send a conversion event to Meta (via pixel or CAPI), you include customer parameters—email, phone, name, address, and more. Meta uses these parameters to match the event to a specific user in its database. The more parameters you send, and the better their quality, the higher the match rate.
EMQ scores range from 1 to 10, based on the percentage of events that Meta can confidently attribute:
| EMQ Score | Match Rate | Impact |
|---|---|---|
| 8-10 (Good) | 80%+ match rate | Full optimization potential, accurate attribution |
| 6-7 (Okay) | 60-79% match rate | Adequate but leaving performance on table |
| 4-5 (Poor) | 40-59% match rate | Significant data loss, degraded optimization |
| 1-3 (Bad) | Under 40% match rate | Severe attribution problems, optimization compromised |
Why EMQ Matters for Performance
EMQ isn't just about seeing accurate numbers in your dashboard—it directly affects campaign optimization:
Better Lookalike Audiences
When Meta can match your purchasers to its user database, it builds more accurate lookalike audiences. Unmatched events mean missing data points. A 5.0 EMQ on Purchase events means 50% of your best customers aren't informing your lookalike targeting.
Improved Delivery Optimization
Meta's algorithm learns from conversions. When it can't match an event to a user, that learning signal is lost. Low EMQ means the algorithm is optimizing on partial information, like driving with one eye closed.
Accurate Attribution
Unmatched events appear as organic or direct traffic in your reports. Your Meta Ads might be driving conversions that aren't being credited, making ROAS look worse than reality. Improving EMQ often "recovers" conversions you didn't know you were missing.
Post-iOS 14 Modeling
Meta uses modeled conversions to fill gaps from iOS users who opted out of tracking. Higher EMQ gives the modeling algorithm better seed data. Low EMQ means even the modeled conversions are less accurate.
How to Check Your Event Match Quality
Navigate to Events Manager in your Meta Business Suite. Select your pixel/dataset, then click the "Overview" tab. Scroll to find individual event metrics, where you'll see EMQ scores for each event type (PageView, ViewContent, AddToCart, Purchase, etc.).
Key things to check:
- Purchase EMQ: Most critical—this affects optimization for conversion campaigns
- Lead EMQ: Critical for lead generation campaigns
- AddToCart EMQ: Important for upper-funnel optimization
- Variance between events: If Purchase is 8.5 but Lead is 4.2, you have a data collection problem on lead forms
The Customer Parameters That Drive EMQ
Meta accepts multiple customer information parameters. Each contributes to matching capability:
Tier 1: Highest Impact
| Parameter | Code | Match Power |
|---|---|---|
| Email (hashed) | em | Very High |
| Phone (hashed) | ph | Very High |
| External ID | external_id | High (when combined) |
Tier 2: Supplementary
| Parameter | Code | Match Power |
|---|---|---|
| First Name (hashed) | fn | Medium |
| Last Name (hashed) | fn | Medium |
| Date of Birth | db | Medium |
| Gender | ge | Low |
Tier 3: Location-Based
| Parameter | Code | Match Power |
|---|---|---|
| City | ct | Low |
| State/Province | st | Low |
| Zip/Postal Code | zp | Low |
| Country | country | Low |
Browser Parameters
| Parameter | Code | Match Power |
|---|---|---|
| Client IP Address | client_ip_address | Medium-High |
| Client User Agent | client_user_agent | Medium |
| Facebook Click ID (fbc) | fbc | Very High |
| Facebook Browser ID (fbp) | fbp | High |
Common Causes of Low EMQ
Missing Email or Phone
The most common issue. If your checkout flow collects email at the end, events fired before checkout (AddToCart, InitiateCheckout) won't have email data. Consider progressive data collection or sending events only after email capture.
Unhashed or Incorrectly Hashed Data
Meta requires SHA-256 hashing for PII parameters. Common mistakes include: sending plain text instead of hashed values, hashing data that includes extra whitespace or capitalization, or double-hashing already-hashed values.
Proper hashing requires lowercase, trimmed values before hashing:
- Wrong: Hash("John@Example.com ") = incorrect hash
- Right: Hash("john@example.com") = correct hash
Missing Browser Parameters
For CAPI events, you must pass client_ip_address and client_user_agent from the browser request. Server-side code that doesn't capture these parameters loses significant matching capability. The fbc and fbp cookies are also critical—if your CAPI implementation doesn't read and pass these cookies, match rates drop significantly.
Deduplication Issues
If you're sending both pixel and CAPI events, you must implement deduplication using matching event_id values. Without deduplication, Meta might attribute the same conversion twice—or discard CAPI events entirely because they appear duplicated.
Guest Checkout Without Data
Guest checkout flows often collect email late in the process. Events fired before email collection have no user identifiers. For guest checkout, ensure you're at least passing fbc/fbp cookies and IP/user agent from the browser.
How to Improve Event Match Quality
Step 1: Audit Current Parameter Coverage
In Events Manager, go to the "Test Events" tab. Fire a test purchase event on your site while logged into a test account. Check which parameters are being received. Look for gaps—missing email, phone, or browser parameters.
Step 2: Implement Comprehensive CAPI
If you're only using the pixel, you're losing iOS users and ad-blocked sessions. CAPI sends events server-to-server, bypassing browser restrictions. Most platforms (Shopify, WooCommerce, custom) have CAPI integrations available.
Step 3: Pass All Available Parameters
Don't send just email—send everything you have. Each parameter increases match probability. The combination of email + phone + name + IP + user agent + fbc gives Meta multiple matching vectors.
For CAPI events, ensure you're passing:
- em (email, SHA-256 hashed)
- ph (phone, SHA-256 hashed, E.164 format)
- fn (first name, SHA-256 hashed, lowercase)
- ln (last name, SHA-256 hashed, lowercase)
- ct (city, SHA-256 hashed, lowercase, no spaces)
- st (state, SHA-256 hashed, 2-letter code)
- zp (zip code, SHA-256 hashed)
- country (2-letter ISO code)
- client_ip_address (unhashed)
- client_user_agent (unhashed)
- fbc (Facebook Click ID cookie, unhashed)
- fbp (Facebook Browser ID cookie, unhashed)
Step 4: Fix Hashing Issues
Ensure all PII is properly normalized before hashing:
- Lowercase all text (emails, names, cities)
- Remove leading/trailing whitespace
- Remove spaces from city names
- Use E.164 format for phone numbers (no dashes, include country code)
- Hash with SHA-256 (lowercase hex output)
Step 5: Implement Event Deduplication
If using both pixel and CAPI, each event needs a matching event_id. When Meta receives two events with the same event_id, it deduplicates automatically. Generate a unique ID client-side, send it with the pixel event, then include the same ID in your CAPI call.
Step 6: Capture Emails Earlier
If possible, collect email before the AddToCart stage. Email pop-ups, newsletter signups, or account creation flows give you identifiers earlier in the funnel. Even if visitors don't complete purchase, you'll have matched AddToCart events for optimization.
Platform-Specific EMQ Optimization
Shopify
Shopify's native Meta integration includes CAPI. Ensure "Maximum data sharing" is enabled in your Meta sales channel settings. Check that your checkout captures email before confirming the order. For Shopify Plus, you can customize checkout to request email earlier.
WooCommerce
Use a dedicated CAPI plugin (like PixelYourSite Pro or Conversios) rather than relying only on pixel. Configure the plugin to pass all available customer data. Ensure phone field is included in checkout and properly formatted.
Custom Platforms
Implement CAPI via direct API integration or tools like Google Tag Manager Server-Side. Ensure your server-side code reads fbc/fbp cookies from the request and includes them in CAPI calls. Log and audit parameter coverage regularly.
Monitoring and Maintaining EMQ
Weekly Checks
- Review EMQ scores for Purchase, Lead, and AddToCart events
- Look for sudden drops indicating integration issues
- Compare pixel vs CAPI event volumes for deduplication health
Event Diagnostics
Meta provides diagnostics for each event showing which parameters are present/missing. Use this to identify specific gaps. If 80% of Purchase events are missing phone numbers, that's a clear optimization target.
Test Event Tool
Use the Test Events feature after any integration changes. Fire test conversions and verify all expected parameters arrive correctly. This catches hashing errors and missing fields before they affect real data.
Realistic EMQ Targets
Perfect 10.0 EMQ is rare. Here are realistic targets by business type:
- E-commerce with account creation: 8.5-9.5 achievable
- E-commerce with guest checkout: 7.0-8.5 typical ceiling
- Lead generation: 8.0-9.0 if forms capture email/phone
- Content/media sites: 5.0-7.0 (limited user data available)
- B2B with gated content: 7.5-8.5 for gated events, lower for ungated
Key Takeaways
- EMQ directly impacts optimization quality and attribution accuracy
- Target 8+ for conversion-optimized campaigns; below 6 degrades performance significantly
- Email and phone are highest-impact parameters; send both when available
- Browser parameters (fbc, fbp, IP, user agent) are critical for CAPI events
- Proper normalization and hashing prevents matching failures
- Deduplication is essential when using both pixel and CAPI
- Monitor weekly and investigate sudden score drops
FAQ
Why is my CAPI EMQ lower than pixel EMQ?
Usually means CAPI isn't passing browser parameters (fbc, fbp, IP, user agent) correctly. These are captured automatically by the pixel but must be explicitly sent via CAPI. Check your server-side implementation.
Does higher EMQ always mean better ROAS?
Not directly, but it means more accurate measurement and better optimization signals. You might see reported ROAS increase simply because previously unattributed conversions now get proper credit.
Should I focus on EMQ for all events or just Purchase?
Prioritize events you're optimizing for. If running Purchase optimization, focus there first. But AddToCart and ViewContent EMQ matter too—they provide upper-funnel signals for audience building and prediction.
My EMQ dropped suddenly—what happened?
Common causes: site update broke tracking code, CAPI integration expired/errored, checkout flow changed, or third-party cookie changes affected fbc/fbp capture. Check Events Manager diagnostics for error details.
Is 10.0 EMQ possible?
Technically yes, but rare in practice. It requires capturing all parameters for every single event, which is difficult with anonymous visitors. A score of 8-9 is excellent for most businesses.
Learn more: How it works · Why bundles beat raw thread history