Skip to main content

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

June 6, 202512 min read
meta adsevent match qualityconversions apipixel tracking
Dashboard showing Event Match Quality score improvements

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 ScoreMatch RateImpact
8-10 (Good)80%+ match rateFull optimization potential, accurate attribution
6-7 (Okay)60-79% match rateAdequate but leaving performance on table
4-5 (Poor)40-59% match rateSignificant data loss, degraded optimization
1-3 (Bad)Under 40% match rateSevere 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

ParameterCodeMatch Power
Email (hashed)emVery High
Phone (hashed)phVery High
External IDexternal_idHigh (when combined)

Tier 2: Supplementary

ParameterCodeMatch Power
First Name (hashed)fnMedium
Last Name (hashed)fnMedium
Date of BirthdbMedium
GendergeLow

Tier 3: Location-Based

ParameterCodeMatch Power
CityctLow
State/ProvincestLow
Zip/Postal CodezpLow
CountrycountryLow

Browser Parameters

ParameterCodeMatch Power
Client IP Addressclient_ip_addressMedium-High
Client User Agentclient_user_agentMedium
Facebook Click ID (fbc)fbcVery High
Facebook Browser ID (fbp)fbpHigh

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.