How to Prepare a CSV for Facebook Custom Audiences: Maximize Your Match Rate

Facebook Custom Audiences let you target ads to your existing customers by uploading a CSV of contact data. The concept is simple: you upload emails, phone numbers, and names, and Facebook matches them against its user database to build an audience you can target with ads. The reality is that most advertisers get abysmal match rates because their data is messy. The average Custom Audience match rate is 30 to 50 percent. With dirty data, it drops to 10 percent or lower. That means 90 percent of your customer list is invisible to Facebook, and your carefully segmented audience shrinks to a fraction of its actual size.

The fix is data cleaning before upload. Facebook has specific formatting requirements for every field in your CSV, and deviations from those requirements cause match failures. Not errors, not warnings, just silent failures where Facebook cannot find the user because the data does not match what is in their profile. This guide covers every requirement, every common mistake, and the exact steps to clean your CSV so that your Custom Audience match rate approaches the theoretical maximum.

Facebook Custom Audience CSV Requirements

Facebook accepts up to 17 identifier fields for matching, but the most impactful ones are email, phone number, first name, last name, city, state, country, and zip code. Each field has specific formatting requirements that must be followed exactly. Facebook hashes all data client-side using SHA-256 before uploading to its servers for privacy compliance, but this hashing step is what makes data cleanliness so critical: a hash of messy data produces a completely different hash than a hash of clean data, and Facebook only matches on exact hash equality.

Email Requirements

Emails must be lowercase and trimmed of whitespace. John.Smith@Gmail.com will not match the same Facebook account as john.smith@gmail.com because the SHA-256 hashes are completely different. Leading or trailing spaces also change the hash. A single space before or after the email address means the hash will not match Facebook's records. This is the single most common reason for low match rates: mixed-case emails that produce wrong hashes.

Phone Number Requirements

Phone numbers must be in E.164 format: plus sign, country code, subscriber number, no spaces or formatting characters. The same rules that apply to Twilio CSV preparation apply here. A number stored as (415) 555-1234 will not match the same Facebook user whose number is stored internally as +14155551234. Facebook does attempt some normalization, but it is inconsistent and unreliable. The safe approach is to do it yourself before upload.

Name Requirements

First and last names must be lowercase, trimmed, and use only the name itself with no titles, suffixes, or extra characters. Dr. Robert Smith Jr. should become first name robert and last name smith. Titles like Mr., Mrs., Dr., and suffixes like Jr., Sr., III, Esq. all interfere with matching. Accented characters should be preserved (Facebook supports Unicode), but case must be lowered.

Location Requirements

City names must be lowercase with no abbreviations: san francisco, not SF or S.F.. State must be the two-letter abbreviation in lowercase: ca, not California or CA. Country must be the two-letter ISO 3166-1 alpha-2 code in lowercase: us, not United States or USA. Zip codes must be five digits for US addresses (no ZIP+4), and padded with leading zeros if necessary: 02101, not 2101.

The Complete Requirements Table

FieldFormatExample (Raw)Example (Clean)
EmailLowercase, trimmedJohn.Smith@Gmail.COMjohn.smith@gmail.com
PhoneE.164 (+ country code, digits only)(415) 555-1234+14155551234
First NameLowercase, no titlesDr. Robertrobert
Last NameLowercase, no suffixesSmith Jr.smith
CityLowercase, full nameSan Franciscosan francisco
State2-letter abbreviation, lowercaseCaliforniaca
CountryISO 3166-1 alpha-2, lowercaseUnited Statesus
Zip5 digits, leading zeros preserved210102101

Why Match Rates Are So Low: The Hashing Problem

Facebook hashes your customer data before matching it against its user database. This is a privacy measure: Facebook never sees your raw customer data, only SHA-256 hashes. But SHA-256 is extremely sensitive to input. A single character difference produces a completely different hash. Here is a concrete example:

  • SHA-256 of john.smith@gmail.com produces one specific 64-character hash
  • SHA-256 of John.Smith@gmail.com produces a completely different 64-character hash
  • SHA-256 of john.smith@gmail.com (with trailing space) produces yet another different hash

Facebook stores user profile data in its own normalized format. When you upload your CSV, your data is hashed and compared against Facebook's hashes of its stored data. If your input data differs from Facebook's normalized format in any way, including case, whitespace, formatting, or abbreviations, the hashes will not match, and that user will not be included in your Custom Audience. They are your customer, they have a Facebook account, but Facebook cannot find them because the hashes do not align.

