Google Ads
Upload Customer Match audiences to Google Ads for targeted advertising. Use Zeotap to sync your warehouse segments directly to Google Ads user lists.
Prerequisites
- A Google Ads account with Customer Match eligibility
- A Google Ads API developer token (from your Manager account’s API Center)
- Your Google Ads Customer ID (10-digit number)
Finding Your Customer ID
Your Customer ID is the 10-digit number displayed in the top-right corner of the Google Ads dashboard, formatted as XXX-XXX-XXXX.
- Sign in to Google Ads
- Look at the top-right corner — your Customer ID appears next to your account name (e.g.,
406-685-0321) - When entering it in Zeotap, remove the dashes (e.g.,
4066850321)
Getting a Developer Token
A developer token is required for all Google Ads API access.
- Sign in to your Google Ads Manager account (MCC) — developer tokens are issued at the MCC level, not individual ad accounts
- Navigate to Tools & Settings (wrench icon) > Setup > API Center
- If you don’t have a developer token yet, one will be generated with Test Account access level
- Copy the 22-character alphanumeric token
Developer Token Access Levels
| Level | What It Means | How to Get It |
|---|---|---|
| Test Account | Only works with accounts you explicitly whitelist in the API Center | Default when first issued |
| Basic Access | Works with any Google Ads account the user authorizes | Apply in API Center — requires app review |
| Standard Access | Higher rate limits, same account access as Basic | Apply after Basic approval |
For testing, add your Customer ID as a test account: in the API Center page, find the “Test accounts” section and add the Customer ID you want to sync to.
For production, apply for Basic Access in the API Center. Google reviews your OAuth consent screen, terms of service URL, and privacy policy.
Authentication
Google Ads uses OAuth 2.0.
- Click Connect with OAuth in Zeotap
- Sign in with the Google account that has access to your Google Ads account
- Authorize the requested permissions
The authorizing Google account must have at least Standard access to the target Google Ads account.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Customer ID | Text | Yes | Your Google Ads customer ID (10-digit number, without dashes). Find it in the top-right corner of your Google Ads dashboard. |
| Login Customer ID (MCC) | Text | No | Manager account ID if managing the customer through an MCC. Leave blank for direct access. |
| Developer Token | Password | Yes | Google Ads API developer token from your Manager account’s API Center. |
Target Settings
| Field | Type | Required | Description |
|---|---|---|---|
| Audience Name | Text | Yes | Name for the Customer Match user list |
| Audience ID | Text | No | Existing user list resource name. Leave blank to create a new list. |
Per-row user lists
Audience Name can be taken from a column instead of being fixed for the sync, so one sync fans out across several Customer Match user lists.
To set it up, open the sync’s Destination target overrides, switch the field from Fixed value to From column, and pick the column. The switch adds a row to the sync’s field mapping, so you can also see and edit the binding — including adding a transform — in the Map fields editor. The fixed value you leave behind becomes the fallback applied to rows whose column is empty.
Zeotap groups each batch by the resolved name and uploads once per distinct list, reusing an existing list of that name or creating it on first sight. This works identically whether the destination uploads natively or through the Data Manager API.
Limiting how many user lists a run can create
Because a new Audience Name creates a user list, binding a high-cardinality column by mistake — a user id, say — would create one per profile. Max distinct values per run (default 500) caps this: if a run needs to create more than the limit allows, it fails with an error naming the field and the offending value, and nothing further is created. Set it to 0 for no limit.
Mirror mode cannot express a move. A profile that moves from one user list to another appears in the diff as a changed row carrying only its current value, so it is added to the new one but never removed from the old. Prefer Add and Remove sync modes when Audience Name comes from a column.
Supported Operations
Sync Modes: Upsert, Mirror
Audience Sync Modes: Add, Remove, Mirror, Upsert
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
| Primary match key for Customer Match |
Default Destination Fields
| Field | Type | Description |
|---|---|---|
email | string | Email address (raw — auto normalized and SHA-256 hashed) |
hashed_email | string | Email — pre-hashed SHA-256 hex of lowercase trimmed email |
phone | string | Phone number (raw — auto normalized and SHA-256 hashed) |
hashed_phone | string | Phone — pre-hashed SHA-256 hex of E.164 number |
first_name | string | First name (raw — auto lowercased and SHA-256 hashed) |
hashed_first_name | string | First name — pre-hashed SHA-256 hex of lowercase trimmed name |
last_name | string | Last name (raw — auto lowercased and SHA-256 hashed) |
hashed_last_name | string | Last name — pre-hashed SHA-256 hex of lowercase trimmed name |
country_code | string | Country code (plain text, e.g. US) |
postal_code | string | Postal/ZIP code (plain text) |
mobile_id | string | Mobile advertising ID (IDFA or GAID) |
Troubleshooting
Permission denied (403)
Developer token in test mode: Your developer token only works with whitelisted accounts. Go to Tools & Settings > API Center and add the target Customer ID under “Test accounts”. For production, apply for Basic Access.
User doesn’t have account access: The Google account that authorized OAuth must have at least Standard access to the target Google Ads account. Check under Tools & Settings > Access and security.
Customer Match not available
Customer Match requires your account to meet Google’s eligibility requirements including a good compliance history and sufficient spend.
Low match rate
Ensure email addresses are lowercase and properly formatted. Phone numbers should include country codes. Google hashes identifiers before matching.