Home / Blog / Meta CAPI Event Match Quality Low on Shopify
Meta CAPI · Event Match Quality · Shopify
Meta CAPI Event Match Quality Low on Shopify: What to Check
If Meta Events Manager shows low Event Match Quality after setting up Meta CAPI on Shopify, do not assume CAPI is “broken.” Low EMQ usually means Meta is receiving the event, but the event does not include enough usable customer information to confidently match it to a Meta account.
For Shopify brands using Elevar, the fix is not simply “turn on server-side tracking.” You need to inspect which customer information parameters arrive with each event, whether browser identifiers are preserved, whether consent allows the data to be sent, and whether duplicate tracking tools are corrupting the signal.
fbp, fbc, or external_id.Key takeaways
- EMQ is not just a “CAPI connected” status.
- Purchase EMQ is usually easier to improve than ViewContent or AddToCart because checkout provides more customer data.
- The strongest fixes involve email, phone,
fbp,fbc, IP address, user agent, external ID, and clean deduplication. - With Elevar, validate payloads in Meta Events Manager and Test Events before trusting the score.
What Meta Event Match Quality means
Meta says Event Match Quality indicates how effective the customer information parameters sent with a server event may be at matching events to Meta accounts. Better match quality means events are more likely to match to Meta accounts, which can help attribution and ad delivery. Meta: About Event Match Quality
Meta’s Dataset Quality API documentation says EMQ assesses whether you are sending the right customer information through CAPI and whether those parameters are set up correctly. Meta Dataset Quality API
First classify the EMQ problem
| Situation | What it usually means | First thing to check |
|---|---|---|
| No server events | CAPI is not sending | Elevar Meta destination and Test Events |
| Server events arrive but EMQ is low | Customer info weak or missing | Event details → customer parameters |
| Purchase okay, AddToCart low | Upper-funnel has less customer data | Compare event-specific identifiers |
| EMQ dropped after consent change | Consent blocks identifiers/events | CMP and Elevar consent mapping |
| EMQ low after app change | Duplicate/parallel setup | Shopify native Meta, Elevar, GTM, apps |
| EMQ good but conversions duplicated | Deduplication issue | event_id and event name |
Customer information parameters to inspect
Meta’s customer information parameters are user identifiers shared alongside event information. Meta says customer information helps with matching and that its systems are designed not to accept unhashed contact information unless noted. Meta Customer Information Parameters
| Parameter | Why it matters | Shopify/Elevar check |
|---|---|---|
| em | Hashed email is a strong identifier | Is customer email available and sent hashed? |
| ph | Hashed phone helps mobile matching | Is phone collected and normalized? |
| fn, ln | Name fields improve matching | Are billing/shipping names included? |
| client_ip_address | Web request context | Is real shopper IP passed? |
| client_user_agent | Website CAPI context | Is browser user agent passed? |
| fbp | Meta browser ID cookie | Is latest _fbp captured and forwarded? |
| fbc | Meta click ID/click cookie | Is _fbc captured for Meta ad clicks? |
| external_id | Stable advertiser-side user ID | Is Shopify customer ID consistent? |
| event_source_url | Website event context | Is source URL sent? |
Meta recommends sending fbc and fbp browser cookie values when available and refreshing them because they can change. Meta fbp and fbc parameters
Why Purchase EMQ can be higher than ViewContent or AddToCart
Purchase events happen after the customer has entered checkout details. Email, phone, name, address, and customer/order IDs may be available. ViewContent and AddToCart often happen before the customer identifies themselves, so those events may only have browser cookies, IP, user agent, and page context.
Elevar-specific checks
- Is Elevar the intended owner of Meta CAPI?
- Is Shopify native Meta also sending server events?
- Is Meta CAPI enabled in the Elevar Meta destination?
- Do Purchase events include email, phone, name, IP, user agent, fbp, fbc, and external/customer ID when available?
- Are fbp and fbc captured before checkout and carried into the server event?
- Is consent mode/CMP preventing customer parameters?
- Are accelerated checkout or subscription/API-created orders losing identifiers?
- Are events tested with Meta Test Events?
Elevar’s Meta testing guide explains how to use Meta Events Manager Test Events and a server test code to confirm server events are set up correctly. Elevar Meta CAPI testing
Diagnostic table
| Symptom | Likely cause | Where to check | Fix direction |
|---|---|---|---|
| Purchase EMQ below expectations | Email/phone/name missing or bad | Events Manager details | Fix customer data mapping and hashing |
| No fbp/fbc | Cookies not captured/forwarded | Browser cookies and Elevar/session enrichment | Preserve and refresh fbp/fbc |
| No IP or user agent | Server lacks browser context | CAPI payload | Pass real request context |
| AddToCart lower than Purchase | Customer not identified yet | Event-by-event EMQ | Set realistic expectations |
| EMQ dropped after consent update | Consent blocks identifiers | CMP and Shopify Customer Privacy | Fix consent mapping |
| EMQ low after app change | Duplicate Meta integration | Apps, GTM, Elevar, native Meta | Choose one owner |
| EMQ okay but reporting inflated | Deduplication failure | Event ID and event name | Fix Pixel + CAPI dedupe |
What not to do
- Do not blindly add more Meta apps.
- Do not run Shopify native Meta, Elevar, GTM Meta CAPI, and another app without deciding event ownership.
- Do not judge the whole setup by PageView EMQ.
- Do not treat EMQ as the only tracking quality metric. Check event coverage, deduplication, purchase count, value, and Shopify order reconciliation.
What most people miss
If Purchase is missing email and phone, that is usually fixable. If ViewContent does not have email yet, that may be normal. If fbc is missing for Meta ad click traffic, that is a tracking/session preservation problem.
Validation checklist
- Open Meta Events Manager.
- Check server events arrive for PageView, ViewContent, AddToCart, InitiateCheckout, and Purchase.
- Inspect EMQ separately for each event.
- Open event details and review customer parameter coverage.
- Run a test order through Elevar using Meta Test Events.
- Confirm Purchase includes available email, phone, name, IP, user agent, fbp, fbc, and external/customer ID.
- Confirm Pixel and CAPI deduplicate correctly.
- Confirm no duplicate Meta source sends the same Purchase independently.
- Test accepted and denied consent paths.
- Recheck after enough fresh real events process.
Meta CAPI connected but EMQ still low?
TrackingAudit can inspect Elevar, Shopify, GTM, Meta Events Manager, consent mode, duplicate tracking sources, and Shopify order/customer data to show which identifiers are missing and why.
Get your free audit →Frequently asked questions
What is Meta Event Match Quality?
It indicates how effective the customer information parameters sent with a server event may be at matching that event to Meta accounts.
Why is Meta CAPI Event Match Quality low on Shopify?
Usually because server events are missing usable customer information such as hashed email, phone, name, IP, user agent, fbp, fbc, or external ID.
Does enabling CAPI automatically improve EMQ?
No. CAPI delivers events server-side, but EMQ depends on the quality and availability of customer information sent with those events.
Why is Purchase EMQ higher than AddToCart EMQ?
Purchase happens after checkout details are collected. AddToCart often happens before the shopper identifies themselves.
Can consent settings lower EMQ?
Yes. If consent mode or a CMP blocks identifiers or server events, EMQ can drop.
What should I check first in Elevar?
Check the Meta destination, server event arrival, customer parameter coverage, fbp/fbc, consent mapping, and whether Shopify native Meta or GTM is also sending events.
Sources
- Meta: About Event Match Quality
- Meta Developers: Conversions API parameters
- Meta Developers: Customer Information Parameters
- Meta Developers: Best Practices for Conversions API
- Meta Developers: Dataset Quality API / EMQ
- Meta Developers: fbp and fbc parameters
- Meta Developers: Server Event Parameters
- Elevar: Set up Meta as server-side destination
- Elevar: Events and properties sent to Meta
- Elevar: Test Meta Conversion API integration
- Elevar: Event coverage in Meta and how Elevar improves it
- Littledata: Shopify to Meta CAPI and EMQ
- Analyzify: Improving Meta Event Match Quality
- Analyzify: Meta server-side tracking guide
- Shopify Community: Meta CAPI native app only browser events
- Reddit: Event Match Quality Improvement