Social Surge

Home / Blog / Article

Tracking & data

Meta Ads Event Match Quality: What It Is and How to Improve It

Low event match quality on Meta Ads means your campaigns can't find the right buyers. What EMQ actually is, how it's scored, and the fixes that move the needle.

What is Meta Ads event match quality?

Event match quality (EMQ) is Meta's 0–10 score for how reliably its algorithm can connect your pixel events — pageviews, add-to-carts, purchases — back to the real people who took those actions. The higher the score, the better Meta can identify the buyer, retarget them on Instagram, exclude them from future ads, and build lookalike audiences from your actual customers. A purchase event with 0.0 EMQ is, for bidding purposes, close to worthless: Meta received the conversion signal but could not match it to anyone it knows.

Meta's advertising algorithm does not simply count conversions — it identifies who converted, then uses that pattern to find more people like them. Event match quality is the measure of how accurately that identification is working. When EMQ is high, Meta knows exactly who bought. When it is low, it is guessing. The difference shows up in ROAS, CPM, and lookalike audience quality, but the root cause is almost always invisible unless you know where to check.

How Meta Calculates Event Match Quality

Meta uses the customer identifiers attached to each pixel event to score its ability to match that event to a person in its system. The identifiers it looks for, roughly in order of weight, include:

  • Hashed email address — the highest-weight identifier, often worth 3–4 points of EMQ on its own
  • Hashed phone number — the second most valuable, particularly useful for users who log into Meta with a phone number
  • First and last name — moderate weight, helps disambiguate between users with the same email domain
  • City, postcode, and country — supplementary; most useful when email or phone is unavailable
  • Facebook click ID (fbc) and browser ID (fbp) cookies — useful for session-level matching but subject to browser blocking

More identifiers mean higher confidence. A purchase event that fires with a hashed email, phone number, first name, last name, and postal code can typically achieve 8–9/10. A purchase event that fires with only browser cookies — and no customer data — scores 3–4/10 at best, and often lower as iOS and Safari privacy restrictions further limit cookie-based matching.

The score is not a fixed calculation — it reflects matching performance across recent events. This means changes to your tracking setup appear in the score within hours of the next real purchases firing. If you implement a fix on a Sunday evening and orders come through overnight, you can check the updated score by Monday morning.

Why Low Purchase EMQ Destroys Campaign Performance

Purchase events with low EMQ do not simply provide weaker signal — they actively limit what Meta's algorithm can do across your account.

Lookalike audiences degrade. Meta builds lookalike audiences by analysing the characteristics of your matched converters. If it cannot identify who converted, it cannot build an accurate model. A lookalike audience built from purchase events scoring 0.0 EMQ is based on statistical noise rather than actual buyer characteristics.

Retargeting exclusions fail. If Meta cannot confirm that a specific user purchased, it continues showing purchase-intent ads to people who already bought. This wastes budget and creates a poor experience for existing customers.

Purchase optimisation breaks down. Campaigns optimised for purchases use conversion event patterns to decide which users are worth bidding up for. Poor-quality events mean that targeting becomes unreliable, and spend concentrates on users who superficially resemble buyers but are not.

Reporting becomes misleading. Low EMQ often appears alongside events that are counted without being attributed to real people. When you later fix tracking and EMQ rises, reported conversions may temporarily appear to drop — because Meta stops counting weak, unmatched events. This looks like performance fell when it actually became more accurate.

Five Root Causes of Low Purchase EMQ

1. No CAPI — browser pixel only

The browser pixel fires the purchase event, but no server-side Conversions API (CAPI) signal reinforces it. Browser tracking is blocked by iOS 17's link tracking protection, Safari's Intelligent Tracking Prevention, and browser-based ad blockers — tools now used by an estimated 40–50% of UK desktop users. Without CAPI, a meaningful share of purchases arrive at Meta without any event at all, and the events that do arrive carry less confidence because they come from a single, increasingly restricted source.

2. Purchase event missing customer data

The pixel fires on the order confirmation page, but no hashed email or phone is passed with the event. This is the single most common cause of 0.0/10 purchase EMQ. The event exists — Meta can see a purchase happened — but has no way to identify who made it. Every session-based identifier (the fbp cookie, the fbc click ID) has limited reach and is subject to the same browser restrictions that limit all cookie-based tracking. Without customer identifiers, there is no match.

3. Express checkout bypassing data collection

Shop Pay, Apple Pay, Google Pay and PayPal Express all skip the standard checkout steps where a customer enters their email address and shipping details. If your pixel only captures customer data at the address-input stage of the standard checkout, express payment orders — which often represent 40–60% of mobile purchases — arrive with zero customer data attached. The purchase event fires, but with no identifiers.

4. Duplicate events without deduplication

Both the browser pixel and another tool — most commonly the Shopify Facebook & Instagram app — fire the same purchase event, but with mismatched or missing event IDs. Meta sees two apparent purchase events for the same order, cannot reconcile them, and applies lower confidence to both. Without consistent event IDs shared between browser pixel and server-side events, deduplication fails and EMQ suffers.

5. The Shopify Facebook app conflicting with a custom pixel setup

The Shopify Facebook & Instagram app generates its own CAPI events and browser pixel events. If you also have a custom pixel implementation, both fire on the same purchases with different event ID formats, different customer data structures, and no coordination. The conflicting signals reduce Meta's confidence in your purchase events. We have seen this combination produce 0.0/10 purchase EMQ on accounts that appeared to have tracking in place — because two tools were fighting over the same events.

How to Fix Low Purchase EMQ

