Skip to content
Bach.ai

Customer List Match Rate Low on Meta? 6 Fixes

Published
Drafted with AI; facts checked against the linked sources on . How we write

Why is my customer list match rate so low on Meta?

Usually because of the file, not Meta. Phone numbers without a country code, no country column, one full-name column and a single identifier per customer all cost matches. Meta reports the result as a match score out of 10, matched rows divided by uploaded rows, and asks for lists of at least 1,000 customers.

A weak match score is usually fixable on your side of the upload. Meta can only match a row it can read, so the file decides most of the result: how phone numbers are written, whether a country is given, how names are split and how many identifiers each customer carries. Fix those, re-upload with Replace customers, and compare the new score with the old one. Meta publishes no typical match rate, so that comparison is your baseline.

How do I read my match score?

Meta shows the result of each upload as a match score in Audiences. Open Audiences in Ads Manager, select Columns in the top right and add Match score. Meta describes it as a score out of ten for how well the identifiers in your last successful upload matched profiles on its platforms, shown in steps of 0.5 and calculated by dividing matched rows by uploaded rows (Create a customer list custom audience).

Three details matter when you read it:

  • It covers the last upload only. If you replaced the list, the score describes the new file.
  • It expires. Meta says the score has limited retention, so a blank score can mean you need to update the list, not that nothing matched.
  • Outdated is a separate warning. It appears when the list has not been updated for more than 30 days, which Meta says may affect delivery.

Meta can only match rows to people who have profiles on its technologies (About customer list custom audiences). A customer who has no account cannot match, however clean the row is, so the score will never reach 10 for most stores.

What are the 6 fixes for a low match rate?

Work through them in order. The first three are the formatting rules Meta stresses most; the last three change how much Meta has to match on.

Fix 1: Put a country code on every phone number

Meta’s two most important tips both concern country. Phone numbers must include the country code even when every customer is in the same country; Meta’s example is a leading 1 for US numbers (Prepare your data for a customer list). Exports from many store and email tools drop it, so check a sample of rows before upload.

Fix 2: Add a separate country column

Give every row a country as an ISO two-letter code, such as US, GB or FR, in its own column, even if all your data is from one country. Meta says it matches on a global scale, so the column helps it match more people (Customer list formatting guidelines).

Fix 3: Split combined columns

Use one identifier per column. Meta asks for a first-name column and a last-name column rather than a single full-name column, and for each other identifier type to sit in its own column (Prepare your data for a customer list). A US ZIP can carry a 4-digit extension after a hyphen, but Meta says the extension will not improve the match rate.

Fix 4: Send more identifiers per customer

You must include at least one main identifier, and Meta recommends more main identifiers for a better match rate. It accepts up to three email columns and up to three phone columns, and recommends first name, last name, city, state, ZIP, country, date of birth, gender and age as additional identifiers alongside a main one (Customer list formatting guidelines). If you match on mobile advertiser IDs, Meta warns that iOS 14 changes may lower the match rate and suggests adding email, phone or name columns (About customer list custom audiences).

Fix 5: Map every column before you import

Your headers decide whether Meta knows which column is which. If you use your own headers, you have to map each column to its identifier type by hand (Prepare your data for a customer list). To check the mapping:

  1. Open Audiences in Ads Manager, select Create audience, then Custom audience, then Customer list.
  2. Upload the file and go to the Map identifiers step.
  3. Look for the exclamation mark beside any column: it means the identifier was left out or needs a manual fix.
  4. Correct every flagged column before you select Import and create, because Meta says corrections made here give a better chance of a good match rate.

Fix 6: Refresh a stale or small list

Meta’s formatting page says a customer list should include at least 1,000 customers (Customer list formatting guidelines). A list that is both small and old gives Meta little to match. To refresh it without building a new audience:

  1. Open Audiences in Ads Manager and select the customer list audience.
  2. Select Update, then Replace customers.
  3. Upload the corrected file, map the identifiers again and select Import and create.

