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.
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.
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
| Field | Dirty (Before) | Clean (After) | Issue |
|---|---|---|---|
| Jane.Doe@Yahoo.COM | jane.doe@yahoo.com | Mixed case produces wrong SHA-256 hash | |
| bob@gmail.com | bob@gmail.com | Leading/trailing spaces change the hash | |
| Phone | (212) 555-7890 | +12125557890 | Missing country code and formatting chars |
| Phone | 07700 900456 | +447700900456 | UK number missing +44 country code |
| First Name | Dr. Sarah | sarah | Title prefix and uppercase |
| Last Name | O'Brien III | o'brien | Suffix and uppercase |
| Country | United States | US | Full name instead of ISO 2-letter code |
| Zip | 2101 | 02101 | Leading 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 AdsRelated Resources
CSV Cleaner Tool
Lowercase, trim, and standardize every column for Google Ads Customer Match.
Phone Number Formatter
Convert any phone format to E.164 with country code detection.
Email Validator Tool
Catch invalid emails before they waste your Customer Match upload.
Clean CSV for Facebook Ads
Same hashing rules, different platform. Prepare your data for Facebook Custom Audiences.