This is why the average match rate is only 30 to 50 percent. It is not that half your customers are not on Facebook. It is that your data does not match Facebook's data closely enough for the hashes to align. Cleaning your data before upload directly increases your match rate because clean data produces hashes that match Facebook's internal hashes.

How to Maximize Your Facebook Custom Audience Match Rate

Step 1: Lowercase Everything

Every text field in your CSV must be lowercased before upload. This includes emails, first names, last names, city names, state codes, and country codes. Do not rely on Facebook to normalize case for you. The hashing happens before any normalization on Facebook's side, so case mismatches cause hash mismatches. Use NoSheet's CSV cleaner to lowercase entire columns in one click.

Step 2: Standardize Phone Numbers to E.164

Run your phone column through the phone number formatter to convert every number to E.164 format. This is the same format Facebook uses internally and the same format required by Twilio, making your data reusable across platforms.

Step 3: Validate and Clean Emails

Invalid emails cannot match against anything. Remove emails with syntax errors, expired domains, and disposable providers. Use the email validator to check every address and remove the ones that are clearly wrong. Even addresses that pass syntax validation should be lowercased and trimmed. For a complete email cleaning workflow, see our email list cleaning guide.

Step 4: Standardize Names

Strip titles (Mr., Mrs., Dr., Prof.) and suffixes (Jr., Sr., III, PhD, Esq.) from name fields. Lowercase everything. If your data has full names in a single column, split them into first and last name columns. Facebook matches on first name and last name separately, so a combined "Robert Smith" in one column will not match against anything.

Step 5: Normalize Location Data

Convert state names to two-letter abbreviations (California to ca). Convert country names to ISO 3166-1 alpha-2 codes (United States to us). Spell out city names fully with no abbreviations (St. Louis to saint louis). Pad zip codes with leading zeros if they are fewer than five digits. All lowercase.

Step 6: Remove Duplicates

Duplicate rows in your upload waste processing time and can cause Facebook to over-count your audience size estimates. After normalizing all fields, duplicates become obvious because identical records now have identical representations. Deduplicate on email, phone, or a combination of first name plus last name plus zip code.

Step 7: Provide Multiple Identifiers Per Row

Facebook matches on multiple fields simultaneously. A row with email, phone, first name, last name, city, state, and zip has a dramatically higher match probability than a row with only an email address. Each additional field gives Facebook another way to find the user. Fill in as many columns as you have data for. If a field is missing, leave it blank rather than filling in placeholder text, which would produce a hash that matches nothing.

The Match Rate Difference Clean Data Makes

Real-world results consistently show that clean, properly formatted data doubles or triples Custom Audience match rates. A list with mixed-case emails, US-formatted phone numbers, and inconsistent name formatting might match at 15 to 25 percent. The same list, cleaned and normalized according to Facebook's requirements, typically matches at 50 to 70 percent. For high-quality first-party data (customers who signed up with their primary email), match rates above 80 percent are achievable with proper cleaning.

The impact on your advertising is direct. A Custom Audience that captures 70 percent of your customer list versus 25 percent means nearly three times as many people see your retargeting ads, your lookalike audiences are built from a larger and more representative seed, and your exclusion audiences (suppressing ads from existing customers) actually work because most of your customers are in the list.

For advertisers spending thousands of dollars per month on Facebook, the ROI of a 15-minute data cleaning step before each audience upload is enormous. Higher match rates mean better targeting, less wasted ad spend, and more accurate campaign analytics.

How NoSheet Automates Facebook Audience Preparation

NoSheet's tools are designed to handle exactly this workflow. Upload your CSV, and in a single session you can lowercase all text fields, format phone numbers to E.164, validate emails and remove bad ones, standardize state and country codes, strip name titles and suffixes, deduplicate, and export a clean CSV ready for Facebook. Each step takes seconds, even on lists with hundreds of thousands of contacts, because NoSheet's Rust backend processes data in parallel rather than row by row.

The alternative is spending hours in Excel writing LOWER() formulas, SUBSTITUTE() chains to strip formatting from phone numbers, and manual find-and-replace operations for state abbreviations. That is time better spent on your actual ad strategy, not on wrestling with data formatting.

Clean Your Facebook Audience CSV Now

Every percentage point of match rate you recover is more customers seeing your ads and fewer dollars wasted on broad targeting. The cleaning takes minutes. The impact lasts for every campaign you run against that audience. Upload your CSV, clean it, and upload to Facebook with confidence that your match rate is as high as your data allows.

Related Resources