Ad Platforms

How to Clean a CSV for Google Ads Customer Match: The Complete Formatting Guide

Google Ads Customer Match lets you upload your first-party data to target existing customers across Search, Shopping, Gmail, and YouTube. But Google hashes every field with SHA-256 before matching, which means a single uppercase letter or trailing space produces a completely different hash and kills your match rate. This guide covers every formatting requirement, the most common mistakes, and a step-by-step cleaning checklist to maximize your match rate.

March 2026·11 min read

What Google Ads Customer Match Is and Why Data Quality Matters

Customer Match is Google's audience targeting feature that matches your uploaded customer data against Google accounts. You upload a CSV containing emails, phone numbers, names, countries, and zip codes. Google hashes every value using SHA-256, then compares those hashes against the hashed profile data of its billions of users. When a hash matches, that Google user is added to your Customer Match audience, which you can then target with ads across the entire Google ecosystem.

The critical detail that most advertisers miss is that SHA-256 hashing is case-sensitive and whitespace-sensitive. The hash of john@gmail.com is completely different from the hash of John@Gmail.com, even though both addresses deliver to the same inbox. Google normalizes data on its side before hashing, but you must also normalize your data before uploading. If your data does not match Google's normalization rules, the hashes diverge and the match fails silently. No error message, no warning, just a customer who should be in your audience but is not.

This is not a theoretical concern. Advertisers who clean their CSV files before uploading consistently see match rates of 50 to 70 percent or higher, while those who upload raw CRM exports often see rates below 30 percent. On a list of 50,000 customers, that difference means 20,000 more people in your retargeting audience, which directly impacts ad delivery, cost per acquisition, and return on ad spend.

Google Ads Customer Match CSV Requirements

Google accepts five primary identifier fields for Customer Match: email, phone, first name, last name, country, and zip code. Each field has strict formatting rules. Your CSV must use ASCII or UTF-8 encoding. No other encodings are accepted. Your file must contain at least 100 records, which is Google's minimum threshold for creating a Customer Match audience. Files with fewer than 100 rows will be rejected entirely.

Email

Emails must be lowercase with all leading and trailing whitespace removed. Do not include display names or angle brackets. The address "John Smith" <John.Smith@Example.com> must be cleaned to john.smith@example.com. Google hashes the email exactly as provided, so any deviation from all-lowercase with no whitespace will produce a non-matching hash. This is the single most impactful field for matching. If you only clean one column in your CSV, make it the email column.

Phone Number

Phone numbers must be in E.164 format: a plus sign, followed by the country code, followed by the subscriber number with no spaces, dashes, parentheses, or dots. A US number stored as (415) 555-1234 must become +14155551234. A UK number stored as 07700 900123 must become +447700900123. The country code is mandatory. Numbers without a country code cannot be matched because Google has no way to determine which country's numbering plan to apply. Use NoSheet's phone number formatter to convert an entire column to E.164 in seconds.

First Name and Last Name

Names must be lowercase with no titles, prefixes, or suffixes. Remove Mr., Mrs., Ms., Dr., Prof., Jr., Sr., III, PhD, Esq., and any other honorifics. Dr. Robert Smith Jr. must become first name robert and last name smith. If your CRM stores full names in a single column, you need to split them into separate first name and last name columns before upload. Google matches on each field independently.

Country

Country must be the two-letter ISO 3166-1 alpha-2 code. United States becomes US. United Kingdom becomes GB (not UK). Deutschland becomes DE. This is a common mistake: many CRM exports use full country names, three-letter codes, or non-standard abbreviations. Google will not match data that uses anything other than the two-letter ISO code.

Zip Code

Zip codes must preserve leading zeros. A Boston zip code must be 02101, not 2101. This is a notorious issue with Excel and Google Sheets, which treat zip codes as numbers and strip leading zeros automatically. If your data has passed through a spreadsheet at any point, check your zip codes. US zip codes must be five digits only, not ZIP+4. International postal codes should follow the format standard for their country.

Before and After: Dirty vs. Clean Data for Google Ads

FieldDirty (Before)Clean (After)Issue
EmailJane.Doe@Yahoo.COMjane.doe@yahoo.comMixed case produces wrong SHA-256 hash
Email bob@gmail.com bob@gmail.comLeading/trailing spaces change the hash
Phone(212) 555-7890+12125557890Missing country code and formatting chars
Phone07700 900456+447700900456UK number missing +44 country code
First NameDr. SarahsarahTitle prefix and uppercase
Last NameO'Brien IIIo'brienSuffix and uppercase
CountryUnited StatesUSFull name instead of ISO 2-letter code
Zip210102101Leading zero stripped by spreadsheet

How Google Ads Hashing Works and Why It Matters

When you upload a Customer Match CSV, Google hashes every identifier field using SHA-256 before transmitting it to Google's servers. This is a one-way cryptographic function: Google cannot reverse the hash to see your original data. On Google's side, user profile data is also stored as SHA-256 hashes. Matching happens by comparing hash to hash.

