Meta Event Match Quality Checker

Select which customer data parameters you're passing with your pixel or Conversions API events. Get an estimated EMQ score, see exactly what's missing, and get setup instructions to improve your match rate and ad delivery.

Tracking Setup
How are you sending events to Meta right now?
Pixel only
Conversions API only
Pixel + CAPI (deduplicated)
Customer Data Parameters
Check every parameter you are currently passing with your conversion events (e.g. Purchase, Lead). If you are unsure, go to Meta Events Manager, click your event, and look at the match key breakdown.
Identity
Ad Signal
Name & Personal
Location

EMQ parameter reference

Every customer data parameter Meta accepts, what it does, and how to pass it correctly. Bookmark this as a setup reference.

Why EMQ matters for your CPA: When Meta cannot match a conversion event to a logged-in user, that conversion does not feed the optimization algorithm. Low EMQ means the algorithm is learning from an incomplete signal - it may think campaigns are underperforming and underspend, or optimize toward the wrong audience segments. Improving EMQ from Fair to Excellent can reduce CPA by 15% to 30% by giving Meta's algorithm a more accurate picture of who is actually converting.

To learn how server-side tracking changes what Meta can see, read the Meta Conversions API guide and why data freshness affects your results.
Parameter API Key Impact Formatting requirement
Emailem user_data.em High Lowercase, trim spaces, then SHA-256 hash. Example: sha256("[email protected]")
Phoneph user_data.ph High Remove all non-numeric characters, include country code (e.g. 15551234567), then SHA-256 hash.
Meta Click IDfbc user_data.fbc High Capture fbclid from URL on landing. Format: fb.1.{timestamp}.{fbclid_value}. No hashing required.
External IDexternal_id user_data.external_id Medium Your internal customer/user ID, SHA-256 hashed. Use consistently across all events for the same user.
First Namefn user_data.fn Medium Lowercase, trim spaces, SHA-256 hash. Best sent alongside last name.
Last Nameln user_data.ln Medium Lowercase, trim spaces, SHA-256 hash.
IP Addressclient_ip_address user_data.client_ip_address Medium Pass as plain string from server request headers. No hashing. IPv4 or IPv6.
User Agentclient_user_agent user_data.client_user_agent Medium Pass as plain string. For CAPI: read from the User-Agent request header.
Date of Birthdb user_data.db Medium Format as YYYYMMDD (e.g. 19900115), then SHA-256 hash.
ZIP / Postalzp user_data.zp Low Lowercase, no spaces. US 5-digit ZIP only (trim ZIP+4). Then SHA-256 hash.
Cityct user_data.ct Low Lowercase, no spaces, no special characters. SHA-256 hash.
Statest user_data.st Low 2-letter lowercase state/region code. SHA-256 hash.
Countrycountry user_data.country Low 2-letter ISO 3166-1 alpha-2 country code, lowercase (e.g. "us"). SHA-256 hash.
Genderge user_data.ge Low Lowercase "m" or "f" only. SHA-256 hash.

Common questions about Meta Event Match Quality

What is Meta Event Match Quality? +
Meta Event Match Quality (EMQ) is a score from 0 to 10 that measures how well the customer data you send with your pixel or Conversions API events can be matched to a Facebook user account. A higher score means Meta can match more of your conversion events to actual users, giving the ad algorithm better signal to find and optimize for people like your best customers. EMQ is visible in Meta's Events Manager for each event type (Purchase, Lead, AddToCart, etc.). Low EMQ means a portion of your conversions go unattributed - reducing the algorithm's ability to learn and increasing your effective CPA.
Which data parameters have the biggest impact on EMQ? +
Email and phone number have the highest individual impact on Event Match Quality because they are primary Facebook account identifiers. The Meta Click ID (fbclid) - the URL parameter Meta appends when someone clicks your ad - is also extremely high-value because it directly ties the ad click to a user session. After those three, External ID (your internal customer or user ID), first and last name together, and IP address plus user agent are the next biggest contributors. Location data (city, state, ZIP, country) adds incremental improvement but has a smaller individual weight.
Should I use the Meta Conversions API or is the pixel enough? +
For most advertisers spending more than a few hundred dollars per month on Meta, the Conversions API (CAPI) is worth setting up alongside the pixel. The pixel relies on browser-side tracking, which is blocked by iOS privacy restrictions, Safari's ITP, and ad blockers - causing a significant portion of conversions to go untracked. CAPI sends event data server-side, bypassing those restrictions. When you run both with proper deduplication (using event_id and event_name), Meta sees a more complete picture of your conversion events, which improves EMQ and attribution accuracy. The improvement in conversion visibility typically ranges from 10% to 40% depending on your audience's browser and device mix.
How do I pass hashed customer data to the Meta pixel? +
Customer data parameters must be hashed with SHA-256 before being sent to Meta. For the browser pixel, you pass them in the Advanced Matching section using fbq('init', 'PIXEL_ID', { em: 'hashed_email', ph: 'hashed_phone', ... }), or you can pass them at the event level. For CAPI, you send them in the user_data object of each event payload. Meta provides specific formatting requirements: email must be lowercase with no spaces before hashing, phone must include country code and no formatting characters, names must be lowercase. Libraries like Meta's Business SDK handle the hashing automatically, or you can hash client-side in your checkout flow and pass the hash.
Why is my Meta Event Match Quality score low even though my pixel fires? +
A pixel firing correctly means your events are being received - but EMQ measures whether those events can be matched to a logged-in Facebook user. Common causes of low EMQ despite a working pixel: you are not passing any customer data parameters (email, phone, etc.) with events; you are only passing location data but not email or phone; your checkout does not collect email until a step after purchase fires; you are not capturing the fbclid parameter from the URL and passing it with the event; or you are passing data but it is not hashed in the correct format. Check Events Manager under each event's match key breakdown to see exactly which parameters are and are not being received.