Skip to main content

Google Ads Audiences API — Data Manager

Sync Google Ads Customer Match audiences using email, phone, mobile advertising ID, or third-party user ID. Create this destination separately and complete Data Manager authorization. Google Customer Match eligibility and terms apply.

Setup​

  1. Create Google Ads Audiences API — Data Manager, connect your Google account, and enter the Google Ads customer ID.
  2. Create a connection. For each stream, set Audience Name and choose one of the four contracts below.
  3. Map the required identifier and any consent fields. For mobile audiences, also set Mobile App ID and Mobile platform.
  4. Enable and run the connection when ready to upload members.

Extract uses a compatible existing list with the selected name, or creates a list if it is missing. An existing list's identifier type cannot be changed. Use a different name if the list has an incompatible type. Mobile lists must also match the app ID and platform.

Hashing and normalization​

  • Map raw email to hashed_email with Apply hashing (SHA256) enabled. Extract lowercases emails and removes all whitespace. For gmail.com and googlemail.com, dots and plus suffixes before @ are removed; other domains retain dots and plus tags.
  • Map raw phone to hashed_phone_number with Apply hashing (SHA256) enabled. Include an international country code; Extract normalizes to E.164 before hashing.
  • For already-hashed email or phone, normalize upstream before hashing, provide a 64-character SHA256 hexadecimal hash, and choose Source values are already hashed.
  • Mobile advertising IDs and third-party user IDs must remain unhashed. Mobile IDs must be nonzero UUIDs; Extract normalizes UUIDs to lowercase.

See Identifier Hashing and Normalization.

Data contracts​

ContractRequired contract fieldExample source fieldHashing for raw input
Email custom audiencehashed_emailemailSHA256
Phone custom audiencehashed_phone_numberphoneSHA256
Mobile ID custom audiencemobile_idAndroid gaid or iOS idfaNone
Third party user ID custom audiencethird_party_user_idthird_party_user_idNone

Every row sent through a contract needs its required identifier. If a source mixes audience types, split or filter it into streams so, for example, a mobile audience only receives rows with a mobile ID. An empty identifier causes a preparation error; with Continue on errors disabled, the stream stops.

Mobile audiences​

For Mobile ID custom audience, configure these stream settings:

SettingAndroidiOS
Mobile platformAndroidiOS
Mobile App IDActual app package name, such as com.example.appNumeric App Store ID
mobile_id sourceRaw GAID/AAID UUIDRaw IDFA UUID

Do not map phone numbers, FCM tokens, or hashed IDs to mobile_id. A fabricated app ID or advertising ID can exercise formatting but does not demonstrate Google eligibility or real-user matching.

All four contracts expose these optional fields:

Contract fieldExample source columnAccepted values
consent.ad_user_dataad_user_data_consentGRANTED, DENIED, UNSPECIFIED
consent.ad_personalizationad_personalization_consentGRANTED, DENIED, UNSPECIFIED

These contract fields also existed in the original audience destination. Separate CSV columns can map directly to the two dotted fields; a JSON consent source column is not required. Supply values that reflect the user's actual consent. The legacy UNKNOWN value has no supported Data Manager equivalent; remap it explicitly.

Additions and removals​

Extract ingests added or changed members and removes removed members. The diff_result values used by the contract are Added, Changed, and Removed. If your source provides this field explicitly, map it accordingly. Removed members still require the identifier for the selected contract.

Requests contain at most 10,000 members. Check Data Manager diagnostics for accepted request IDs and subsequent ingestion or removal results. Accepted test records do not guarantee a populated or targetable audience.

Migrating legacy mappings​

Keep the customer ID and a compatible audience name, but authorize the new destination and recreate the connection. Remove legacy transaction_attribute and user_attribute mappings: these have no supported Customer Match equivalent. Populated unsupported fields cause mapping errors.

See Google's Customer Match field mappings for the API migration details.