The implication is absolute: if your input data differs from Google's stored data by even one character, the hashes will not match. JOHN@GMAIL.COM produces hash a1b2c3... while john@gmail.com produces hash x9y8z7.... These are completely unrelated strings as far as the matching algorithm is concerned. Google normalizes its stored data to lowercase, trimmed, no-prefix format. Your job is to do the same to your data before uploading so the hashes align.

This is identical to how Facebook Custom Audiences work. If you have already read our guide on cleaning CSVs for Facebook Ads, the same hashing principles apply. The difference is in the specific field requirements and the minimum record threshold.

The 7-Step Google Ads Customer Match Cleaning Checklist

Step 1: Lowercase All Email Addresses

Convert every email address to lowercase and trim all whitespace. This is the highest-impact single transformation you can make. In a typical CRM export, 15 to 30 percent of email addresses contain at least one uppercase character. Every one of those would produce a non-matching hash without this step. Use NoSheet's CSV cleaner to lowercase and trim an entire column instantly.

Step 2: Convert Phone Numbers to E.164

Strip all formatting characters (parentheses, dashes, spaces, dots) and prepend the plus sign and country code. If your data is primarily US-based, prepend +1. For international lists, you need the correct country code for each number. The phone formatter handles multi-country conversion automatically and validates that each number has the correct digit count for its country code.

Step 3: Strip Name Prefixes and Suffixes

Remove all titles (Mr., Mrs., Ms., Dr., Prof., Rev., Hon.) and suffixes (Jr., Sr., II, III, IV, PhD, MD, Esq., CPA) from name fields. Lowercase the remaining text. If your CRM stores full names in one column, split on the first space for first name and the last space for last name, then strip titles from the beginning and suffixes from the end.

Step 4: Convert Country Names to ISO Codes

Replace full country names and three-letter codes with two-letter ISO 3166-1 alpha-2 codes. Common conversions: United States to US, Canada to CA, United Kingdom to GB, Australia to AU, Germany to DE, France to FR. Watch for edge cases: Great Britain and England should both map to GB. The Netherlands should map to NL, not NE.

Step 5: Standardize Zip Codes

Pad US zip codes to five digits with leading zeros. Remove ZIP+4 extensions (the dash and four extra digits). For international postal codes, verify the format matches the country's standard. If your data has been through Excel, this step is essential because Excel interprets zip codes as numbers and strips leading zeros by default. Our guide on how Excel corrupts data covers this issue in detail.

Step 6: Deduplicate Your List

Remove duplicate rows based on email address. Duplicates do not improve your match rate because Google deduplicates on its side, but they inflate your row count and can push smaller lists below the effective threshold if many rows are wasted on duplicates. After normalization, duplicates that were previously hidden by case differences become visible and should be removed.

Step 7: Validate the Minimum 100 Records

After cleaning, deduplication, and removing invalid rows, verify that your file still contains at least 100 records. Google will reject the entire upload if it falls below this threshold. If your list is close to the minimum, validate emails before removing them so you do not drop below 100 valid rows. The email validator flags invalid addresses without removing them, letting you make informed decisions about which rows to keep.

The Encoding Requirement: ASCII and UTF-8 Only

Google Ads accepts CSV files encoded in ASCII or UTF-8 only. Files exported from legacy systems, Windows applications, or certain European CRM platforms may use Latin-1 (ISO-8859-1), Windows-1252, or other encodings. Characters that look identical on screen can have different byte representations in different encodings, which changes the hash. If your CSV contains accented characters (common in European names), make sure the file is saved as UTF-8. Most modern text editors and export tools default to UTF-8, but if you see garbled characters after upload, encoding is likely the issue.

How NoSheet Automates Google Ads CSV Preparation

Every step in the 7-step checklist maps to a NoSheet operation. Upload your CSV, and in a single session you can lowercase and trim emails, convert phones to E.164, strip name prefixes and suffixes, standardize country codes, fix zip codes, and deduplicate. The entire workflow takes minutes, even on lists with hundreds of thousands of contacts, because NoSheet processes data with a compiled Rust backend rather than interpreted JavaScript.

The alternative is doing it manually in Excel or Google Sheets: writing LOWER() and TRIM() formulas, building SUBSTITUTE() chains to strip phone formatting, using VLOOKUP tables to convert country names to ISO codes, and manually checking for leading-zero truncation in zip codes. That approach takes hours, is error-prone, and needs to be repeated every time you upload a new audience. NoSheet makes the process repeatable and fast.

If you also run Facebook campaigns, the same cleaning session prepares your data for both platforms. Our guide on cleaning CSVs for Facebook Ads covers the Facebook-specific requirements. For a broader view of pre-campaign data hygiene, see data cleaning before a campaign.

Get your CSV Google Ads-ready in minutes

Lowercase emails, format phones to E.164, standardize country codes, fix zip codes, and deduplicate your customer list. No formulas, no code.

Clean My CSV for Google Ads

Related Resources