destinations | string or array of object or object | Yes | - | List of native Destination objects for the events:ingest endpoint, in Google’s camelCase JSON. Each destination needs operatingAccount {accountType, accountId} and productDestinationId. accountType options: ‘GOOGLE_ADS’ (productDestinationId is a conversion action ID), ‘FLOODLIGHT_CONFIG’ (Campaign Manager 360 / DV360 conversions, productDestinationId is a Floodlight activity ID), ‘GOOGLE_ANALYTICS_PROPERTY’ (productDestinationId is a measurement ID or Firebase app ID). Optional per destination: ‘reference’ (string used by events’ destinationReferences) and ‘loginAccount’ {accountType, accountId} when access goes through a manager (MCC) account. Example: [{“reference”: “d1”, “operatingAccount”: {“accountType”: “GOOGLE_ADS”, “accountId”: “1234567890”}, “productDestinationId”: “987654”}] |
events | string or array of object or object | Yes | - | List of native Event objects in Google’s camelCase JSON. Supported fields per event: destinationReferences (omit to send to all destinations), eventTimestamp (required, RFC 3339 with timezone; normalized automatically), eventSource (‘WEB’, ‘APP’, ‘IN_STORE’, ‘PHONE’, ‘MESSAGE’, ‘OTHER’; defaults to ‘WEB’ when omitted), transactionId (order ID, deduplicates conversions), adIdentifiers {gclid | gbraid | wbraid | dclid, sessionAttributes, landingPageDeviceInfo}, userData {userIdentifiers: [{emailAddress | phoneNumber | address {givenName, familyName, regionCode, postalCode}}]} for enhanced conversions (max 10 identifiers; raw emails, E.164 phones, and names are normalized and SHA-256 hashed automatically, 64-hex digests pass through), conversionValue and currency, conversionCount, consent {adUserData, adPersonalization: ‘CONSENT_GRANTED’|‘CONSENT_DENIED’}, cartData {merchantId, feedCountryCode, feedLanguageCode, localTransactionCost, items [{productId, quantity, unitPrice}]}, customVariables, eventName, userProperties, eventDeviceInfo, eventLocation, userId, clientId, appInstanceId. Only include fields valid for the Event schema; do not invent fields. Batching is handled automatically, Google accepts up to 2000 events per request |
ad_user_data_consent | string or SelectableOption | No | - | Request-level consent for ad user data, applied to all events unless an event carries its own consent. Options: ‘GRANTED’, ‘DENIED’ |
ad_personalization_consent | string or SelectableOption | No | - | Request-level consent for ad personalization, applied to all events unless an event 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 |