Niblin
Guide11 min read

Your CAPI Event Match Quality Is Stuck at 4/10. Here's What's Leaking.

Low Event Match Quality means Meta can't match your server events to real users. Your optimization suffers, your attribution gaps widen, and you're paying for data Meta can't use. Here's how to diagnose and fix it.

Last Updated: May 26, 2026Atul TirkeyBy Atul Tirkey, Founder at Niblin

"My pixel seems to no longer know my customer. Completely defeated and no where to turn."

— Source: r/FacebookAds (+7 upvotes)

You set up Conversions API. Maybe through Shopify's native integration, maybe through a third-party app like Elevar or Trackify. You were told it would improve your tracking. But your Event Match Quality score sits at 4 or 5 out of 10, and you're not sure what that means or how to fix it.

Here's what it means: Meta can only match about half of your server events to actual Facebook users. The other half? Lost. Meta can't attribute those conversions, can't learn from them, can't build audiences from them. You're sending data that Meta can't use.

This guide explains what EMQ is, why it directly impacts your ad performance, and exactly which parameters you need to send to get your score from 4 to 8+.

What Event Match Quality Actually Means

When you send a server event via CAPI (e.g., "Purchase happened"), Meta needs to match that event to a specific Facebook user. EMQ measures how successfully it can do this.

  • Your server sends: "Someone with email X bought product Y for $Z"
  • Meta tries to find a Facebook account with that email
  • If found: match. Event attributed. Algorithm learns.
  • If not found: event is "unmatched." Meta can't use it.
  • EMQ = percentage of events successfully matched (on a 1-10 scale)
EMQ ScoreMatch RateStatusImpact on Ads
1-3<30%PoorCAPI barely functioning. Minimal optimization benefit.
4-530-50%Below AverageLosing half your conversion data. Algorithm underperforming.
6-750-70%GoodMajority of events matched. Decent optimization.
8-970-90%ExcellentStrong signal quality. Near-optimal algorithm performance.
10>90%PerfectRare. Maximum data quality.

Most Shopify stores run at EMQ 4-6. Getting to 7-8 can meaningfully improve your Meta ad performance because the algorithm has more conversion data to learn from.

Why EMQ Directly Impacts Your Ad Performance

EMQ isn't just a technical metric. It directly affects three things that matter to your bottom line:

  • Unmatched events = conversions Meta doesn't know about
  • Your reported ROAS in Ads Manager is understated
  • You might kill a profitable campaign because Meta can't see the conversions it drove
  • Meta's algorithm learns from matched conversions
  • At EMQ 4: algorithm learns from ~40% of your buyers
  • At EMQ 8: algorithm learns from ~80% of your buyers
  • More learning data = better optimization = lower CPA over time
  • Custom audiences (purchasers) are built from matched events
  • Lookalike audiences are built from matched customer profiles
  • Low EMQ = smaller seed audiences = lower-quality lookalikes
  • This compounds: bad lookalikes → worse targeting → lower conversion rates

Diagnosing Your EMQ Score

  • Go to Events Manager → Select your pixel → Overview
  • Click on a specific event (e.g., Purchase)
  • Look for "Event Match Quality" in the event details
  • Each event type has its own EMQ score
EventTypical EMQPriorityWhy
Purchase4-7CriticalYour primary optimization event
Add to Cart3-6HighKey mid-funnel signal
Initiate Checkout4-7HighStrong intent signal
View Content2-5MediumHigh volume, lower match need
Page View2-4LowToo broad to optimize for

In Events Manager, click on an event → "View Details" → look at the customer information parameters being sent. You'll see which parameters are present and at what rate. This tells you exactly what's missing.

The Parameters That Drive EMQ

Meta matches events to users using customer information parameters. More parameters = higher match rate.

ParameterEMQ ImpactMatch PowerNotes
Email (em)Very HighPrimary identifierHash before sending. Most important single parameter.
Phone (ph)HighStrong secondaryInclude country code. Hash before sending.
First Name (fn)MediumSupportingHelps disambiguate when email/phone are common.
Last Name (ln)MediumSupportingUsed with first name for matching.
City (ct)Low-MediumSupportingHelps with geographic matching.
State (st)Low-MediumSupportingUsed with city for precision.
Zip Code (zp)MediumStrong supportingGood geographic precision.
Country (country)LowSupportingImportant for international stores.
External ID (external_id)MediumCross-deviceYour customer ID. Helps with cross-device matching.
Client IP (client_ip_address)MediumSession matchingSent automatically by most implementations.
User Agent (client_user_agent)Low-MediumSession matchingSent automatically by most implementations.
FBP Cookie (fbp)HighBrowser matchingFirst-party cookie. Must be passed from browser to server.
FBC Cookie (fbc)Very HighClick matchingClick ID cookie. Critical for click-through attribution.
  • EMQ 5-6: Email only
  • EMQ 6-7: Email + Phone
  • EMQ 7-8: Email + Phone + Name + Zip + fbp/fbc cookies
  • EMQ 8-9: All parameters above + external_id + IP + user agent

The biggest EMQ jump comes from adding phone number. Email alone gets you to 5-6. Adding phone number can push you to 7+. It's available on most Shopify orders - make sure your CAPI is sending it.

Common Shopify CAPI Issues

  • Shopify's built-in CAPI sends basic parameters (email, IP, user agent)
  • Often missing: phone number, first/last name, fbp/fbc cookies
  • EMQ typically lands at 4-6 with native integration
  • No configuration options - you get what Shopify sends
  • Usually send more parameters than Shopify native
  • Check their configuration: many have toggles for phone, name, etc.
  • Verify they're passing fbp/fbc cookies (critical for click matching)
  • Some apps have deduplication built in; others don't - verify
