Troubleshooting Posted by the DataCops team

Facebook Event Match Quality low for CRM events: what decides it and how to raise it

Event Match Quality is that 0 to 10 score in Events Manager next to your server events. Most people see a low number, shrug, and move on.

Don't. It's the most honest report you'll ever get about your CRM, and it comes free.

What it measures is how well the details you sent let Meta match an event to a real person: hashed email and phone, the click ID, IP address, user agent. More good details, better score. The word to focus on is "good".

Here's what actually moves it, roughly in order of how much it hurts when it's wrong.

Send both email and phone, not just one. Two chances to match instead of one. A lead who gave a work email on your form and uses a personal one on Facebook can still be found by their phone.

Clean before you hash. Lowercase and trim the email. Format the phone as digits with the country code. A badly formatted value hashes into something that matches nobody, and the hash looks perfectly fine, so nothing tells you it's broken. Here's the classic: "+1 (555) 010-0199" hashed as typed is a different value from "15550100199". Same phone, two hashes, only one that matches.

Include the click ID (fbclid) when you have it. It's the strongest single signal for a lead who clicked an ad, because it names the click.

Include IP address and user agent for website events.

And then the uncomfortable one: look at the CRM itself. Half-empty contacts, throwaway emails and numbers with no country code can't match no matter how perfectly you send them. Match quality is partly a data hygiene score, and it will happily tell you your CRM is a mess. If half your contacts have neither an email nor a phone, no tool can fix that.

The easiest way to see what Meta actually received is the Test Events tab in Events Manager. It shows the parameters that arrived, so you can see whether the phone number came through in the right shape.

There's a bigger idea worth taking away. Match quality is not a sending problem, it's a capture problem. The moment to get good data is when the person is in front of you, on the form. Fixing it downstream, in an export, is like trying to un-scramble an egg.

A second-order point people miss: a low match score doesn't just mean fewer matched sales. It means the sales that do match are a biased sample: the people who happen to have clean, complete contact details. Meta ends up learning the profile of "customers with tidy records", which isn't the same as "customers".

So raising match quality improves both the size of the signal and its honesty. If you can only do one thing this month, make the form require a phone number that includes the country code, and validate the email. It's the cheapest improvement in the whole pipeline.

A 15-minute test you can run today. Submit a test lead through your own form with a made-up but well-formed email and phone, and move it through one stage. Then open Test Events and look at the parameters that arrived. If the phone isn't there, or the email arrived in a strange shape, you've found where your score is being lost. It's the fastest way to turn "our match quality is low" into a specific thing to fix.

For reference, DataCops sends the click ID plus hashed email and phone with each event, and the delivery log shows whether each one was sent, held, skipped or failed. A low score is usually a CRM data problem, not a sending problem.

More on this: Meta offline conversions, and the complete guide to offline conversion tracking.

1 comment

Comments (1)

DataCops team author · 30 Sep 2026

If your score is stuck, try this order: fix the phone format, add the second identifier, then look at how many contacts have neither an email nor a phone at all. That last number is often bigger than people expect.

1
Replies from DataCops account holders are coming soon. Until then, questions about your own setup can go to the team.

More threads

See what your own setup is missing

Send CRM sales back to the ad click that started them, logged per send.

Setup in 5 minutes. No credit card.

Live traffic quality

Updated just now

Visits · last 24h

487
Real users
35873.5%
Bots · auto-filtered
12926.5%

Without filtering, 26.5% of your reported traffic is bot noise inflating dashboards and draining ad spend.

Don't trust your analytics!

Make confident, data-driven decisions withactionable ad spend insights.

Setup in 2 minutes
No credit card