Low Event Match Quality on Meta? 7 Ways to Raise It
How do I improve Event Match Quality on Meta?
Send more customer information with each server event, starting with the two parameters Meta ranks high priority: email and click ID (fbc). Add phone, external ID, browser ID (fbp), IP address and user agent, normalize and SHA-256 hash the contact fields, and keep events flowing, because Meta scores the last 48 hours on a 0 to 10 scale.
A low match score is rarely a broken integration. It usually means your server events arrive with too few identifiers, or with identifiers Meta cannot read because they were formatted or hashed the wrong way. The fixes are mostly in your data layer, not in Ads Manager. Meta ranks the identifiers by priority, so the order you add them in matters more than the number you add.
What does the Event Match Quality score measure?
Event Match Quality (EMQ) “indicates how effective the customer information parameters sent with your server event may be at matching events to Meta accounts” (About event match quality). Four facts from that page shape everything below:
- It scores server events only. Meta shows EMQ only for Conversions API website events whose
action_sourceiswebsite. A pixel-only setup has no EMQ to raise. - It runs from 0 to 10. Meta calculates it from the quality of the customer information you send and the percentage of event instances matched to Meta accounts.
- It is per event. Purchase, AddToCart and PageView each get their own score, including custom web events.
- It uses the last 48 hours. Send events regularly, or the score goes stale.
Meta publishes no target score. Treat any “aim for 8” number you read elsewhere as someone’s rule of thumb, not Meta’s. Set your own baseline: note the score for each optimization event today, change one thing, and read it again 48 hours later.
Where do I see my Event Match Quality?
- Open Events Manager and select your dataset.
- Find the event you optimize for, usually Purchase, and click View details.
- Click the Event matching tab. It shows the score, the percentage of events that carry each customer information parameter, and Meta’s recommended actions (View server event details).
- Note the parameters with low coverage. These are where the next points come from.
Meta adds a warning on the same tab: sending a parameter does not guarantee a match. One parameter alone may not be enough, and the buyer may have no Meta account. That is why you can see high coverage and a low score at the same time.
Which customer parameters raise the score most?
Meta ranks each parameter’s priority on its EMQ page. The format rules come from the developer reference for customer information parameters.
| Parameter | Key | Meta priority | Hash it? | Format before sending |
|---|---|---|---|---|
em |
High | Yes, SHA-256 | Trim spaces, lowercase | |
| Click ID | fbc |
High | No | Send the _fbc cookie value unchanged |
| Phone | ph |
Medium | Yes | Digits only, with country code, no symbols or leading zeros |
| External ID | external_id |
Medium | Recommended | Your own stable customer ID |
| Browser ID | fbp |
Medium | No | Send the _fbp cookie value unchanged |
| Country | country |
Medium | Yes | Lowercase ISO 3166-1 alpha-2, such as us |
| First and last name, city, ZIP | fn, ln, ct, zp |
Low | Yes | Lowercase; ZIP with no spaces or dash, first 5 digits in the US |
Facebook Login ID and birthdate are also medium priority, and lead ID is low; most stores will not have the first two at checkout.
What are the 7 ways to raise it?
Work down the list in order. It starts with the parameters Meta ranks highest.
- Send hashed email on every event where the buyer is known. Email is one of Meta’s two high-priority parameters. Purchase and checkout events usually have it; add it to AddToCart and ViewContent for logged-in visitors too.
- Capture the click ID even without a cookie. Meta says that if the
_fbccookie is missing because no pixel runs on the page, you can still buildfbcfrom thefbclidquery parameter in the landing URL, in the formatfb.<subdomainIndex>.<creationTime in milliseconds>.<fbclid>(fbp and fbc parameters). - Leave the click ID’s case alone. Meta warns that the click ID value is case-sensitive and must not be lowercased or uppercased. A data layer that lowercases every string breaks it silently.
- Send the browser ID from the
_fbpcookie. Meta recommends always sending both_fbcand_fbpvalues when they are available. Read them server side from the request cookies and attach them to the matching event. - Add phone and external ID. Normalize phone to digits with the country code before hashing. For
external_id, use a stable ID from your own system that stays the same for that customer on every event. - Normalize, then hash with SHA-256. Meta requires the SHA-256 method for fields that must be hashed (About prohibited information). Hash after lowercasing and trimming: an email hashed with a capital letter or a trailing space produces a different hash and will not match. Never hash
fbc,fbp, IP address or user agent. - Send the buyer’s IP and user agent, not your server’s. The developer docs say
client_ip_addressmust be the IP of the browser that triggered the event, andclient_user_agentits user agent. A server that sends its own IP sends the same useless value on every event.
Two things sit beside the list. Meta’s Conversions API best practices also ask you to send events in real time or as close to it as possible, and to aim for a 75% event coverage ratio of Conversions API to pixel events.
How do I know a change worked?
Read the Event matching tab 48 hours after the change, because that is the window Meta scores. Then look at the “additional conversions reported” trendline Meta shows in the server event details: Meta says better event match quality may increase the additional conversions it reports, and the trendline is how it shows that effect over time.
For the full Conversions API build, including the Shopify and WooCommerce routes, see how do I set up Meta Conversions API correctly? If you have not chosen your server route yet, should I use CAPI Gateway or a custom server-side setup? covers that choice.
What must I check before sending more data?
Meta’s Business Tools Terms require you to have the lawful right to collect, use and share the data, and to hash contact information as its developer documentation sets out (About event match quality). Send customer information only where your consent setup allows it. Never send sensitive data to improve a score: Meta’s list of prohibited information includes health conditions, financial account details and social security numbers, and sharing them goes against its terms whatever they would do to matching.
Can software help?
Bach.ai’s tracking health check reads the Event Match Quality score Meta reports for each server event, weights Purchase most heavily, and lists recommended fixes. It applies nothing on Meta without your approval. Tracking checks belong before any budget change: should I check tracking before optimising Meta ads? The rest of the tracking guides are on the Meta Pixel and CAPI hub.
FAQ
Does the Meta Pixel have an Event Match Quality score?
No. Meta says Event Match Quality is available for website events sent through the Conversions API with the action source set to website. The pixel can still send customer information through advanced matching, and Meta’s parameter priority list applies to both, but the 0 to 10 score is shown for server events.
Why is my match quality low when I send email on every event?
Sending a parameter does not guarantee a match. The buyer may have no Meta account, or the email may be hashed before it was trimmed and lowercased, which produces a hash Meta cannot match. Check normalization first, then add the click ID, Meta’s other high-priority parameter.
Should I hash the fbc and fbp values?
No. Meta’s developer documentation says do not hash fbc, fbp, client_ip_address or client_user_agent. Hash the contact fields, such as email, phone, names, city, ZIP and country, with SHA-256 after normalizing them. Hashing a click ID turns it into a string Meta cannot use.
How long does it take for the score to change?
Meta calculates Event Match Quality from the last 48 hours of events. Give a change two full days of normal traffic before you judge it, and change one parameter at a time so you know which one moved the score.
Is there a good Event Match Quality score to aim for?
Meta does not publish one. It describes the score only as 0 to 10, with higher meaning events are more likely to match. Record your current score per event as a baseline and judge each change against it, alongside the additional conversions trendline.
Sources
Sources: Meta Business Help Center, About event match quality, View server event details in Meta Events Manager, Best practices for Conversions API and About prohibited information; Meta for Developers, Customer information parameters and fbp and fbc parameters (checked 2 Oct 2026).