Why is Event Match Quality low on my Meta lead events, and how do I raise it for a B2B website form?
TofuAnswer by the Tofu team · checked

Usually because your Lead events reach Meta without the details it matches on, above all the email and the Meta click ID (fbc). Meta scores Event Match Quality from 0 to 10, only for website events sent through the Conversions API, from the last 48 hours of data. To raise it, send the hashed email from your form with every server Lead event, plus fbc, fbp, IP address, user agent and your CRM contact ID as external_id. Then fix what loses those details on B2B sites: redirects that drop the click ID, forms on another domain and placeholder emails.
As of October 2026.
What is Event Match Quality, and where do I find it?
It is Meta's score for how well the customer details sent with a server event can match that event to a Meta account, worked out from the quality of those details and the share of events Meta matches. It covers every standard and custom web event, Lead included, sent with the action source set to Website.
To see it for your Lead event:
- Go to Events Manager.
- Select the name and ID of your dataset.
- Find the Lead event and click View details.
- Open the Event matching tab.
The tab shows the share of events sent with customer information, with Meta's tips for better matching. Developers can pull the same score per event, plus Meta's diagnostics, from the Dataset Quality API.
What's a good Event Match Quality score for Lead events?
Meta doesn't publish a target. Its help pages say only that better match quality means more events match, which helps attribute conversions to your ads and can lower your cost per action. Third parties disagree on whether to aim for one. Elevarus, in a May 2026 post on lead gen setups, says a score below 7.0 leaves room to cut cost per lead and that a fixed setup should reach 8.5 to 9.5. Web Tonic's guide (updated October 2026) says to treat the score as relative and watch your own trend. Either way, compare your Lead event with your other web events and check the trend after each fix.
Which details raise the score the most?
Meta ranks each customer detail by priority. Email and click ID come first:
| Detail | Meta's priority | What to send |
|---|---|---|
| High | The address from the form, trimmed, lowercased and SHA-256 hashed | |
| Click ID (fbc) | High | The _fbc cookie value, or one built from the fbclid in the page URL. Not hashed |
| Phone number | Medium | Digits only, with the country code, hashed |
| Country | Medium | The 2-letter ISO code in lowercase, hashed |
| External ID | Medium | Your CRM or form tool's ID for the person. Meta recommends hashing it |
| Browser ID (fbp) | Medium | The _fbp cookie value. Not hashed |
| Facebook Login ID, birthdate | Medium | Only if you have them |
| Lead (the Meta lead ID) | Low | Exists only for Meta Instant Form leads, not website forms |
| First name, last name, city, zip | Low | Hashed, if your form asks for them |
Meta's developer docs add two more. The browser's user agent is required for website events sent through the Conversions API, and sending it with the IP address may help matching. Neither is added for you on server events, so your server has to send them. Meta prefers IPv6 addresses over IPv4 where people have them.
Meta also rejects events whose only details are a weak set, such as city, state, zip, country, gender and user agent, or first name with gender.
Why is my click ID (fbc) coverage so low?
Because only visits from a Meta ad click carry one. When someone clicks your ad, Meta adds an fbclid parameter to your URL, and the Meta Pixel saves it in the _fbc cookie. Leads who arrive from Google, email or a direct visit with no earlier Meta ad click have none, so some of your Lead events will always lack one.
The gap you can fix is ad clicks that lose the ID before the form:
- Redirects that drop the URL parameter. Meta's click ID guide points to its Pixel support guide for missing query parameters and broken redirects.
- A form on another domain. The
_fbccookie is stored under your domain. A form on a separate domain (a hosted landing page from your form or scheduling tool, say) can't read it unless you pass the value along. - A server that never reads the cookie. Meta asks you to read
_fbcfrom the request, or build it fromfbclidwhen there's no pixel, and send it with every server event. It recommends keeping it in a 90-day cookie and always sending the latest value.
Meta's Parameter Builder Library, open-source code for the browser and for servers in PHP, Java, Python, Node.js and Ruby, can capture and format fbc and fbp for you, and the IP address in its JavaScript, PHP and Node.js versions. Since September 2026, Meta's Dataset Quality API also flags "FBC coverage" when too few events carry the click ID.
Why is the score low when I already send the email?
Sending a detail doesn't guarantee a match. Meta warns that one detail on its own may not be enough and that some people have no Meta account, so you can send an email on most events and still score low. The usual causes on a B2B form:
- Placeholder emails or phone numbers. Since September 2026, the Dataset Quality API's diagnostics flag events where a large share use the same placeholder email or phone number instead of a real one, for example a test address or a default value your server fills in.
- Formatting and hashing. Normalize and hash each detail as in the table above, and don't hash the IP address or user agent. Meta's Business SDK does the hashing for you.
- A different email from the one on Facebook. Elevarus notes that form data misses leads who use a different email than their Facebook account, so send the other details too.
Do I need the Conversions API, or is the Meta Pixel enough?
You need the Conversions API to get a score at all, because Meta only scores website events sent through it. How you set it up decides what it can send:
- Meta-enabled Conversions API. Meta's free, one-click option sends the same events and the same customer details as your pixel. It can't add an email your pixel never saw.
- Automatic advanced matching. This tells the pixel to pick up details people type into forms. Turn it on in Events Manager: select your dataset, open the Settings tab, switch on automatic advanced matching, click Show customer information parameters, and choose at least Email and Phone number, as Meta suggests. It needs the form fields on pages where the pixel runs. It doesn't work if the pixel is in an iframe, if you use an IMG pixel, or if Meta puts your business in a restricted vertical, such as financial services, insurance or health.
- Manual advanced matching. A developer passes the details into the pixel code. It works in iframes, with IMG pixels and in every vertical, and Meta suggests using it alongside the automatic version.
- A direct or partner integration. Your server or form tool sends the Lead event with every detail above. Send the same event name and an
event_idfrom both the pixel and the server so Meta can drop duplicates, and aim for Meta's target of 75% event coverage (Conversions API events relative to pixel events).
Why doesn't Meta show Event Match Quality for my CRM or offline lead events?
Because the score exists only for web events. Meta's developer docs say it "is currently available only for web events." For offline and physical store events, app events, conversion leads and integrations still in alpha or beta, Meta says to ask your Meta representative how to improve matching. A Dataset Quality API for offline events, which breaks quality down by match key coverage, frequency and freshness, is in beta.
If you send CRM lead stages to Meta, our guide on sending HubSpot or Salesforce lead stages to Meta covers that setup.
How long until a fix shows up?
About two days. The score uses the last 48 hours of data, and automatic advanced matching can take up to 48 hours to show results in Events Manager. Meta says to send events regularly to keep the score up to date.
Sources (18)
- About event match quality (Meta Business Help Center), checked October 30, 2026
- View server event details in Meta Events Manager (Meta Business Help Center), checked October 30, 2026
- Best practices for Conversions API to help improve ad performance (Meta Business Help Center), checked October 30, 2026
- Monitor and improve your Conversions API setup in Meta Events Manager (Meta Business Help Center), checked October 30, 2026
- Compare Conversions API setup options (Meta Business Help Center), checked October 30, 2026
- About advanced matching for web (Meta Business Help Center), checked October 30, 2026
- Set up automatic advanced matching in Meta Events Manager (Meta Business Help Center), checked October 30, 2026
- Best practices for advanced matching for web (Meta Business Help Center), checked October 30, 2026
- Customer Information Parameters (Meta for Developers), checked October 30, 2026
- ClickID and the fbp and fbc Parameters (Meta for Developers), checked October 30, 2026
- Server Event Parameters (Meta for Developers), checked October 30, 2026
- Best Practices - Conversions API (Meta for Developers), checked October 30, 2026
- Dataset Quality API (Meta for Developers), checked October 30, 2026
- Dataset Quality API for Offline Events (Meta for Developers), checked October 30, 2026
- Parameter Builder Library (Meta for Developers), checked October 30, 2026
- Advanced matching - Meta Pixel (Meta for Developers), checked October 30, 2026
- Meta's Conversions API Easy Button: Why the Default Setup Caps Your EMQ at 6.5 (Elevarus, May 2, 2026), checked October 30, 2026
- Why Your Meta Event Match Quality Dropped: 7 Causes, Ranked (Web Tonic, updated October 9, 2026), checked October 30, 2026