How to Improve Event Match Quality on Shopify
What is Event Match Quality?
Event Match Quality is Meta’s 0–10 score for how well the customer details sent with a website event through the Conversions API match it to a Meta account, based on the last 48 hours. On Shopify, raise it by sending purchases with the shopper’s hashed email and phone, and by passing on Meta’s _fbp and _fbc cookies.
Meta scores each event separately, from the quality of the customer information you send with it and the share of those events it matches to Meta accounts. The score exists only for website events that reach Meta through the Conversions API, so a store whose events come from the pixel alone has nothing to score (Meta, checked 24 September 2026). To find it, open Events Manager, select your dataset, find the event and click View details (Meta).
What’s a good score?
Meta doesn’t say. Its help page explains the 0–10 scale, the 48-hour window and the details that count, and it points you to recommended actions in Events Manager, but it sets no target and publishes no cut-offs for any rating shown beside the score. Any target you read elsewhere is someone else’s rule of thumb.
Compare instead:
- Against the same event over time. A drop after you change a theme, an app or a consent banner is a signal. A steady score isn’t a problem.
- Across events. A purchase can carry an email address and a phone number; a page view usually can’t, so expect it to score lower.
- Against your customers. Meta counts matches to Meta accounts, so a store whose buyers are rarely on Facebook or Instagram will match fewer events, whatever it sends.
Which customer details matter most?
Email and click ID. Meta’s help ranks each customer detail it accepts, and those two are the only ones it marks high priority.
| Customer detail | Meta’s priority | Where it comes from on a Shopify store | Hashed before sending? |
|---|---|---|---|
| High | The checkout’s contact field, or a signed-in customer’s account | Yes | |
Click ID (fbc) |
High | The fbclid Meta adds to ad links, kept in the _fbc cookie |
No |
| Phone number | Medium | Checkout, when you ask for it | Yes |
| External ID | Medium | Your own customer ID, such as Shopify’s | Recommended |
Browser ID (fbp) |
Medium | The _fbp cookie Meta’s pixel sets |
No |
| Country | Medium | The order’s address | Yes |
| Birthdate | Medium | Not a field in Shopify’s checkout form | Yes |
| Facebook Login ID | Medium | Only sites that use Facebook Login | No |
| Lead ID | Low | Meta’s lead ads, not store orders | No |
| First and last name | Low | The order’s address | Yes |
| City, postal code | Low | The order’s address | Yes |
Priorities come from Meta’s Event Match Quality page and hashing rules from Meta’s customer information parameters, both checked 24 September 2026.
Two more details aren’t on Meta’s priority list but belong on every server event: the shopper’s IP address, sent unhashed, with IPv6 preferred, and the browser’s user agent, which Meta requires for website events. Hashing means SHA-256 after normalising: trim and lower-case an email, and reduce a phone number to digits, country code included.
Why is my score low on Shopify?
Usually because the event carries cookies and connection details but no contact details, which is normal before checkout, or because something between the shopper and Meta dropped an identifier. Check these in order.
- No server events. On Standard data sharing, Shopify’s Facebook & Instagram app uses the Meta pixel alone, so Meta has nothing to score; Enhanced and Maximum add the Conversions API for the purchase (Shopify). Whether you need more than that is covered in server-side tracking on Shopify.
- Events before checkout. Most shoppers haven’t typed an email or phone number yet, so a page view or add-to-cart can carry only cookies, the IP address and the user agent, unless the shopper is signed in.
- No click ID. The
_fbccookie exists only for shoppers who arrived from a Facebook or Instagram ad, whose link carriesfbclid. Safari’s Private Browsing strips some tracking parameters before the page loads (WebKit), and Safari limits cookies that scripts create on a page reached through such a link to 24 hours (WebKit). - Declined consent. Where shoppers must opt in, Shopify runs pixels only for visitors who’ve given the permissions those pixels need (Shopify), so a shopper who declines never gets an
_fbpcookie. - IPv4 where Meta prefers IPv6. In a Shopify Community thread opened in October 2023, merchants using the Facebook & Instagram app saw Events Manager ask for IPv6 addresses on purchases, and Shopify support told one of them that Shopify didn’t support IPv6 yet. The latest reply, from January 2025, traced one store’s warning to a domain managed outside Shopify with no AAAA record. Shopify’s IPv6 page now says domains bought through or moved to Shopify get IPv6 automatically, and third-party domains need that record.
- Browser and server copies that disagree. In a 2021 thread, stores on the app’s Maximum level saw Events Manager warn that the server’s external ID didn’t match the pixel’s on purchases. An email from Shopify that one merchant posted said Meta had told Shopify the warning wouldn’t affect pixel performance. A mismatch like this sits with whoever sends the events, so report it to that app’s developer rather than changing settings at random.
How do I raise it without code?
Send more of Meta’s high- and medium-priority details on the events that matter most, starting with the purchase. Shopify’s own settings cover most of it:
- Turn on server sending. In Sales channels → Facebook & Instagram → Settings → Data sharing settings, choose Enhanced or Maximum. Shopify then sends the purchase through the Conversions API and shares the customer’s name, location, email address and phone number. More in set up the Conversions API on Shopify.
- Collect a contact detail from every buyer. In Settings → Checkout, the Customer contact method is Email on new stores; Phone number or email lets shoppers choose. Shopify can’t require both as the contact method, but setting Shipping address phone number to Required collects a phone number too (Shopify). Weigh that against a longer form.
- Make sure consent reaches Shopify. Shopify’s own cookie banner does this. If you use another banner, Shopify says it must sync consent to Shopify through the Customer Privacy API, or pixels might not fire even after a shopper consents (Shopify). Until it does, shoppers who accept may never get Meta’s pixel or its cookies.
- Switch on IPv6 if your domain’s DNS is managed outside Shopify, by creating the AAAA record described on Shopify’s IPv6 page.
- Work through Meta’s recommendations. Events Manager lists recommended actions for improving each event’s matching.
If you’d rather use a tracking app, cPixel, which we build, sends the purchase from its servers, rebuilt from Shopify’s order, with the shopper’s hashed email, phone number and Shopify customer ID, the _fbp and _fbc values, the IP address and user agent and, by default, a location guessed from the IP address. Its other Meta events go from both the browser and its server under one event ID.
Its Event quality page shows Meta’s score, read once a day and quoted unedited, beside the identifiers cPixel sent; some Meta tokens can’t read the score, which doesn’t affect sending. More: what cPixel sends, and how consent changes it. Its own settings warn that a city or postcode guessed from an IP address is often wrong on mobile networks and VPNs, and that a wrong value can lower Meta’s match quality; Settings → Location from the shopper’s IP address → Send country only narrows it. Whichever tool you choose, let only one send to each Meta pixel; connect Meta to cPixel shows the setup, including the answer that makes cPixel step back when the Facebook & Instagram app already sends to that pixel. More about cPixel, which sends Shopify purchases to seven ad platforms.
Does a higher score mean more sales?
Not directly. A better score means more of your events match Meta accounts, and Meta says matched events help it credit conversions to your ads and show your ads to people more likely to convert, which can improve performance and lower your cost per action. It also says better match quality may increase your additional conversions reported.
None of that creates demand. The score measures how well Meta can recognise the people behind your events; your ads, offer and store still decide whether they buy. Meta puts no figure on what a point is worth, so be wary of anyone who does. And don’t chase the score with data you have no right to send: the same Meta page reminds advertisers that its Business Tools Terms require the lawful right to share any data they send.
What about TikTok and ChatGPT Ads?
TikTok and OpenAI both score the events you send them, and so do Pinterest and Snapchat, each in its own way. None of these scores converts to Meta’s 0–10 scale, so compare each only with itself.
- TikTok. Events Manager shows an Event Match Quality score, which TikTok says is a weighted average of your match-key coverage (TikTok). Its match keys are the
ttclidclick ID, thettpfirst-party cookie, hashed email, phone and external ID, and the IP address and user agent (TikTok). On Shopify, TikTok’s app adds Advanced Matching at its Enhanced and Maximum levels (TikTok). - ChatGPT Ads. Ads Manager scores event quality for each pixel or data source, refreshed daily from seven complete days, with warnings such as missing email or customer IDs, missing click information and server events that arrive more than an hour late. OpenAI says the score doesn’t predict campaign performance (OpenAI, checked 24 September 2026). Its measurement advice: keep the
opprefclick reference through redirects, include it in server events, send hashed contact details where permitted, and give pixel and Conversions API copies the same event ID (OpenAI). - Pinterest. Its API returns an Event Quality Score, rating your data overall and each matching parameter as good, fair or needs improvement (Pinterest).
- Snapchat. Events Manager shows an Event Quality Score with recommendations on its main screen (Snapchat).
Frequently asked questions
What are fbp and fbc?
They’re the two cookie values Meta’s pixel keeps on your domain. _fbp is the browser ID: the pixel saves a unique identifier in it the first time it runs for a visitor. _fbc is the click ID: it holds the fbclid from the Facebook or Instagram ad the shopper clicked. Meta recommends sending fbc with every Conversions API event and fbp whenever it’s available, and says that where no pixel runs, a server can build fbc from the fbclid in the page address (Meta for Developers).
Does consent lower the score?
It can, and a lower score there may simply show that your setup honours shoppers’ choices. Where consent is required, typically in the UK and EEA, Shopify runs pixels only for visitors who’ve given the permissions they need, so a shopper who declines never gets Meta’s _fbp or _fbc cookie, and any event still sent for them carries less. Treat that as the cost of consent, not something to engineer around.
Why aren’t names and addresses sent?
Some tools send them and some don’t. Shopify’s Facebook & Instagram app shares the customer’s name and location at Enhanced and Maximum. Apps need Shopify’s approval to read each of those fields, which Shopify classes as protected customer data along with email and phone (shopify.dev). cPixel requests email and phone but not names or addresses, so it never sends them; the location it can send is guessed from the IP address, not taken from the order. Meta ranks names, city and postal code as low priority, below email, click ID and phone number.