Back to Google Ads in Google Sheets
SheetXAI logo
Google Ads logo
Google Ads · Google Sheets Guide

Upload a Customer Match Audience to Google Ads From a Google Sheet

2026-05-14
5 min read

The Scenario

Your lifecycle marketing team just finished a churn analysis. The output: a Google Sheet with 25,000 email addresses — former subscribers who let their accounts lapse in the last 90 days. The win-back campaign brief calls for a Google Ads customer match audience targeting exactly this list, with a new campaign flight starting next week.

This is the third quarter in a row you've had to do this. The first time took most of an afternoon. The second time you remembered most of the steps but still had to look up the API hashing requirement.

The bad version:

  • Open the Google Ads UI, navigate to Audience Manager, click "Create audience," select Customer List, and choose "Upload a list of emails."
  • Export the sheet to CSV, SHA-256 hash every email address (which requires a separate script or tool because the UI requires pre-hashed emails), import the CSV, wait for the upload to process.
  • Discover that 800 rows had trailing whitespace and weren't matched because you forgot to trim before hashing. Re-export, re-trim, re-hash, re-upload.

Somewhere in the account a campaign is already briefed against this audience. The audience doesn't exist yet.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the email addresses from your column, handles the hashing requirement, creates the customer match list in Google Ads, and uploads the contacts — all in one operation.

Create a new customer match list in Google Ads called 'Churned Subscribers 2025' and then bulk-add all email addresses from column A of my Google Sheet to that list

What You Get

  • A new customer match audience named "Churned Subscribers 2025" created in your Google Ads account.
  • All email addresses from column A uploaded to the list in a single batch — trimmed and hashed appropriately before submission.
  • A confirmation written back to the sheet showing the new audience ID and the number of emails successfully uploaded.
  • Any rows with obviously malformed email addresses flagged in a separate column so you know what didn't make it in.

What If the Data Is Not Quite Ready

The email addresses are in mixed case and need normalization before upload

Normalize all email addresses in column A of my Google Sheet to lowercase, then create a customer match list in Google Ads called 'Win-Back Q3 2026' and upload all normalized emails to it

The sheet has emails for multiple segments and you only want one segment

Filter my Google Sheet to rows where column B says "churned_90d", take the email addresses from column A, create a customer match list in Google Ads called 'Churned 90 Days' and upload only those emails to it

The audience already exists and you need to add new emails to it, not create a new one

Find the existing customer match audience in my Google Ads account named 'Lapsed Buyers Q2', and add all email addresses from column A of my Google Sheet to it without overwriting the existing members

The full enrichment-to-upload prompt — clean, deduplicate, and upload in one shot

Take all email addresses in column A of my Google Sheet, remove duplicates, remove any rows where the email is blank or malformed, then create a new Google Ads customer match list called 'Churned Subscribers 2025 Clean' and upload the deduplicated list to it — write the audience ID and final upload count back to cell C1

One prompt handles deduplication, validation, list creation, and the upload — the audience is ready before you finish your coffee.

Try It

Get the 7-day free trial of SheetXAI and open the Google Sheet with your email list, then ask it to create the customer match audience and upload all contacts. Also see: Export Audience Inventory to document what's already in your account, or back to the Google Ads overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more