MistakeImpact on EMQHow to Check
Phone number not sent-1 to -2 pointsEvents Manager → Event Details → Customer Parameters
fbp/fbc cookies not passed-1 to -2 pointsCheck if browser cookie is forwarded to server
Email not hashed correctlyEvents rejectedMust be SHA-256, lowercase, trimmed
Country code missing from phonePhone won't matchMust include +1, +44, etc.
Name fields empty on guest checkout-0.5 to -1 pointOnly available when customer provides name
Duplicate events not deduplicatedInflated conversionsCheck event_id matching between pixel and CAPI

Step-by-Step: Improving Your EMQ

  • Open Events Manager → Select your pixel → Click "Purchase" event
  • Note your current EMQ score
  • Click "View Details" → examine which customer parameters are being sent
  • Identify missing parameters (phone, name, cookies, external_id)
  • If using Shopify native: Consider switching to a third-party CAPI app that sends more parameters
  • If using a third-party app: Check settings for parameter toggles. Enable phone, name, zip, cookies.
  • If using custom CAPI: Add missing parameters to your server-side event payload. Hash PII with SHA-256.
  • The fbp and fbc cookies are set by Meta Pixel in the browser
  • Your server-side CAPI needs to read these cookies and include them in events
  • This requires the server to have access to the browser cookies (cookie forwarding)
  • If using a CDN or headless setup, cookies may not reach your server
  • Place a test order on your store
  • Check Events Manager → Test Events to see what parameters arrived
  • Verify all expected parameters are present and correctly formatted
  • Wait 24-48 hours for EMQ to update (it's not real-time)
  • EMQ improvements usually stabilize within 3-5 days of parameter changes

Deduplication: The Silent EMQ Killer

If you're running both Meta Pixel (browser) and CAPI (server), every conversion fires twice. Meta deduplicates using event_id. If this fails, it doesn't just double-count - it can actually hurt your EMQ.

  • Duplicate events with mismatched parameters confuse Meta's matching system
  • If Pixel sends email but CAPI sends a different format of the same email, Meta sees two events it can't reconcile
  • This can lower your effective EMQ even if individual event quality is good
  • Events Manager → Diagnostics → Check for deduplication warnings
  • Place a test order → check if 1 or 2 events appear for "Purchase"
  • If 2 events appear with different event_ids: dedup is broken
  • Ensure your Pixel and CAPI send identical event_id values for the same event
SetupDedup StatusFix
Shopify native CAPIUsually handledVerify in Events Manager diagnostics
ElevarConfigurableCheck event_id settings in Elevar dashboard
TrackifyUsually handledVerify event_id format matches between pixel and server
Custom GTM + CAPIOften brokenManually ensure event_id is passed from dataLayer to both pixel and CAPI
Multiple CAPI appsAlmost always brokenRemove duplicate CAPI implementations - use only one

Monitor Your Data Quality Automatically

EMQ can degrade silently. A Shopify update, a new app, or a cookie policy change can drop your score without warning. By the time you notice ROAS declining, you've already lost weeks of optimization data.

Automated CAPI health monitoring.

Ask Niblin's AI agent "is my Meta tracking healthy?" and get a computed answer comparing your Shopify events to Meta's received events. Flag EMQ drops, dedup failures, and parameter gaps before they impact performance. $299/mo to start.

Start Free Trial - 15 Minute Setup

Key Takeaways

  • Event Match Quality measures how well Meta can match your CAPI events to Facebook users (1-10 scale)
  • Most Shopify stores score 4-6 - improving to 7-8 can meaningfully boost algorithm optimization
  • Email alone gets you to EMQ 5-6. Adding phone number is the biggest single improvement.
  • The fbp and fbc browser cookies are critical for click attribution - ensure they're passed to your server
  • Deduplication failures between Pixel and CAPI can hurt EMQ even when individual event quality is good
  • Check EMQ per event type - Purchase EMQ matters most since it's your optimization event
  • EMQ updates take 24-48 hours after parameter changes. Allow 3-5 days to stabilize.

Frequently Asked Questions

What is Event Match Quality in Meta ads?

Event Match Quality (EMQ) is Meta's 1-10 score measuring how well your Conversions API server events match to real Facebook users. Higher EMQ means Meta can attribute more conversions, build better audiences, and optimize delivery more effectively. Most stores score 4-6; aim for 7+.

How do I improve my Meta Event Match Quality score?

Send more customer parameters with each CAPI event: email (hashed), phone number (hashed), first name, last name, city, state, zip code, country, and external_id. Email alone gets you to 5-6. Adding phone + name + location pushes you to 7-9. Ensure proper event deduplication.

Does EMQ affect ad performance?

Yes. Higher EMQ means Meta's algorithm learns from more of your conversions. At EMQ 4, the algorithm only sees ~40% of buyers. At EMQ 8, it sees ~80%. More learning data leads to better optimization, lower CPA, and stronger lookalike audiences over time.

What is a good Event Match Quality score?

EMQ 7-8 is good for most Shopify stores. Below 5 means you're losing significant conversion data. Above 8 is excellent. Focus on Purchase event EMQ first - it's your primary optimization signal. View Content EMQ matters less since it's a high-volume, low-value event.

Ready to optimize your e-commerce analytics?

Connect your Shopify and Amazon stores to get unified insights across all your sales channels.