How to Improve Meta Event Match Quality: What Data to Send
How to improve Event Match Quality in Meta: which customer data counts, how to normalize and hash it, and how fbc, fbp and event_id help your score.
Contents
You're sending conversions to Meta, but Events Manager shows a 4.1 for your lead event - and you're wondering what else Meta wants from you? This guide explains what's behind the score, which data you should send, how to prepare it correctly and which mistakes drag the score down. It's for performance marketers, agencies and lead generation businesses that use the Conversion API or are about to set it up.
What Event Match Quality measures
Event Match Quality (EMQ), often called the "Event Quality Score", is a value from 0 to 10 that Meta shows in Events Manager per event. It describes how effective the customer information from your Conversion API is at matching an event to a Facebook or Instagram account. According to Meta, three things go into it: which customer information you send, the quality of that information, and the share of events that actually get matched to an account. The score is currently only available for website events.
You'll find the score in Events Manager: select your data source (pixel), open the event, then the Event Match Quality overview. Meta shows not just the value but also which customer data is sent and how often. That list is your most important tool for improving it.
Keep in mind: the score isn't a goal in itself. A high value on PageView doesn't help much if your Lead or Purchase event matches poorly. Focus on the events your campaigns optimize for.
Why the score matters for your campaigns
Meta puts it plainly: only matched events can be used for ad attribution and ad delivery optimization. Unmatched events only count toward basic measurement. That has three consequences:
- Fewer attributed conversions: Meta can attribute leads and purchases to the ad that drove them less often. Your campaigns look worse in the ad account than they really are.
- Worse optimization: The algorithm only learns from conversions it can match. If many are missing, it optimizes on a distorted picture.
- Smaller audiences: Custom audiences and lookalike audiences built on your events become smaller and less accurate.
In lead generation this hurts in particular, because forms collect exactly the data Meta needs: email address and phone number. It just has to arrive in the event cleanly.
How the Conversion API improves Event Match Quality
The Meta Pixel runs in the browser and only sees what happens there. The Conversion API sends events straight from your server - and that raises Event Match Quality for several reasons:
- More customer data per event: Your server knows what the browser doesn't pass on: the email address and phone number from the form, the name from your CRM, your own customer ID. Meta lists these among the strongest matching parameters.
- Fewer lost events: Events the pixel misses because of connectivity or page-load issues, ad blockers or browser restrictions still arrive via the server.
- Pixel and server complement each other: Meta recommends a "redundant setup" - sending the same key events via pixel and Conversion API. The pixel provides
fbp,fbc, IP and user agent from the browser; the server adds the customer data. Usingevent_idand the same event name, Meta merges both and counts them once. - Events after the click: Deals in your CRM or payments often happen days later and without a browser. Only the Conversion API can send them to Meta - with the same customer data as the lead. Meta doesn't currently show an EMQ score for these, but matching works the same way.
- Full control over data quality: On the server you normalize and hash the data yourself - instead of relying on whatever a browser script captures.
Next to Event Match Quality, Events Manager shows further values worth watching: event coverage (how many pixel events also come through the Conversion API), deduplication, data freshness (the delay between the event and when Meta receives it) and the additional conversions reported that Meta can attribute thanks to the Conversion API.
Which parameters count
Meta calls this data "customer information parameters". The more of them an event contains - and the more often they're actually present - the better the match.
| Data | Meta parameter | Hash? | Note |
|---|---|---|---|
| Email address | em | Yes (SHA-256) | One of the strongest parameters |
| Phone number | ph | Yes | With country code, digits only |
| First and last name | fn, ln | Yes | Improves matching together with city/zip |
| City, state, zip, country | ct, st, zp, country | Yes | Country as two-letter ISO code |
| Gender, date of birth | ge, db | Yes | Rarely available in lead generation |
| Your own customer ID | external_id | Recommended | E.g. the ID from your CRM |
| Click ID | fbc | No | Built from the ad's fbclid |
| Browser ID | fbp | No | The Meta Pixel's _fbp cookie |
| IP address, user agent | client_ip_address, client_user_agent | No | From the visitor's browser request |
For website events sent via the Conversion API, Meta also requires action_source, event_source_url and client_user_agent. Location data alone (city, zip, country, gender) without email, phone or click ID is considered too broad for matching.
In lead generation the two biggest levers are almost always email and phone number (strong because they're unique) and fbc (it ties the event directly to the ad click).
Normalize and hash data correctly
Meta compares hashes. A single uppercase letter or space produces a completely different hash - and the match fails even though the data is actually right. So the rule is: normalize first, then hash with SHA-256.
Email: " Max.Smith@Company.COM " → "max.smith@company.com"
Phone: "(415) 555-0123" → "14155550123"
First: "José" → "josé"
City: "San Francisco" → "sanfrancisco"
Zip: "94103" → "94103"
Country: "United States" → "us"
The key rules:
- Lowercase everything and trim leading and trailing spaces.
- Phone numbers with digits and country code only - no
+, no symbols, no leading zeros. - Country as a two-letter ISO code (
us,gb,de) - Meta says to always include it, even if all your customers are in one country. - Don't hash twice, and don't normalize values that are already hashed.
fbc,fbp, IP address and user agent stay unhashed.
Capture fbc and fbp reliably
fbc and fbp connect the ad click, the browser and the server event:
- The
fbclidis appended to the URL when someone clicks your Meta ad. It becomesfbcin the formatfb.1.<timestamp in milliseconds>.<fbclid>. Important: thefbclidis case-sensitive and must not be modified - don't lowercase it like the rest of your data. If thefbclidgets lost,fbcis missing. fbpis the browser ID in the_fbpcookie set by the Meta Pixel.
Typical places where both get lost:
- Redirects that strip URL parameters (e.g. from
domain.comtowww.domain.com). - Funnels in iframes or on another domain: the click lands on your website, but the form lives somewhere else.
- Long gaps between click and conversion: if you don't store
fbcwith the lead, it's gone by the time the deal closes.
So store fbc and fbp on the first visit or with the lead, and send them with every later event - including the deal won weeks later.
Step by step to a better score
Check where you stand
Open your most important event (Lead or Purchase) in Events Manager and note the score and the coverage per parameter.
Check forms for email and phone
Ask for both where it makes sense for your process, and make sure the values arrive in the event - including funnels, scheduling tools and lead ads.
Normalize and hash
Prepare all customer data according to the rules above and hash it with SHA-256. A test event in Events Manager shows whether Meta recognizes the parameters.
Send fbc and fbp
Capture the fbclid on the click, store fbc and fbp with the lead and send both with every server event.
Deduplicate pixel and server
If you send the same event via pixel and Conversion API, give both the same event_id and event name. Otherwise Meta counts it twice.
Send later events back
Also send deals and purchases from your CRM or payment provider with the same customer data. That's how Meta learns which leads actually bring in revenue.
Meta only accepts server events up to seven days after they happened - if a request contains an older event, the whole request is rejected. Send events promptly - ideally automatically, as soon as they occur in your CRM or payment provider.
Common mistakes
- Sending pixel data only: An event with IP, user agent and
fbpbut no email or phone number usually ends up at the low end. - Unnormalized values: "Max@Company.com " and "max@company.com" produce different hashes.
- Phone numbers without country code: "(415) 555-0123" without the leading 1 often isn't recognized.
- The server's IP address instead of the visitor's: Sending your server IP makes matching worse.
fbcgets lost along the way: Redirects, iframes or domain switches strip thefbclid.- Modifying the
fbclid: Lowercasing it along with your other data makesfbcuseless. - Missing deduplication: Double-counted events distort campaign data, even if the score looks good.
- Looking at the wrong event's score: A PageView at 8.5 doesn't make up for a Lead event at 4.
How LeadMetrics helps
LeadMetrics doesn't display the score itself - you see it in Meta Events Manager. But the LeadMetrics Conversion API sends exactly the data that feeds Event Match Quality:
- Hashed customer data: email, phone number and names are sent hashed with SHA-256.
- Click and browser IDs:
fbcandfbpare sent with the event. - Deduplication: every event gets an
event_id. - Value and currency for purchases and won deals - including deals that close in your CRM weeks after the click, for example via HubSpot.
- Form detection: lead tracking captures email and phone number from form fields, including single-page apps; funnels in iframes have their own placeholders.
- Log per lead: you see which events were sent to Meta for each lead.
You decide per project which LeadMetrics events (lead, purchase, deal won, custom metric …) arrive as which Meta event. For Meta you can also choose whether to send only attributed data or all data.
Ready for better tracking?
Frequently asked questions
Terms in this guide
All termsEvent Match Quality
Event Match Quality (EMQ) is a Meta score from 0 to 10 that rates how well your server events can be matched to a Meta account using customer data.
Conversion API · CAPI
A Conversion API (CAPI) is an interface that sends conversions directly from server to server to ad platforms like Meta or Google, without the browser.
Hashing
Hashing turns data like email addresses into a fixed string using a one-way function (e.g. SHA-256), so the original can't be calculated back from it.
fbclid · Facebook Click Identifier
The fbclid (Facebook Click Identifier) is an ID Meta appends to links from Facebook and Instagram so conversions can be attributed to the original click.
Event Deduplication
Event deduplication makes sure a conversion sent through both the pixel and the Conversion API is only counted once by the ad platform.
Tracking Pixel
A tracking pixel is a snippet of code from an ad platform that captures page views and conversions in the browser and reports them to Meta, Google and others.
First-Party Cookies
First-party cookies are set by the domain you are currently visiting. They store things like logins, shopping carts or tracking IDs for that same website.
Lead Ads
Lead ads are ads with a built-in form that let users submit their contact details right inside the ad platform without having to visit a website.
Related articles
- Meta AI for Meta Ads: What the AI Assistant Can Do - and What It Needs From YouMeta is building AI into every layer of its ad platform: business assistant, AI video, audience discovery. What's live, what's in testing - and why the AI is only as good as your conversion data.
- Tracking without CAPI, Pixel Chaos, and Developer OverheadWhy modern marketers rely on Direct Track, one‑code tracking, and automatic form tracking
- META Andromeda Update - Tracking ComplicationsMeta (formerly Facebook) has rolled out Andromeda, the largest update to its advertising algorithm to date – fundamentally changing how Facebook Ads and Instagram Ads are delivered. For all marketers, advertisers, and agencies, one thing is now clear: those who don't have conversion tracking under control will lose visibility, revenue, and scalability.
More guides
All guidesCampaign Tracking with UTMs and Click IDs: Setup Guide
Set up clean campaign tracking: a UTM naming convention, dynamic parameters in Meta and Google Ads, click IDs, common mistakes and how to test it all.
Read guideMeasure Real ROAS in Lead Generation: From Click to Closed Deal
How to measure real ROAS in lead generation: attribute CRM revenue to campaigns, read CPL, CPA and ROAS correctly and send deal values back to Meta and others.
Read guideSocial Media KPIs for Lead Generation: Which Metrics Matter
The key social media metrics for lead campaigns on Meta, Instagram, TikTok and LinkedIn: from reach and CTR to cost per lead, cost per acquisition and ROAS.
Read guide