Marketing overview

Marketing · Guide

How to clean a CSV for ad platform uploads

Audience uploads to Google Customer Match, Meta Custom Audiences, and LinkedIn Matched Audiences fail in predictable ways. Most are caused by formatting issues you can fix in two minutes — if you know what to look for.

Last reviewed: April 2026

The pre-upload checklist

Work through this list every time before uploading. It catches roughly 95% of the issues that cause failed uploads or low match rates.

  • UTF-8 encoding without BOM. Excel often saves UTF-8 with BOM, which breaks some parsers.
  • One header row, exactly as the platform expects (e.g. 'email' or 'Email' — match the platform's spec).
  • No empty rows or trailing blank lines.
  • Trim leading/trailing whitespace from every cell.
  • Lowercase email addresses before hashing (if hashing is required).
  • Remove duplicate rows on the matching key (usually email or phone).

Phone number formatting

Most platforms require E.164 format (+14155551234). Strip spaces, dashes, parentheses. If your source data has mixed formats, normalise before upload — partial matches don't get fixed retroactively.

A common failure mode: phone numbers stored in spreadsheets often lose leading zeros or country codes because Excel infers a number type and reformats them. Convert the column to text before exporting, or validate after export that every number starts with a + and a country code.

Hashed vs raw uploads

Some endpoints require SHA-256 hashed values. Lowercase and trim before hashing — 'Alice@Example.com ' and 'alice@example.com' hash to different values and won't match.

If the platform offers both hashed and unhashed upload paths, the practical difference for match rate is usually negligible — the bigger lever is the cleanup quality before the hash.

Platform-specific quirks

Each major platform has its own expectations. Knowing them up front saves a round-trip of rejected uploads.

  • Google Customer Match: minimum 100 matched users to use a list; allows hashed or unhashed email, phone, and mailing address.
  • Meta Custom Audiences: hashing handled in-browser by Meta's uploader; minimum audience size of 100 for ads to deliver.
  • LinkedIn Matched Audiences: minimum match of 300 members; requires multi-column matching for best results (email + company + job title).

Match rate expectations

Realistic match rates: Google Customer Match 40-70%, Meta 50-70%, LinkedIn 20-40%. Anything lower usually points to cleanup issues — old email addresses, missing country codes on phones, or inconsistent casing pre-hash.

If match rates fall outside these ranges by more than ten points, the most likely cause is a formatting issue in the upload rather than a problem with the source data itself.

Quick cleanup

Paste a messy CSV into the CSV Audience List Cleaner to trim every cell, normalise headers, and dedupe in one step. The cleaning runs entirely in your browser, so PII never leaves your machine.

Summary

Most upload failures come from whitespace, casing, encoding, duplicates, or phone formatting. A two-minute cleanup pass before upload buys you better match rates, cleaner downstream audiences, and fewer wasted impressions on duplicates.

Frequently asked questions

Why is my match rate so low?
Most often: emails not lowercased before hashing, phone numbers missing country codes, or duplicates inflating the row count. Re-clean the source list with consistent normalization and re-upload to compare.
Should I hash data myself or let the platform do it?
Use the platform's in-browser hashing when available — it's less error-prone. If hashing client-side, lowercase and trim every value before hashing, otherwise the hash won't match the platform's expected format.
How often should I refresh a custom audience?
For most platforms, weekly or bi-weekly is the right cadence. Refresh more often for high-velocity lists (recent purchasers, lapsed users) and less often for slow-moving lists (long-term subscribers).

Tools mentioned

Further reading

Browsing all guides? Head back to the Marketing overview or the full tools index.