Fix 1 — Use a Shopify Custom Pixel for checkout events

For Shopify stores, the correct approach for checkout tracking is a Custom Pixel in Shopify's Customer Events section (Online Store → Customer Events → Add Custom Pixel). This gives your pixel access to Shopify's native checkout events — including checkout_completed — which fires for every payment method (standard card, Shop Pay, Apple Pay, Google Pay, PayPal) and includes the customer's email, phone number, name and shipping address.

The Custom Pixel works because Shopify's Customer Events API runs inside the checkout environment, where GTM tags cannot operate. GTM tags cannot fire on Shopify's checkout pages through theme.liquid. The Custom Pixel is the only reliable method to capture purchase events with customer data across all payment methods on Shopify's checkout.

If you are currently running the Shopify Facebook & Instagram app, remove it before implementing the Custom Pixel. Running both creates exactly the duplication and conflict described above.

Fix 2 — Pass hashed customer data with every purchase event

Inside the checkout_completed event listener, re-initialise the pixel with the customer's data before firing the purchase event. Meta's pixel hashes these values before transmission. Shopify's Customer Events API provides all of these fields for standard checkout orders and for express payment methods, since email and phone are captured during the payment provider flow.

This single change typically lifts purchase EMQ from 0.0 to 6–8/10 immediately on the next order. It is the highest-leverage fix available and costs nothing to implement beyond the code change.

Fix 3 — Add CAPI alongside the browser pixel

CAPI sends the purchase event directly to Meta's API server-side, bypassing browser restrictions entirely. The critical requirement is that browser and CAPI events share the same event_id. Meta uses matching event IDs to deduplicate: it receives both signals, recognises they represent the same purchase, and counts it once. Without matching event IDs, Meta counts the purchase twice, lowering signal confidence.

For Shopify stores, CAPI calls can be made directly within the Custom Pixel using fetch() to Meta's Graph API endpoint. Using the Shopify order ID as the event ID (for example, PUR_454305) ensures perfect deduplication between browser and server signals, since the order ID is unique per transaction.

Fix 4 — Verify with Meta's Test Events tab

After making changes, open Meta Events Manager → your pixel → Test Events tab. Browse the site in the same browser, add to cart, and proceed through checkout. Each event should appear in the feed in real time. For the purchase event specifically, click through to its detail view and confirm that user data keys — email address, phone number — are listed as received. This confirms customer identifiers are reaching Meta alongside the conversion signal.

EMQ updates within hours of the next real purchases firing after a fix. A score that was 0.0 should move to 6+ within the same day on an active store.

What to Expect After Fixing

Once customer data is passing correctly with purchase events, alongside CAPI with matching event IDs, purchase EMQ typically reaches 7–9/10. Scores of 10/10 are rare: some customers browse in private mode, have opted out of tracking, or have limited cookie consent, which naturally reduces match confidence on those events regardless of setup quality.

The practical effect on campaign performance takes longer to materialise than the EMQ change. Meta's algorithm needs time to re-learn from the improved signal, particularly if purchase EMQ was at 0.0 for an extended period — it will have built bidding patterns around poor data that need to be replaced. Expect 2–4 weeks before delivery patterns fully reflect the improved data quality. Lookalike audiences built after the fix will be meaningfully more accurate than those built before; audiences created while EMQ was 0.0 are worth refreshing once you have 4–6 weeks of clean data.

Improving purchase EMQ is one of the highest-leverage changes available in a Meta Ads account. It costs nothing in additional ad spend. In accounts we manage, we have moved purchase EMQ from 0.0 to 8.5/10 in a single implementation, with measurable improvements to delivery quality following as the algorithm retrains on accurate buyer data. If your purchase event is currently below 6/10, it is the first thing to fix before adjusting budgets, audiences or creative — everything else sits on top of a tracking foundation that needs to be accurate first.

Frequently Asked Questions

What is a good Meta Ads event match quality score?

A score of 7 or above is considered good. Scores of 9–10 are excellent and typically require full customer data — hashed email, phone, name and address — passed alongside a CAPI server-side signal. Scores below 6 indicate Meta is struggling to match your events to real users, which limits lookalike audience quality and purchase optimisation. A score of 0 on the purchase event means that conversion is, for bidding purposes, invisible to the algorithm.

Does event match quality affect which people see my Meta ads?

Yes, directly. Meta uses matched purchase events to identify your best customers, build lookalike audiences, optimise delivery toward buyers, and exclude people who have already converted. Low purchase EMQ degrades all of these functions simultaneously. An account with 0.0/10 purchase EMQ is asking Meta's algorithm to find more buyers without being able to show it who bought.

How do I check my event match quality score?

Open Meta Events Manager, select your pixel dataset, and click the Overview tab. Each event displays its EMQ score alongside event volume. The score updates as new events fire — changes to your tracking setup appear within hours of the next real purchases. The Test Events tab lets you browse the site in real time and verify that customer data (email address, phone number) is being received by Meta alongside each event.

Can I improve event match quality without setting up CAPI?

Partially. The largest single gain comes from passing hashed customer data (email and phone) with the browser pixel's purchase event. This alone can lift a 0.0 score to 6–7/10. Adding CAPI with matching event IDs then pushes the score higher and adds resilience against browser blocking from iOS, Safari, and ad blockers. For Shopify stores, the Custom Pixel approach provides customer data across all payment methods including Shop Pay, Apple Pay and Google Pay — which is where most stores lose match quality on their highest-value orders.

Free audit

Want this applied to your account?

We’ll review your tracking, structure and wasted spend and send the findings in writing.

See what we’d change in your account.