1. Home
  2. Free tools
  3. Email list tools
  4. Facebook custom audience file formatter

Facebook custom audience file formatter: a customer list Meta can match

In short: Upload any contact export (.xlsx or CSV) or paste cells. Columns are matched by header and written with Meta's identifier names (email, phone, fn, ln, ct, st, zip, country), each normalised the way Meta's documentation describes; repeats merge, and values can be SHA-256 hashed. Limit: Columns are found by header name; rename unusual headers (say, "Contact pt.") to Email, Phone or Name first.

A Facebook custom audience customer list is a CSV with one person per row and Meta's identifier columns: email, phone, fn, ln, ct, st, zip and country. Meta matches best when each is normalised: lower-case emails, phones as digits with the country code, names and cities in lower-case letters only, two-letter state and country codes. Upload your export here and it writes that file.

Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. Check your list free nowSee pricing

Runs in your browser. Nothing is uploaded.

Also used for phone numbers written without a + country code.

Sample result from the Facebook custom audience file formatter
Show the sample result as

Sample result

Jane O'Neil's row becomes [email protected], 14155550132, jane, oneil, sanfrancisco, ca, 94105, us.

Customer list
1 contact
Phone
14155550132
State
ca

What this means for you

Every column has Meta's name and format, so Ads Manager maps it without manual matching.

Next step:Verify the list
  • Columns found by header
  • Meta's normalisation per field
  • Repeats merged
  • Plain or SHA-256
  • Meta
  • Custom audience
  • CSV

By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us

Check the addresses before you upload the customer list.

  1. Use the addresses in the customer list file; the button under the result carries them.
  2. Upload or paste it at /verify. Every address gets a live mailbox check, and the first 100 email checks are free with a Google sign-in, no card.
Check the addresses

How do I prepare a CSV for a Meta custom audience?

  1. Upload the contact export (.xlsx or CSV), or paste the cells with the header row first. Name, email, phone, city, state, ZIP and country columns are found by their headers.
  2. Choose the country for rows that don't have one; it is also used for phone numbers written without a + country code.
  3. Check the columns the tool found, and tick SHA-256 only if you need hashed values for the API or a partner.
  4. Download the CSV and upload it in Ads Manager under Audiences > Create audience > Custom audience > Customer list.

Example

You enter
A sheet with Name, Email, Phone, City, State, Zip and Country: Jane O'Neil, [email protected], (415) 555-0132, San Francisco, California, 94105-1234, United States, plus a second row for [email protected] and a row with no email or phone.
You get
One row: [email protected], 14155550132, jane, oneil, sanfrancisco, ca, 94105, us under the headers email, phone, fn, ln, ct, st, zip, country. The repeat is merged and the row with no email or phone is skipped.
Limits
Runs in your browser; nothing is uploaded. Files up to 25 MB.

What columns does a Meta customer list need?

Meta reads identifiers by column name. This tool writes email, phone, fn (first name), ln (last name), ct (city), st (state), zip and country, leaving out columns your file has no data for. Email or phone gives the strongest matches; names, city, state, ZIP and country help Meta match the rest. Meta's customer list help lists the identifiers Ads Manager accepts.

How is each identifier normalised?

Following Meta's customer file guide: emails are trimmed and lower-cased; phones become digits only with the country code, no + and no leading zeros; first and last names are lower-cased with punctuation removed (accented letters are kept); cities are lower-cased with spaces and punctuation removed; US states become their two-letter code in lower case; US ZIPs are cut to the first five digits; countries become the lower-case ISO 3166 two-letter code.

A single Name column is split into first and last name. Rows with neither a usable email nor a usable phone are left out and counted.

Plain or hashed?

Meta asks for SHA-256 hashes of normalised values. Ads Manager hashes a plain file in your browser before it is uploaded, so a plain file is fine there. If you send the list through the Marketing API or to a partner who uploads it, tick SHA-256 and every value is hashed here instead.

Who uses this tool, and for what?

Paid social marketers
Turn a CRM export into a customer list Ads Manager maps without manual column matching.
Ecommerce teams
Build a lookalike seed from a store's customer export with phones in Meta's format.
Agencies
Prepare a client's list as SHA-256 hashes before it goes into the client's ad account.

What can’t this tool tell you?

  • Columns are found by header name; rename unusual headers (say, "Contact pt.") to Email, Phone or Name first.
  • One email and one phone per person; extra address columns aren't merged in.
  • Date of birth, gender and mobile advertiser IDs aren't written.
  • Formatting can't make a closed or rarely used address match a Facebook account.

Common questions

What format does Facebook need for a custom audience file?
A CSV or TXT with a header row of Meta's identifier names, such as email, phone, fn, ln, ct, st, zip and country, and one customer per row.
How should phone numbers be formatted for a Facebook custom audience?
Digits only, with the country code and no + or leading zeros, for example 14155550132 for a US number. The tool converts numbers written in local or international format.
Do I need to hash the file before uploading to Ads Manager?
No. Meta says Ads Manager hashes the identifiers before upload. Hash it here only for the Marketing API or a partner.
Why is my Facebook custom audience match rate low?
Common causes are unformatted phones, mixed-case or padded emails, and addresses that no longer exist or aren't the one people use on Facebook. Formatting fixes the first two; checking the list finds the dead addresses.
Is my customer list uploaded to SimpleVerifier?
No. The file is read and formatted in your browser.

Sources

A tidy list can still be full of dead addresses.

Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.

  • Upload the cleaned file as it is: CSVs up to 100,000 rows
  • A real SMTP mailbox check on every row, with catch-all detection
  • Small list? Starter at $9/mo covers 2,500 emails a month, cancel anytime

Plans from $9 a month, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then monthly plans from $9, or one flat price with fair use, never cut off.

100 free checks, no card Cancel anytime Secure payment by Stripe