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.Google Ads actions
Create Audience
Create a new CRM-based Customer Match user list on a Google Ads account. Configuration
Returns
The newly created
userListId, plus the full resourceName, the name, and the customerId.
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. ConfigurationCargo 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.
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. ConfigurationCreate Report
Fetch size and match-rate metrics for a Customer Match user list. Configuration
Returns
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
Lead retargeting
Lead retargeting
Sync engaged contacts (MQLs, trial signups, demo requests) into a user list and retarget them across Google Search, YouTube, and the Display Network.
Customer remarketing
Customer remarketing
Push your existing customers into a user list to drive expansion campaigns, or build lookalike (Similar) audiences off them.
Suppression lists
Suppression lists
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.
Match-rate monitoring
Match-rate monitoring
Use Create Report in a scheduled workflow to track audience match rates over time and alert when they drop.
Best practices
- 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.
- 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.
- 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.
- 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.
- 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
OfflineUserDataJobServicepath 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-idheader 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 Audiencecall 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.

