Signal Engineering META SIGNAL QUALITY

Fix Your Meta EMQ Score (It's Probably Costing You 40% Extra)

Event Match Quality below 6 means Meta is guessing on half your conversions. Those guesses seed your lookalike audiences. Here's how to get to 8+.

12 min read

Check your score right now

Open Meta Events Manager. Click Data Sources in the left sidebar. Select your pixel. Click the Overview tab, then scroll down to Event Match Quality. Each event type — Purchase, Lead, AddToCart, InitiateCheckout — has its own score from 1 to 10.

Write down the number next to your Purchase event and your Lead event. Those two scores control how well Meta optimizes every campaign in your account.

If either number is below 6, you are paying a premium on every conversion. This guide shows you exactly what is wrong and how to fix it.

What the numbers mean

EMQ is not vanity. Every point you are below 8 costs you real money. Meta uses matched event data to build lookalike audiences, optimize bidding, and attribute conversions. When your EMQ is 3, Meta matches about 30% of your events. The other 70% are statistically modeled — guesses. Those guesses contaminate every audience and every optimization decision.

The cost of each missing point

EMQ ScoreApprox. Match RateEstimated CPL ImpactWhat is happening
3~30%+55-65% overpayMeta is mostly guessing. Lookalikes are polluted with modeled data.
4~40%+40-55% overpaySlightly better, but still majority guesswork. Bidding is unstable.
5~50%+30-40% overpayCoin flip. Half your events match, half are modeled.
6~60%+20-30% overpayBaseline threshold. Meta starts trusting your data for optimization.
7~70%+10-20% overpayMeaningful improvement. Lookalike audiences get noticeably better.
8~80%+0-10% overpayStrong signal. Bidding stabilizes. Attribution becomes reliable.
9~88%Baseline or betterExcellent. You are outperforming most advertisers in your vertical.
10~95%+Best possibleNear-perfect matching. Reserved for brands with full identity resolution.

The gap between 3 and 8 is not marginal. It is the difference between paying $45 per lead and paying $22 per lead for the exact same audience, creative, and budget.

Why you are stuck at 3

You are sending 2 out of 8 parameters. That is why your score is 3. Meta only has email and maybe phone to work with. The other 6 parameters — the ones that bridge browser sessions, identify returning visitors, and confirm device identity — are missing entirely.

Most CAPI implementations stop at email and phone because those are the only parameters the ecommerce platform exposes natively. The other 6 require first-party cookie capture, server-side header forwarding, CRM integration, and IP geolocation. Shopify CAPI does not send them. WooCommerce plugins do not send them. Google Tag Manager server containers send some but not all.

The 8 parameters that move your score

1. Email (hashed) — the biggest lever

SHA-256 hashed email is the highest-value matching parameter. Meta uses it to match your conversion event to a Facebook user profile. Every CAPI setup sends this. If you are not sending email, your EMQ is probably 1. Impact: moves EMQ from 1 to about 3 by itself.

2. Phone (hashed) — second biggest

SHA-256 hashed phone number. Not every lead or customer provides a phone number, so match rates vary. Ecommerce checkout forms capture it at higher rates than lead gen forms. When present, it adds 0.5-1.0 points to EMQ because it provides a second identity anchor.

3. Facebook browser ID (fbp)

This is the _fbp cookie that Meta’s pixel sets in the browser. It contains a unique browser identifier. When you forward this cookie server-side with your CAPI event, Meta can link the server event to the specific browser session. This is the parameter almost nobody sends. It requires reading the cookie from the browser and including it in the server-side payload. Impact: 0.5-1.0 points.

4. Click ID (fbc / fbclid)

When someone clicks a Meta ad, the URL contains an fbclid parameter. That parameter becomes the _fbc cookie. Forwarding it server-side lets Meta attribute the conversion directly to the ad click without statistical modeling. If you capture and forward fbc, attribution becomes deterministic. Impact: 0.5-1.0 points.

5. External ID (your CRM ID)

Your internal customer or lead ID. Meta uses this to build a persistent identity graph that connects multiple browser sessions and devices to one person. Especially valuable for B2B where one person may interact across desktop and mobile over weeks. Impact: 0.3-0.5 points.

6. Client IP address

The IP address of the user’s browser session, forwarded server-side. Meta uses it for geographic matching and as a secondary identity signal. Combined with user agent, it significantly improves match confidence for anonymous visitors who have not logged in. Impact: 0.3-0.5 points.

7. User agent string

The full browser user agent string from the request headers. Meta uses it alongside IP for device fingerprinting. Together they help match events to users who clear cookies or browse in private mode. Impact: 0.2-0.3 points.

8. Country and city

Geo-derived location data. Adds a geographic constraint to the matching algorithm. A hashed email from an IP in Chicago with a matching Facebook profile in Chicago is a stronger match than email alone. Impact: 0.1-0.2 points.

What CustomerLabs adds to every event

CustomerLabs captures all 8 parameters from the browser session using a first-party JavaScript tag, then forwards them server-side through CAPI. Every Purchase, Lead, AddToCart, and InitiateCheckout event arrives at Meta with the full parameter set. No manual configuration per event. No missing fields.

Deduplication: the hidden EMQ killer

Here is something most brands miss. If you have the Meta pixel running in the browser AND server-side CAPI sending the same events, Meta receives every conversion twice. Without matching event IDs, Meta cannot tell that the two events are the same conversion. It counts them as separate events.

Duplicate events do not just inflate your conversion count. They actively lower your EMQ because Meta detects the redundancy and penalizes your data quality score. The system interprets duplicates as noisy, unreliable signal.

CustomerLabs generates a unique event_id for each conversion and includes it in both the browser pixel event and the server-side CAPI event. Meta sees the matching IDs and merges them into one clean event. No duplicates. No penalty. EMQ goes up because the data is clean.

Before and after

ParameterBefore CustomerLabsAfter CustomerLabs
em (email)Sent (hashed)Sent (hashed)
ph (phone)Sometimes sentAlways sent when available
fbp (browser ID)Not sentCaptured via 1P cookie, forwarded server-side
fbc (click ID)Not sentCaptured from URL, stored, forwarded with every event
external_idNot sentCRM ID mapped and sent with every event
client_ip_addressNot sentForwarded from server request headers
client_user_agentNot sentForwarded from server request headers
country / cityNot sentGeo-derived from IP, included automatically
Event deduplicationNo event_id matchingMatching event_id on pixel + CAPI events

Martin, Co-founder, Dundas Life: “CustomerLabs has been an absolute game-changer for Dundas Life. With their 1PD Ops, we’re not just tracking events for our ads accurately, we’re improving our ads performance!”

Campaign changes needed: none

This is the part that surprises people. You do not need to restructure your campaigns. You do not need to change your targeting. You do not need new creative. You do not even need to adjust your budget.

EMQ improvement happens at the event level — before the data reaches your campaigns. Your campaign structure, audiences, bid strategy, and creative stay exactly the same. Meta just receives better data about the same events. It matches more conversions to real people. Lookalike audiences get cleaner seed data. Bidding models retrain on higher-confidence signals.

The result is lower cost per conversion with zero campaign work.

Monitoring your score

Check Events Manager weekly for the first 4 weeks. EMQ starts climbing within 7 days of enrichment going live. Match rate follows. Cost per result improvements appear in week 3-4 as Meta retrains its optimization models on the cleaner signal.

Shopify Store Owner, Verified G2 Review: “Shopify CAPI was giving us an EMQ of 3. CustomerLabs got it to 8.7 in the first week. The difference in ad performance was immediate.”

From 3 to 8 in 3 weeks

Week 1: CAPI implementation (if needed) plus full 8-parameter enrichment goes live. Every conversion event starts arriving at Meta with the complete parameter set. EMQ starts climbing immediately — most brands see 5-6 by day 7.

Week 2: Event ID deduplication activates. Browser pixel events and CAPI events merge into one clean signal per conversion. No more double-counting. EMQ stabilizes at 7-8 as Meta recognizes the improved data quality.

Week 3: EMQ reaches 8-8.5. Meta has accumulated 2-3 weeks of clean, fully-matched event data. Optimization models retrain. CPL improvements begin showing in campaign reports. No campaign changes required — the signal quality does the work.

“Helped take our Event Match Quality from 4.9 to over 9. The transparency of the platform lets you see channel and event-level success rates.”
Performance Marketer · Verified G2 Review G2

Frequently asked questions

How do I check my current EMQ score?

Go to Meta Events Manager → select your pixel → click the Conversions API tab → look at Event Match Quality for each event. The score is 1–10 for each event type (Purchase, Lead, AddToCart, etc.). If any conversion event is below 6, you're leaving money on the table.

Ready to improve your signals?

Book a 30-minute walkthrough. We'll audit your current setup, show you what's missing, and map out a 3-week implementation plan.