"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 Score | Match Rate | Status | Impact on Ads |
|---|---|---|---|
| 1-3 | <30% | Poor | CAPI barely functioning. Minimal optimization benefit. |
| 4-5 | 30-50% | Below Average | Losing half your conversion data. Algorithm underperforming. |
| 6-7 | 50-70% | Good | Majority of events matched. Decent optimization. |
| 8-9 | 70-90% | Excellent | Strong signal quality. Near-optimal algorithm performance. |
| 10 | >90% | Perfect | Rare. 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
| Event | Typical EMQ | Priority | Why |
|---|---|---|---|
| Purchase | 4-7 | Critical | Your primary optimization event |
| Add to Cart | 3-6 | High | Key mid-funnel signal |
| Initiate Checkout | 4-7 | High | Strong intent signal |
| View Content | 2-5 | Medium | High volume, lower match need |
| Page View | 2-4 | Low | Too 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.
| Parameter | EMQ Impact | Match Power | Notes |
|---|---|---|---|
| Email (em) | Very High | Primary identifier | Hash before sending. Most important single parameter. |
| Phone (ph) | High | Strong secondary | Include country code. Hash before sending. |
| First Name (fn) | Medium | Supporting | Helps disambiguate when email/phone are common. |
| Last Name (ln) | Medium | Supporting | Used with first name for matching. |
| City (ct) | Low-Medium | Supporting | Helps with geographic matching. |
| State (st) | Low-Medium | Supporting | Used with city for precision. |
| Zip Code (zp) | Medium | Strong supporting | Good geographic precision. |
| Country (country) | Low | Supporting | Important for international stores. |
| External ID (external_id) | Medium | Cross-device | Your customer ID. Helps with cross-device matching. |
| Client IP (client_ip_address) | Medium | Session matching | Sent automatically by most implementations. |
| User Agent (client_user_agent) | Low-Medium | Session matching | Sent automatically by most implementations. |
| FBP Cookie (fbp) | High | Browser matching | First-party cookie. Must be passed from browser to server. |
| FBC Cookie (fbc) | Very High | Click matching | Click 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
| Mistake | Impact on EMQ | How to Check |
|---|---|---|
| Phone number not sent | -1 to -2 points | Events Manager → Event Details → Customer Parameters |
| fbp/fbc cookies not passed | -1 to -2 points | Check if browser cookie is forwarded to server |
| Email not hashed correctly | Events rejected | Must be SHA-256, lowercase, trimmed |
| Country code missing from phone | Phone won't match | Must include +1, +44, etc. |
| Name fields empty on guest checkout | -0.5 to -1 point | Only available when customer provides name |
| Duplicate events not deduplicated | Inflated conversions | Check 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
| Setup | Dedup Status | Fix |
|---|---|---|
| Shopify native CAPI | Usually handled | Verify in Events Manager diagnostics |
| Elevar | Configurable | Check event_id settings in Elevar dashboard |
| Trackify | Usually handled | Verify event_id format matches between pixel and server |
| Custom GTM + CAPI | Often broken | Manually ensure event_id is passed from dataLayer to both pixel and CAPI |
| Multiple CAPI apps | Almost always broken | Remove 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.
By