An agency owner posted on r/FacebookAds earlier this year with a specific and slightly panicked problem.
His leads had stopped answering the phone. Not gradually. Within days, people who used to pick up immediately were ghosting.
He went looking for a cause and found one: every client pixel he managed was reading 5.4 out of 10 on event match quality. Not one account. All of them.
Then he wrote the sentence that made me want to write this article:
He said he did not have a clue how it had been set up that way, or how to add more events.
He was not incompetent. He had started his agency the previous December, had not churned a client, and was actively monitoring his accounts, which is why he noticed at all. He simply had no visibility into a number that was quietly governing his delivery.
That 5.4 is not a mystery. It is arithmetic, and once you see it you cannot unsee it.
What the score actually is
Event match quality is a score from 0 to 10 measuring how reliably Meta can connect a conversion event you send to a real account in its system.
It is not a measure of how many events you send. It is not a measure of whether your integration works. It is a weighted average of how many identifying parameters your events carry, across all the events you send.
The parameters Meta scores on:
- Phone
- First name
- Last name
- City
- State
- Zip
- Country
- Gender
- Date of birth
- External ID
- Client IP address
- Client user agent
Send more of them, accurately, on more of your events, and the score goes up. That is the entire mechanic.
Why 5.4 specifically
Here is the scale as practitioners consistently report it:
| What you send | Typical EMQ |
|---|---|
| Hashed email and phone only | 5.0 to 6.0 |
| Add the click ID (fbc) | 7.0 to 8.5 |
| 7 to 8 parameters on most events | 8.0+ |
Read the first row again, then reread the agency owner's post. He listed exactly what he was collecting: email, phone, zip, country, first name, last name.
He was sending six parameters and sitting at 5.4, which tells you something more useful than the score itself. Coverage is weighted across events. If those six fields only appear on some events, and the rest go out thin, the average drops. A high-volume PageView event carrying almost nothing drags down the same dataset your Lead event lives in.
Event match quality is not a measure of your best event. It is a measure of your average one.
That is why people check the number, see something in the mid-5s, and cannot work out what is broken. Nothing is broken. Two parameters times a lot of events is a mid-5 score, forever.
The click ID is the biggest single jump
Most of the parameters are probabilistic. Meta takes a hashed email and looks for an account it might belong to. Good, but inferential.
The click ID is different. fbc is a deterministic link back to the specific ad click that produced the visit. There is no guessing.
That is why the published scale shows the largest single move when it is added, from the mid-5s to somewhere between 7.0 and 8.5. It is also the parameter most commonly lost — it lives in a cookie set by a URL parameter, and it disappears the moment your funnel bounces the visitor through a redirect, a third-party booking tool, or a form that opens in an iframe on a different origin. We wrote about why the embedding method matters for exactly this reason.
If you fix one thing this week, capture and forward fbc.
Accuracy beats quantity, and this trips people up
The instinct once you understand the scoring is to stuff every event with every field.
Do not do that.
Sending incorrect emails, malformed phone numbers, or mismatched data actively lowers the score. Meta is measuring whether it can match, and a wrong value is worse than an absent one because it produces a failed match rather than no attempt.
Five accurate parameters beat nine sloppy ones. If you are auto-filling city from an IP lookup that is wrong a third of the time, you are making the number worse while feeling productive.
The part that reframes the whole problem
Here is what took me a while to see clearly.
Everyone treats match quality as a tracking problem. Something you fix in Events Manager, or in a tag manager, or by installing a server container.
But look at the parameter list again. Email. Phone. First name. Last name. City. State. Zip.
Those are not tracking fields. Those are form fields.
There is exactly one moment in your funnel where a stranger voluntarily hands over the parameters that event match quality is scored on, and it is the moment they fill in your form.
You cannot infer someone's email. You cannot scrape their phone number. You get those because they typed them in, and they typed them in because they wanted a quote.
Which means the ceiling on your match quality is set by your form, and almost nobody designs a form with that in mind.
A Meta Instant Form gives you what Meta pre-fills, usually name, email, phone. Three parameters. Mid-5s, structurally, and no way around it.
A form on a page you control can ask for zip because you need the service area anyway. It can ask for the address because you need it for the site visit. It captures IP, user agent and the click ID automatically.
That is eight parameters, from a form the visitor was going to complete regardless.
The tracking fix and the qualification fix turn out to be the same fix.
What to do, in order
- Check the Lead event specifically in Events Manager, not the dataset average. The aggregate hides the event you care about.
- Capture
fbcon landing and forward it with the conversion. Biggest single jump available. - Add zip to your form if it is not there. One question, two jobs: service area qualification and a match parameter.
- Map every collected field into the event payload. Most integrations map two by default. Granular field mapping is where the score actually moves.
- Send server-side and deduplicate against the browser pixel so Meta counts each conversion once.
- Recheck weekly. Match quality degrades quietly when a form changes or an integration silently drops a field.
A few honest caveats
Meta's free one-click Conversions API, shipped April 2026, does not solve this. It is a genuinely good release. It sits in Events Manager, needs no developer, no cost, no maintenance, and it covers standard web events including leads. If you have no server-side tracking at all, turn it on today. But it can only transmit what your page already collects. It does not cover custom events or offline conversions either. Plumbing solved, parameter coverage untouched.
A high score does not mean good leads. Match quality measures whether Meta can identify the person, not whether the person wants your service. You can run an 8.5 and still sell nothing. It makes the algorithm's learning accurate, which is necessary and not sufficient.
Do not chase 10. Past about 8.5 you are usually padding events with low-confidence data, which risks lowering the score and tells you nothing new. 8.0 to 8.5 on your Lead event is a good place to stop.
I have not run a controlled experiment isolating match quality from every other variable. The scale in this article is drawn from published practitioner reporting and Meta's own documentation, and it is consistent across sources. But if someone tells you a specific EMQ point is worth a specific percentage of cost per lead, ask to see the test.
The rule of thumb
Open Events Manager. Find your Lead event. Read the number.
If it starts with a 5, you are sending two parameters and the fix is not a better integration. It is a better form.
Ask for one more field. Map it. Send it from the server.
Then check again next week.
Collectform is a multi-step lead form you embed on the page you already own. Every submission fires a deduplicated Lead event to Meta Pixel, Meta CAPI and TikTok CAPI, with every field you collect mapped for advanced matching rather than the usual two. Plans start at $20/month billed yearly, with a 7-day trial. Browse the templates.
