Why it happens
Few customer details travel with the purchase. Meta scores Event Match Quality on events sent from a server. It tries to match each event to a person with the customer data that comes with it: hashed e-mail, hashed phone number, name, address, and browser identifiers such as the click ID and the browser ID. Each extra detail gives Meta another way to find the person. A purchase that carries only an IP address and a user agent gives it very little to work with.
The sender may not have the order's customer data. A connection that runs from the shopper's browser sees only what the browser knows at that moment. On a checkout the shopper has just typed an e-mail address and phone number, but a sender that never reads them cannot pass them on. A sender that works from the order itself, after payment, has the e-mail, phone, name and address the buyer gave. Which of the two your store uses decides which details Meta receives.
Details get lost on the way. Meta expects e-mail, phone and the other fields in a set format and hashed before they are sent. A phone number without a country code, an e-mail address with stray spaces or a field that arrives empty cannot be matched. Browser identifiers are lost too when the shopper blocks cookies or the tracking script, so the server sends the purchase without them.
Consent also plays a part. A buyer who declined marketing cookies should not be sent to Meta, and the details of a buyer whose consent is unknown are handled by your consent mode. A lower score on stores with many such buyers is expected and is not a setting to fix.
Check it yourself
- 1Open Meta Events Manager, go to Data sources, and select your pixel.
- 2Open the Overview tab and click the Purchase event. Read the Event Match Quality score and the list of customer parameters received. Meta shows for each parameter how many of the events carried it.
- 3Look for e-mail and phone first. If they are missing or appear on only a small share of events, your purchases are sent without the order's customer data.
- 4Open the Diagnostics tab of the same pixel and read any message about missing or badly formatted parameters.
- 5Open the Test events tab and place a test order on your store. Open the event that arrives and check which parameters it shows and whether it came from the browser or the server.
- 6Find out which server sends your purchases. In Shopify admin, open Settings, then Apps and sales channels, and look at the sales channel apps and any other app that connects to Meta. In Events Manager, open the Settings tab of your pixel and check the Conversions API section for the senders it lists.
- 7In Shopify admin, open Orders and open a recent paid order. Check that the customer has an e-mail address and a phone number. If many orders have no phone number, the checkout does not ask for one, and no sender can pass it on.
What Meta needs with each server purchase is listed in setting up the Conversions API on Shopify.
FAQ
How long does a score take to change?
Meta recalculates the score from recent events, so a change in what you send shows up after new purchases have arrived. Look at it again after a few days of orders, not after one test order.
Does a low score mean my ads stop working?
No. It means Meta can match fewer purchases to ad viewers, which gives its optimisation less to learn from. The result depends on your account, your budget and your audience.
Can I raise the score by sending more fields?
You can send more of the customer data that the order really has. Do not invent or pad fields, and follow your consent setup for each buyer.
Is the score the same as the number of purchases Meta counts?
No. The score rates how well events are matched to people. The purchase count is a separate figure. A store can have a full count and a low score.