Skip to main content
Google Ads Customer Match lets you target ads to a custom list of contacts based on first-party data. The Cargo integration lets you create Customer Match user lists, push contacts into them, remove contacts, and pull size and match-rate metrics — all from your workflows.

Authentication

Connect to Google Ads using OAuth.
The signed-in Google account must have access to the Google Ads accounts you want to push audiences into. Cargo requests the https://www.googleapis.com/auth/adwords scope and only stores an encrypted refresh token — Google handles access-token refresh.
Customer Match requires a Google Ads developer token with Customer Match access. New developer tokens may need to be approved by Google before they can upload Customer Match data — see Get started with Customer Match for the current process.

Create Audience

Create a new CRM-based Customer Match user list on a Google Ads account. Configuration
FieldDescription
Ad accountGoogle Ads customer ID (10 digits, no dashes), e.g. 1234567890
Audience nameDisplay name for the new user list
DescriptionOptional description
Membership lifespan (days)How long a member remains in the list. Max 540 days for CRM-based user lists
Returns The newly created userListId, plus the full resourceName, the name, and the customerId.
CRM-based user lists are the only Customer Match list type that accepts hashed customer data via the API. You’ll see the new list in the Google Ads UI under Tools → Audience manager → Customer lists.

Add Contact to Audience

Add a single contact to a Customer Match user list. At least one identifier (email, phone, mobile advertising ID, or full address) is required. Configuration
FieldDescription
Ad accountGoogle Ads customer ID
AudienceCustomer Match user list to add the contact to
EmailLowercased and SHA-256 hashed automatically before being sent to Google
Phone numberE.164 format (e.g. +15551234567); SHA-256 hashed automatically
Mobile advertising IDOptional IDFA or GAID
First name, Last nameLowercased and SHA-256 hashed automatically
Country codeISO 3166-1 alpha-2 (e.g. US)
Postal codeOptional, paired with country code
At least one identifier (email, phone, mobile ID, or a full address — first name + last name + country code + postal code) is required.
Cargo lowercases and SHA-256 hashes emails, phone numbers, and names before sending them to Google, as required by the Customer Match API. You only need to provide the raw value — the hashing happens automatically.
How it works under the hood Each call creates an OfflineUserDataJob of type CUSTOMER_MATCH_USER_LIST, adds a single create operation with the hashed identifiers, and runs the job. Google processes the upload asynchronously — there is no synchronous “added/not added” response.

Remove Contact from Audience

Remove a contact from a Customer Match user list by email. Configuration
FieldDescription
Ad accountGoogle Ads customer ID
AudienceCustomer Match user list to remove the contact from
EmailLowercased and SHA-256 hashed automatically before being sent to Google
Only contacts that were added with the same hashed email are removed. If a contact was added with a different identifier (phone, mobile ID, address), removing by email will not affect them.

Create Report

Fetch size and match-rate metrics for a Customer Match user list. Configuration
FieldDescription
Ad accountGoogle Ads customer ID
AudienceCustomer Match user list to report on
Returns
FieldDescription
userListIdThe user list ID
resourceNameThe full resource name (customers/{cid}/userLists/{id})
sizeForDisplayEstimated number of matched members for Display Network targeting
sizeForSearchEstimated number of matched members for Search Network targeting
matchRatePercentageGoogle’s estimated match rate, as a percentage
Google populates match data asynchronously after you push records into a list. New lists typically take 24–48 hours before metrics show meaningful values, and a list needs at least 1,000 members before Google reveals its match rate.

Use cases

Sync engaged contacts (MQLs, trial signups, demo requests) into a user list and retarget them across Google Search, YouTube, and the Display Network.
Push your existing customers into a user list to drive expansion campaigns, or build lookalike (Similar) audiences off them.
Keep a user list of customers or unsubscribed contacts in sync, then exclude it from campaigns to avoid wasting spend on people you already converted.
Use Create Report in a scheduled workflow to track audience match rates over time and alert when they drop.

Best practices

  1. Provide as many identifiers as possible — Google matches on any of email, phone, mobile ID, or full address. The more identifiers per contact, the higher the match rate.
  2. Send raw values, not pre-hashed — Cargo normalizes (lowercase, trim, E.164 for phone) and SHA-256 hashes for you. Sending already-hashed data will skip the normalization step and lower your match rate.
  3. Use full addresses, not partials — When supplying address fields, include first name, last name, country code, and postal code together. Partial addresses are dropped by Google.
  4. Wait before reading match rates — Schedule Create Report at least 24 hours after pushing records. Lists below 1,000 members will return a placeholder match rate until they cross the threshold.
  5. Remove with the same identifier you added — Google only removes contacts whose hashed identifier matches. If a contact was added with phone + address, removing by email alone won’t take them out of the list.

Limitations

  • Customer Match API migration: Google announced that as of April 1, 2026, the OfflineUserDataJobService path used by this integration is being deprecated in favor of the new Data Manager API. Developer tokens that have been actively used for Customer Match uploads continue to work, but tokens that have been inactive for 180+ days will be blocked. See the Google Ads Developer Blog for details. Long-term, this integration will need to be migrated to the Data Manager API.
  • Manager (MCC) accounts: this integration sets the login-customer-id header to the same value as the customer being pushed to. For accounts under a Manager (MCC) account, you may need to use the direct (non-manager) customer ID rather than the MCC ID.
  • One contact per action call: each Add Contact to Audience call creates its own offline user data job. For very high-volume syncs (tens of thousands of records per minute), consider batching upstream — Google rate-limits job creation per customer.