Why Meta Says 'Event Match Quality Low' and How to Lift It Above 8.0
- info wittelsbach
- 4 days ago
- 4 min read
Your Events Manager dashboard shows a yellow warning: Event Match Quality: 5.2 — Below Average. Your CPA has been creeping up for weeks and nothing in the campaign settings explains it. EMQ is the silent killer behind half of degraded D2C accounts in 2026.
Event Match Quality measures how well Meta can connect a server-side or browser event back to a real person on their platform. Below 6.0 is broken. Between 6.0 and 8.0 is leaky. Above 8.0 is healthy. Most Indian D2C brands sit at 5.5-7.0 without realizing it.
Here's how to lift EMQ above 8.0 — methodically, parameter by parameter.
First: Confirm EMQ Is Really the Problem
Open Events Manager → your pixel → Overview tab. EMQ score sits at the top right, color-coded green/yellow/red. Click into it for the parameter-level breakdown.
If you see EMQ 5.0-7.5 with the Below Average label, this guide applies. If you see EMQ blank or Insufficient Data, you're not sending enough volume — solve volume first.
Root Cause: You're Sending Too Few Customer Parameters
Meta scores EMQ on how many identifying parameters you pass per event: email, phone, first name, last name, city, state, zip, country, gender, date of birth, external_id, client_ip_address, client_user_agent.
Most Indian D2C brands pass only email and IP. That's an EMQ of about 5.5. To cross 8.0, you need at least 7-8 parameters, properly hashed, on the majority of your events.
The Diagnostic — Which Parameters You're Actually Sending
Open Events Manager → your pixel → Diagnostics tab. Look at the Customer Information Parameters section.
Email: should show 95%+ coverage on Purchase events.
Phone: 80%+ coverage. India is mobile-first — phone is more reliable than email for Meta matching.
First name + last name: 80%+ coverage, separate fields, hashed correctly.
City + state + zip: 70%+ coverage. Indian PIN codes count as zip.
External ID: 90%+ coverage. Usually your Shopify customer ID.
Client IP + user agent: 95%+ coverage. Server-side CAPI must pass these explicitly.
Any parameter under 60% coverage is silently dragging your EMQ down. The Diagnostics tab tells you exactly which ones.
The Fix — Lifting EMQ Above 8.0
Fix 1: Capture Phone at Checkout Always
Shopify allows phone as optional or required. For Indian D2C, set it to Required. Phone is the strongest single match parameter in India because Meta matches on WhatsApp identity. Brands that switch phone from optional to required see EMQ jump 1.5-2.0 points in 7 days.
Fix 2: Pass Hashed PII on Server-Side Events
Browser pixel auto-hashes via fbq. CAPI requires you to hash explicitly with SHA-256 lowercase before sending. Common mistake: passing plain email to CAPI — Meta rejects it as PII and drops the parameter, dragging EMQ. Always hash email, phone, names, and zip with SHA-256 before the CAPI call.
Fix 3: Normalize Phone to E.164 Format
Indian phones often go to CAPI as `9876543210` or `+91 98765-43210` or `09876543210`. Meta requires E.164: `919876543210` — no plus, no spaces, country code prepended, hashed. Wrong format = parameter dropped silently.
Fix 4: Send External ID on Every Event
External ID is your customer's Shopify ID or CRM ID, hashed. It's the strongest non-PII identifier and Meta weights it heavily. Pass it on Purchase, AddToCart, ViewContent — every event in the funnel. Most brands pass it only on Purchase, which leaves EMQ stuck around 6.5.
Fix 5: Pass Client IP and User Agent on CAPI
Server-side CAPI events without `client_ip_address` and `client_user_agent` score lower than browser events. Always forward the original visitor's IP from your web server (not your CAPI server's IP) and the visitor's user agent string. This single fix lifts EMQ by 0.8-1.2 points.
Validation — Measuring EMQ Recovery
After implementing the fixes, EMQ updates daily but the score is based on a 7-day rolling window. Don't expect immediate jumps. Watch for these milestones.
Day 1-2: parameter coverage in Diagnostics improves visibly.
Day 3-5: EMQ score rises by 0.5-1.0 points.
Day 7-10: EMQ stabilizes at new baseline.
Day 14: campaign CPA should improve 10-25% due to better algorithm signal.
If EMQ doesn't move after 7 days, the parameter coverage probably isn't actually improved — re-audit the Diagnostics tab and look for the parameter still under 60%.
How Wittelsbach AI Audits and Lifts EMQ Automatically
Bach AI scans every connected pixel for EMQ score, parameter coverage, and hashing correctness — generating a parameter-by-parameter remediation plan with the exact code change needed for your stack (Shopify, custom Node, WordPress).
Most brands cross EMQ 8.0 within 14 days of following the Bach AI remediation plan. The ROAS lift averages 18-32% because the algorithm finally has clean signal. Try Bach AI on your account at [app.wittelsbach.ai](https://app.wittelsbach.ai).
Frequently Asked Questions
What's a good Event Match Quality score for Indian D2C brands in 2026?
Above 8.0 is healthy. Above 9.0 is excellent. Below 7.0 means you're losing roughly 20-40% of your attribution to weak matching, which directly suppresses ROAS and drives up CPA. Most Indian D2C brands with phone-required checkout and proper CAPI implementation sit at 8.2-9.1 EMQ — that's the target.
Does poor Event Match Quality affect campaign performance or just reporting?
Both. EMQ below 7.0 affects three things: reported ROAS (under-attribution), algorithm optimization (Meta optimizes against weaker signal), and audience targeting (custom audiences are smaller and lower quality). The CPA impact alone is usually 15-25% — fixing EMQ is one of the highest-leverage technical optimizations in performance marketing.
Should I hash customer phone numbers on the client side or server side?
Browser pixel hashes automatically — never pass raw PII via fbq. CAPI requires you to hash on your server before sending. Use SHA-256 with lowercase and trimmed input. For India phones, normalize to E.164 (`919876543210`) before hashing. Hashing on client side is a security risk and not recommended.
Do I need to ask user consent before sending hashed customer data via CAPI?
Under India's DPDP Act and Meta's own terms, yes. Display a clear privacy notice at checkout and have a Privacy Policy URL on your domain. Meta will eventually de-platform domains that pass PII without policy documentation. The hashing of PII is for matching efficiency, not a substitute for consent.
Will Event Match Quality keep improving past 9.0 if I add more parameters?
Diminishing returns after 9.0. The score caps around 9.5-9.7 for most accounts. The CPA and attribution benefit also flattens above 8.5. Don't over-engineer past 8.5 — focus the extra effort on creative testing or audience expansion instead, where the ROAS leverage is higher.