Meta says updating a list also updates the ad sets and lookalikes that use it, does not reset the learning phase, and can take a few hours while your ads keep running (Edit a customer list custom audience).

Which identifiers and formats does Meta accept?

The rules below come from Meta’s customer list formatting guidelines, checked on 2 Oct 2026.

Identifier Column header Meta’s format rule Mistake that costs matches
Email email Up to 3 columns, one address per cell Several addresses in one cell
Phone phone Country code required; up to 3 columns, punctuation allowed Local numbers with no country code
Country country ISO two-letter code, even for a one-country list Column left out, or full country names
First and last name fn, ln Separate columns; accents and initials accepted One combined full-name column
ZIP or postcode zip US 5-digit, 4-digit extension optional Expecting ZIP+4 to raise the score
Date of birth dob 18 accepted date formats Mixed formats in one column

What if I hash the list myself before upload?

Ads Manager hashes your file for you before matching, and Meta says hashing turns identifiers into code that cannot be reversed (About hashing customer information). If you send a list through the Marketing API or a tool that hashes first, normalize every value before hashing, because a hash of “Jane@Mail.com “ will never equal a hash of “jane@mail.com”. Meta’s developer rules (Customer file custom audiences) include:

  • Email: trim leading and trailing spaces and convert to lowercase.
  • Phone: remove symbols, letters and leading zeroes, and prefix the country code when no country field is sent.
  • Names and city: lowercase, no punctuation.
  • Country: lowercase ISO two-letter code.
  • Hash: SHA-256, as lowercase hex. Do not hash mobile advertiser IDs or external IDs.

The same page says you can add an unlimited number of records to an audience, but only 10,000 at a time.

When is a low match rate not a formatting problem?

When the file is clean and the score still sits low, the cause is usually who is on the list. Customers who use no Meta account cannot match. If your list is mostly work addresses, they may not be the emails your customers use on Facebook or Instagram, which is a reason to add phone numbers rather than re-format again. A new ad account can also be blocked from creating customer list audiences for a few weeks after it is linked (Create a customer list custom audience); that shows as a creation problem, not a low score.

What is allowed on the list in the first place is a separate question, covered in is uploading a customer list to Meta compliant? Once the score improves, the audience is ready for two common jobs: as a lookalike seed (see what is the minimum source audience size for a Meta lookalike?) and as an exclusion (see how do I stop paying to advertise to existing customers?). Audience setup is one line of the wider Meta ads audit checklist.

FAQ

What is a good customer list match rate on Meta?

Meta publishes no benchmark, and we found no named public study with a reliable figure. Use your own baseline instead: record the match score after a clean upload, change one formatting rule at a time, and re-upload with Replace customers. A rising score tells you the change worked; a flat one points to who is on the list.

Does Meta need my list hashed before upload?

Not in Ads Manager. Meta hashes the file before matching and says hashed customer information, matched or not, is deleted promptly after matching. You only hash yourself when you send data through the Marketing API or a tool that does so, and then you must normalize each value first, or the hashes will not match.

Why is my match score blank?

Meta says the match score has limited retention, so it can disappear from the Audiences column after a while. Update the list with a fresh upload to get a new score. If the audience also shows Outdated, the list has not been updated for over 30 days, which Meta says may affect delivery.

Will replacing my customer list reset the learning phase?

No. Meta says changes to an existing customer list audience update the ad sets and lookalikes that use it but don’t reset the campaign learning phase. The update can take a few hours, and your ads continue to run while it processes, so you can refresh a list mid-campaign.

Sources

Sources: Meta Business Help Center, Customer list formatting guidelines for custom audiences, Prepare your data for a customer list custom audience, Create a customer list custom audience, About customer list custom audiences, Edit a customer list custom audience, About hashing customer information; Meta for Developers, Customer file custom audiences (checked 2 Oct 2026).

RetargetingMeta Ads

See what your Meta ads are really costing you.

Connect your account and Bach ranks potential revenue leaks with estimates and actions you can review. Free for 7 days, no credit card.

Start Free Audit
Start your free audit