destinations | string or array of object or object | Yes | - | List of native Destination objects for the audienceMembers:ingest endpoint, in Google’s camelCase JSON. Each destination needs operatingAccount {accountType, accountId} and productDestinationId. accountType options for audiences: ‘GOOGLE_ADS’ (productDestinationId is a user list ID; create the list first, for example with gads_mutate userListOperation), ‘DISPLAY_VIDEO_ADVERTISER’, ‘DISPLAY_VIDEO_PARTNER’, ‘GOOGLE_AD_MANAGER_AUDIENCE_LINK’ (productDestinationId is an audience ID), ‘DATA_PARTNER’. Optional per destination: ‘reference’ and ‘loginAccount’ {accountType, accountId} for manager (MCC) access. Example: [{“operatingAccount”: {“accountType”: “GOOGLE_ADS”, “accountId”: “1234567890”}, “productDestinationId”: “456789”}] |
audience_members | string or array of object or object | Yes | - | List of native AudienceMember objects in Google’s camelCase JSON. Each member carries exactly one data type: userData {userIdentifiers: [{emailAddress | phoneNumber | address {givenName, familyName, regionCode, postalCode}}]} (max 10 identifiers per member; raw emails, E.164 phones, and names are normalized and SHA-256 hashed automatically, 64-hex digests pass through), or mobileData {mobileIds} (advertising IDs), or pairData, userIdData, ppidData, compositeData, googleUserIdData, partnerProvidedIdData for partner setups, passed through as-is. Optional per member: destinationReferences and consent {adUserData, adPersonalization: ‘CONSENT_GRANTED’|‘CONSENT_DENIED’}. Only include fields valid for the AudienceMember schema. Batching is handled automatically, Google accepts up to 10000 audience members per request |
customer_match_terms_of_service | string or SelectableOption | No | - | Customer Match terms of service decision (https://support.google.com/adspolicy/answer/6299717). Google requires ‘ACCEPTED’ when ingesting userData or mobileData members; ask the user to confirm they accept before setting it. Options: ‘ACCEPTED’, ‘REJECTED’ |
ad_user_data_consent | string or SelectableOption | No | - | Request-level consent for ad user data, applied to all members unless a member carries its own consent. Options: ‘GRANTED’, ‘DENIED’ |
ad_personalization_consent | string or SelectableOption | No | - | Request-level consent for ad personalization, applied to all members unless a member carries its own consent. Options: ‘GRANTED’, ‘DENIED’ |
encoding | string or SelectableOption | No | - | Encoding of hashed user identifiers: ‘HEX’ or ‘BASE64’. Set automatically to ‘HEX’ when this operation hashes raw identifiers; set it only when providing pre-hashed identifiers in BASE64 |
encryption_info | object or string | No | - | Optional native EncryptionInfo object for encrypted user identifiers (DEK/KMS setups), passed through as-is |
validate_only | boolean | No | False | When true, validates the request without ingesting. Only errors are returned |