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.