Blog — Paid Media

How to Upload a Customer List to Google Ads (Customer Match)

Person writing on white board — photo by Slidebean on UnsplashPaid Media

Customer Match is Google Ads' version of list-based targeting: upload your customer list, Google matches it to signed-in accounts, and the resulting segment can be targeted — or excluded — across Search, YouTube, Gmail, and Display. It's one of the highest-leverage features in the platform, and also one of the most quietly fumbled: formatting problems and consent gaps silently eat match rates.

This is the full walkthrough. If you just want the file, grab the free Customer Match list template — it ships with Google's documented column headers so the upload maps cleanly.

Step 1: Export the right list, for a reason

Start from the use case, because it defines the segment:

  • Exclusion — all current customers, excluded from prospecting campaigns, is usually the fastest ROI on this entire feature: you stop paying to acquire people you already have.
  • Upsell / cross-sell — active customers of product A, targeted with product B.
  • Win-back — churned customers or closed-lost deals past six months.
  • Seed audiences — your best customers, as the basis for broader targeting where Google supports it.

Export from your CRM with every identifier you legitimately hold: email, phone, first and last name, country, and zip. Google matches each identifier independently — email alone works, but email plus phone plus name-and-zip matches meaningfully more people. (HubSpot users: an active list keeps the export repeatable; here's how we wire Google Ads and HubSpot together properly.)

Want this running on your campaigns? Talk to a Google Partner agency →

Step 2: Format the file the way Google expects

The upload wants a spreadsheet with Google's documented headers — Email, Phone, First Name, Last Name, Country, Zip — one person per row. The formatting rules that decide your match rate:

  • Emails lowercase, no stray spaces (“Jane@Example.COM ” and “jane@example.com” hash differently).
  • Phone numbers in E.164 format with country code: +15550100.
  • Two-letter country codes (US), and zip filled whenever you're providing names — name matching only works with country and zip alongside.
  • Leave unknown cells empty rather than inventing values.

You don't need to hash anything for a UI upload — Google hashes identifiers (SHA-256) on the way in. Treat the plain file as the customer data it is: upload it, then delete the local copy.

People sitting on chair inside building — photo by Rodeo Project Management Software on Unsplash

Step 3: Upload in Audience Manager

In Google Ads: Tools → Audience manager → Your data segments, create a new segment, choose Upload a file, and confirm the consent declaration — Customer Match policy requires that the data was collected with proper consent, and the declaration is binding, not decorative. Name the segment with the date and source (“Customers — all — 2026-10 — HubSpot”), because future you will otherwise inherit a mystery list.

Processing takes up to 48 hours. Expectations: healthy consumer lists match roughly 30–60% of rows; B2B lists match lower because work emails are tied to Google accounts less often — which is exactly why the extra identifier columns are worth filling. Google also requires a matched segment of at least 1,000 users before ads can serve against it, so small segments may need combining.

Step 4: Apply it deliberately, refresh it on a schedule

Attach the segment where the use case says: as targeting on upsell and win-back campaigns, as an exclusion on prospecting (campaign settings → exclusions), or as an input signal where you run broader automated campaigns. Then put a refresh on the calendar — monthly or quarterly. An eighteen-month-old list targets churned customers and misses every new one; staleness is the silent killer of this feature.

Customer Match pairs naturally with feeding real revenue back into bidding — if your deals close offline, the offline conversion upload template closes that loop. And if you'd rather this whole machine were someone's job, it's literally ours: managed Google Ads wired to the CRM.

Frequently Asked Questions

Do I need to hash my customer list before uploading to Google Ads?

Not for the standard upload — the Google Ads interface hashes identifiers with SHA-256 during the upload, so your file can hold plain values. Hashing yourself first is only required when uploading via the API. Either way, handle the file as sensitive customer data and delete local copies after upload.

What match rate should I expect from Customer Match?

Consumer lists with clean emails typically match 30–60% of rows; B2B lists run lower because work emails are less often attached to Google accounts. You can raise the rate materially by providing more identifiers per person — phone in E.164 format, plus first name, last name, country, and zip — since Google matches each independently.

Why is my Customer Match segment not serving?

The usual causes, in order: the matched segment is under Google's 1,000-user minimum; the list is still processing (allow up to 48 hours); formatting problems silently zeroed the match rate (check email casing and phone formats); or the account hasn't met Customer Match's policy requirements. Fix the file first — it's the cause more often than the policy.

Want ads measured against pipeline, not clicks?

Google, social, and ChatGPT campaigns from a Google Partner agency.

Contact us
← All posts