---
title: "POST /v1/events:ingest"
method: POST
path: "/v1/events:ingest"
tags: ["events"]
---

# POST /v1/events:ingest

`POST /v1/events:ingest`

Uploads a list of Event resources from the provided Destination.

## Request body

- IngestEventsRequest — Request to upload audience members to the provided destinations. Returns an IngestEventsResponse.
  - `consent` Consent — [Digital Markets Act (DMA)](//digital-markets-act.ec.europa.eu/index_en) consent settings for the user.
    - `adPersonalization` 'CONSENT_STATUS_UNSPECIFIED' | 'CONSENT_GRANTED' | 'CONSENT_DENIED' — Optional. Represents if the user consents to ad personalization.
    - `adUserData` 'CONSENT_STATUS_UNSPECIFIED' | 'CONSENT_GRANTED' | 'CONSENT_DENIED' — Optional. Represents if the user consents to ad user data.
  - `encoding` 'ENCODING_UNSPECIFIED' | 'HEX' | 'BASE64' — Optional. Required for UserData uploads. The encoding type of the user identifiers. For hashed user identifiers, this is the encoding type of the hashed string. For encrypted hashed user identifiers, this is the encoding type of the outer encrypted string, but not necessarily the inner hashed string, meaning the inner hashed string could be encoded in a different way than the outer encrypted string. For non `UserData` uploads, this field is ignored.
  - `validateOnly` boolean — Optional. For testing purposes. If `true`, the request is validated but not executed. Only errors are returned, not results.
  - `encryptionInfo` EncryptionInfo — Encryption information for the data being ingested.
    - `coordinatorKeyInfo` CoordinatorKeyInfo — Information about the coordinator key.
      - `keyId` string — Required. The ID of the chosen coordinator key.
    - `gcpWrappedKeyInfo` GcpWrappedKeyInfo — Information about the Google Cloud Platform wrapped key.
      - `keyType` 'KEY_TYPE_UNSPECIFIED' | 'XCHACHA20_POLY1305' — Required. The type of algorithm used to encrypt the data.
      - `wipProvider` string — Required. The [Workload Identity](//cloud.google.com/iam/docs/workload-identity-federation) pool provider required to use KEK.
      - `kekUri` string — Required. Google Cloud Platform [Cloud Key Management Service resource ID](//cloud.google.com/kms/docs/getting-resource-ids). Should be in the format of `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}` or `gcp-kms://projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}`
      - `encryptedDek` string — Required. The base64 encoded encrypted data encryption key.
    - `awsWrappedKeyInfo` AwsWrappedKeyInfo — A data encryption key wrapped by an AWS KMS key.
      - `kekUri` string — Required. The URI of the AWS KMS key used to decrypt the DEK. Should be in the format of `arn:{partition}:kms:{region}:{account_id}:key/{key_id}` or `aws-kms://arn:{partition}:kms:{region}:{account_id}:key/{key_id}`
      - `encryptedDek` string — Required. The base64 encoded encrypted data encryption key.
      - `roleArn` string — Required. The Amazon Resource Name of the IAM Role to assume for KMS decryption access. Should be in the format of `arn:{partition}:iam::{account_id}:role/{role_name}`
      - `keyType` 'KEY_TYPE_UNSPECIFIED' | 'XCHACHA20_POLY1305' — Required. The type of algorithm used to encrypt the data.
  - `destinations` Destination[] — Required. The list of destinations to send the events to.
    - `operatingAccount` ProductAccount — Represents a specific account.
      - `accountId` string — Required. The ID of the account. For example, your Google Ads account ID.
      - `accountType` 'ACCOUNT_TYPE_UNSPECIFIED' | 'GOOGLE_ADS' | 'DISPLAY_VIDEO_PARTNER' | 'DISPLAY_VIDEO_ADVERTISER' | 'DATA_PARTNER' | 'GOOGLE_ANALYTICS_PROPERTY' | 'GOOGLE_AD_MANAGER_AUDIENCE_LINK' | 'FLOODLIGHT_CONFIG' — Required. The type of the account. For example, `GOOGLE_ADS`. Either `account_type` or the deprecated `product` is required. If both are set, the values must match.
      - `product` 'PRODUCT_UNSPECIFIED' | 'GOOGLE_ADS' | 'DISPLAY_VIDEO_PARTNER' | 'DISPLAY_VIDEO_ADVERTISER' | 'DATA_PARTNER' — Deprecated. Use `account_type` instead.
    - `productDestinationId` string — Required. The object within the product account to ingest into. For example, a Google Ads audience ID, a Display & Video 360 audience ID or a Google Ads conversion action ID.
    - `reference` string — Optional. ID for this `Destination` resource, unique within the request. Use to reference this `Destination` in the IngestEventsRequest and IngestAudienceMembersRequest.
    - `loginAccount` ProductAccount — Represents a specific account.
      - `accountId` string — Required. The ID of the account. For example, your Google Ads account ID.
      - `accountType` 'ACCOUNT_TYPE_UNSPECIFIED' | 'GOOGLE_ADS' | 'DISPLAY_VIDEO_PARTNER' | 'DISPLAY_VIDEO_ADVERTISER' | 'DATA_PARTNER' | 'GOOGLE_ANALYTICS_PROPERTY' | 'GOOGLE_AD_MANAGER_AUDIENCE_LINK' | 'FLOODLIGHT_CONFIG' — Required. The type of the account. For example, `GOOGLE_ADS`. Either `account_type` or the deprecated `product` is required. If both are set, the values must match.
      - `product` 'PRODUCT_UNSPECIFIED' | 'GOOGLE_ADS' | 'DISPLAY_VIDEO_PARTNER' | 'DISPLAY_VIDEO_ADVERTISER' | 'DATA_PARTNER' — Deprecated. Use `account_type` instead.
    - `linkedAccount` ProductAccount — Represents a specific account.
      - `accountId` string — Required. The ID of the account. For example, your Google Ads account ID.
      - `accountType` 'ACCOUNT_TYPE_UNSPECIFIED' | 'GOOGLE_ADS' | 'DISPLAY_VIDEO_PARTNER' | 'DISPLAY_VIDEO_ADVERTISER' | 'DATA_PARTNER' | 'GOOGLE_ANALYTICS_PROPERTY' | 'GOOGLE_AD_MANAGER_AUDIENCE_LINK' | 'FLOODLIGHT_CONFIG' — Required. The type of the account. For example, `GOOGLE_ADS`. Either `account_type` or the deprecated `product` is required. If both are set, the values must match.
      - `product` 'PRODUCT_UNSPECIFIED' | 'GOOGLE_ADS' | 'DISPLAY_VIDEO_PARTNER' | 'DISPLAY_VIDEO_ADVERTISER' | 'DATA_PARTNER' — Deprecated. Use `account_type` instead.
  - `events` Event[] — Required. The list of events to send to the specified destinations. At most 2000 Event resources can be sent in a single request.
    - `transactionId` string — Optional. The unique identifier for this event. Required for events sent as an additional data source for tag conversions.
    - `adIdentifiers` AdIdentifiers — Identifiers and other information used to match the conversion event with other online activity (such as ad clicks).
      - `wbraid` string — Optional. The click identifier for clicks associated with web events and originating from iOS devices starting with iOS14.
      - `impressionId` string — Optional. The impression ID associated with this event.
      - `gclid` string — Optional. The Google click ID (gclid) associated with this event.
      - `dclid` string — Optional. The display click ID associated with this event.
      - `encryptedUserIds` EncryptedUserId[] — Optional. Any number of encrypted user IDs.
        - `source` 'ENCRYPTION_SOURCE_UNSPECIFIED' | 'AD_SERVING' | 'DATA_TRANSFER' — Required. Describes whether the encrypted cookie was received from ad serving (the %m macro) or from Data Transfer.
        - `encryptedId` string — Required. The alphanumeric encrypted id.
        - `entityType` 'ENCRYPTION_ENTITY_TYPE_UNSPECIFIED' | 'CAMPAIGN_MANAGER_ACCOUNT' | 'CAMPAIGN_MANAGER_ADVERTISER' | 'DISPLAY_VIDEO_PARTNER' | 'DISPLAY_VIDEO_ADVERTISER' | 'GOOGLE_ADS_CUSTOMER' | 'GOOGLE_AD_MANAGER_NETWORK_CODE' — Required. The encryption entity type. This should match the encryption configuration for ad serving or Data Transfer.
        - `entityId` string, int64 — Required. The encryption entity ID. This should match the encryption configuration for ad serving or Data Transfer.
      - `gbraid` string — Optional. The click identifier for clicks associated with app events and originating from iOS devices starting with iOS14.
      - `sessionAttributes` string — Optional. Session attributes for event attribution and modeling.
      - `landingPageDeviceInfo` DeviceInfo — Information about the device being used (if any) when the event happened.
        - `model` string — Optional. The model of the device.
        - `browserVersion` string — Optional. The version of the browser.
        - `operatingSystem` string — Optional. The operating system or platform of the device.
        - `operatingSystemVersion` string — Optional. The version of the operating system or platform.
        - `userAgent` string — Optional. The user-agent string of the device for the given context.
        - `ipAddress` string — Optional. The IP address of the device for the given context. **Note:** Google Ads does not support IP address matching for end users in the European Economic Area (EEA), United Kingdom (UK), or Switzerland (CH). Add logic to conditionally exclude sharing IP addresses from users from these regions and ensure that you provide users with clear and comprehensive information about the data you collect on your sites, apps, and other properties and get consent where required by law or any applicable Google policies. See the [About offline conversion imports](https://support.google.com/google-ads/answer/2998031) page for more details.
        - `languageCode` string — Optional. The language the device uses in ISO 639-1 format.
        - `screenHeight` integer — Optional. The height of the screen in pixels.
        - `screenWidth` integer — Optional. The width of the screen in pixels.
        - `browser` string — Optional. The brand or type of the browser.
        - `brand` string — Optional. The brand of the device.
        - `category` string — Optional. The category of device. For example, “desktop”, “tablet”, “mobile”, “smart TV”.
      - `matchId` string — Optional. The match ID field used to join this event with a previous event.
      - `mobileDeviceId` string — Optional. The mobile identifier for advertisers. This would be IDFA on iOS, AdID on Android, or other platforms’ identifiers for advertisers.
    - `eventTimestamp` string, google-datetime — Required. The time the event occurred.
    - `conversionValue` number, double — Optional. The conversion value associated with the event, for value-based conversions.
    - `experimentalFields` ExperimentalField[] — Optional. A list of key/value pairs for experimental fields that may eventually be promoted to be part of the API.
      - `field` string — Optional. The name of the field to use.
      - `value` string — Optional. The value the field to set.
    - `eventLocation` EventLocation — The location where the event occurred.
      - `regionCode` string — Optional. The 2-letter CLDR region code of the user's address.
      - `subcontinentCode` string — Optional. The subcontinent code in UN M49 format where the event occurred.
      - `storeId` string — Optional. Required for Store Sales. The identifier to represent a physical store where the event happened.
      - `subdivisionCode` string — Optional. The ISO 3166-2 subdivision code where the event occurred.
      - `continentCode` string — Optional. The continent code in UN M49 format where the event occurred.
      - `city` string — Optional. The name of the city where the event occurred.
    - `eventSource` 'EVENT_SOURCE_UNSPECIFIED' | 'WEB' | 'APP' | 'IN_STORE' | 'PHONE' | 'MESSAGE' | 'OTHER' — Optional. Signal for where the event happened (web, app, in-store, etc.).
    - `additionalEventParameters` EventParameter[] — Optional. A bucket of any [event parameters](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events) to be included within the event that were not already specified using other structured fields.
      - `parameterName` string — Required. The name of the parameter to use.
      - `value` string — Required. The string representation of the value of the parameter to set.
    - `appInstanceId` string — Optional. A unique identifier for the user instance of an app client for this GA4 app stream.
    - `thirdPartyUserData` UserData — Data that identifies the user. At least one identifier is required.
      - `userIdentifiers` UserIdentifier[] — Required. The identifiers for the user. It's possible to provide multiple instances of the same type of data (for example, multiple email addresses). To increase the likelihood of a match, provide as many identifiers as possible. At most 10 `userIdentifiers` can be provided in a single AudienceMember or Event.
        - `emailAddress` string — Hashed email address using SHA-256 hash function after normalization.
        - `address` AddressInfo — Address information for the user.
          - `givenName` string — Required. Given (first) name of the user, all lowercase, with no punctuation, no leading or trailing whitespace, and hashed as SHA-256.
          - `postalCode` string — Required. The postal code of the user's address.
          - `regionCode` string — Required. The 2-letter region code in ISO-3166-1 alpha-2 of the user's address.
          - `familyName` string — Required. Family (last) name of the user, all lowercase, with no punctuation, no leading or trailing whitespace, and hashed as SHA-256.
        - `phoneNumber` string — Hashed phone number using SHA-256 hash function after normalization (E164 standard).
    - `eventDeviceInfo` DeviceInfo — Information about the device being used (if any) when the event happened.
      - `model` string — Optional. The model of the device.
      - `browserVersion` string — Optional. The version of the browser.
      - `operatingSystem` string — Optional. The operating system or platform of the device.
      - `operatingSystemVersion` string — Optional. The version of the operating system or platform.
      - `userAgent` string — Optional. The user-agent string of the device for the given context.
      - `ipAddress` string — Optional. The IP address of the device for the given context. **Note:** Google Ads does not support IP address matching for end users in the European Economic Area (EEA), United Kingdom (UK), or Switzerland (CH). Add logic to conditionally exclude sharing IP addresses from users from these regions and ensure that you provide users with clear and comprehensive information about the data you collect on your sites, apps, and other properties and get consent where required by law or any applicable Google policies. See the [About offline conversion imports](https://support.google.com/google-ads/answer/2998031) page for more details.
      - `languageCode` string — Optional. The language the device uses in ISO 639-1 format.
      - `screenHeight` integer — Optional. The height of the screen in pixels.
      - `screenWidth` integer — Optional. The width of the screen in pixels.
      - `browser` string — Optional. The brand or type of the browser.
      - `brand` string — Optional. The brand of the device.
      - `category` string — Optional. The category of device. For example, “desktop”, “tablet”, “mobile”, “smart TV”.
    - `lastUpdatedTimestamp` string, google-datetime — Optional. The last time the event was updated.
    - `userId` string — Optional. A unique identifier for a user, as defined by the advertiser.
    - `consent` Consent — [Digital Markets Act (DMA)](//digital-markets-act.ec.europa.eu/index_en) consent settings for the user.
      - `adPersonalization` 'CONSENT_STATUS_UNSPECIFIED' | 'CONSENT_GRANTED' | 'CONSENT_DENIED' — Optional. Represents if the user consents to ad personalization.
      - `adUserData` 'CONSENT_STATUS_UNSPECIFIED' | 'CONSENT_GRANTED' | 'CONSENT_DENIED' — Optional. Represents if the user consents to ad user data.
    - `cartData` CartData — The cart data associated with the event.
      - `merchantId` string — Optional. The Merchant Center ID associated with the items.
      - `transactionDiscount` number, double — Optional. The sum of all discounts associated with the transaction.
      - `items` Item[] — Optional. The list of items associated with the event.
        - `merchantFeedLanguageCode` string — Optional. The language code in ISO 639-1 associated with the Merchant Center feed where your items are uploaded.
        - `itemId` string — Optional. A unique identifier to reference the item.
        - `customVariables` ItemCustomVariable[] — Optional. Additional key/value pair information to send to the conversion containers (conversion action or Floodlight activity), when tracking per-item conversions.
          - `value` string — Optional. The value to store for the custom variable.
          - `variable` string — Optional. The name of the custom variable to set. If the variable is not found for the given destination, it will be ignored.
          - `destinationReferences` string[] — Optional. Reference string used to determine which of the Event.destination_references the custom variable should be sent to. If empty, the Event.destination_references will be used.
        - `quantity` string, int64 — Optional. The number of this item associated with the event.
        - `merchantFeedLabel` string — Optional. The feed label of the Merchant Center feed. If countries are still being used, the 2-letter country code in ISO-3166-1 alpha-2 can be used instead. For Store Sales events this will override the value set at the cart level. This field is ignored for other events.
        - `unitPrice` number, double — Optional. The unit price excluding tax, shipping, and any transaction level discounts.
        - `additionalItemParameters` ItemParameter[] — Optional. A bucket of any [event parameters related to an item](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference/events) to be included within the event that were not already specified using other structured fields.
          - `parameterName` string — Required. The name of the parameter to use.
          - `value` string — Required. The string representation of the value of the parameter to set.
        - `merchantProductId` string — Optional. The product ID within the Merchant Center account.
        - `conversionValue` number, double — Optional. The conversion value associated with this item within the event, for cases where the conversion value is different for each item.
        - `merchantId` string — Optional. The Merchant Center ID associated with the item. For Store Sales events this will override the value set at the cart level. This field is ignored for other events.
      - `merchantFeedLabel` string — Optional. The Merchant Center feed label associated with the feed of the items.
      - `merchantFeedLanguageCode` string — Optional. The language code in ISO 639-1 associated with the Merchant Center feed of the items.where your items are uploaded.
      - `couponCodes` string[] — Optional. The list of coupon codes that were applied to the cart. Cart-level and item-level coupon codes are independent. If the event is for a Google Analytics destination, only provide a single coupon code. Google Analytics ignores additional coupon codes.
    - `conversionCount` number, double — Optional. The conversion quantity associated with the event, for counting-based conversions.
    - `clientId` string — Optional. A unique identifier for the user instance of a web client for this GA4 web stream.
    - `eventName` string — Optional. The name of the event. Required for GA4 events.
    - `userProperties` UserProperties — Advertiser-assessed information about the user at the time that the event happened. See https://support.google.com/google-ads/answer/14007601 for more details.
      - `customerType` 'CUSTOMER_TYPE_UNSPECIFIED' | 'NEW' | 'RETURNING' | 'REENGAGED' — Optional. Type of the customer associated with the event.
      - `customerValueBucket` 'CUSTOMER_VALUE_BUCKET_UNSPECIFIED' | 'LOW' | 'MEDIUM' | 'HIGH' — Optional. The advertiser-assessed value of the customer.
      - `additionalUserProperties` UserProperty[] — Optional. A bucket of any additional [user properties](https://developers.google.com/analytics/devguides/collection/protocol/ga4/user-properties) for the user associated with this event.
        - `propertyName` string — Required. The name of the user property to use.
        - `value` string — Required. The string representation of the value of the user property to use.
    - `currency` string — Optional. The currency code associated with all monetary values within this event.
    - `customVariables` CustomVariable[] — Optional. Additional key/value pair information to send to the conversion containers (conversion action or FL activity).
      - `value` string — Optional. The value to store for the custom variable.
      - `variable` string — Optional. The name of the custom variable to set. If the variable is not found for the given destination, it will be ignored.
      - `destinationReferences` string[] — Optional. Reference string used to determine which of the Event.destination_references the custom variable should be sent to. If empty, the Event.destination_references will be used.
    - `userData` UserData — Data that identifies the user. At least one identifier is required.
      - `userIdentifiers` UserIdentifier[] — Required. The identifiers for the user. It's possible to provide multiple instances of the same type of data (for example, multiple email addresses). To increase the likelihood of a match, provide as many identifiers as possible. At most 10 `userIdentifiers` can be provided in a single AudienceMember or Event.
        - `emailAddress` string — Hashed email address using SHA-256 hash function after normalization.
        - `address` AddressInfo — Address information for the user.
          - `givenName` string — Required. Given (first) name of the user, all lowercase, with no punctuation, no leading or trailing whitespace, and hashed as SHA-256.
          - `postalCode` string — Required. The postal code of the user's address.
          - `regionCode` string — Required. The 2-letter region code in ISO-3166-1 alpha-2 of the user's address.
          - `familyName` string — Required. Family (last) name of the user, all lowercase, with no punctuation, no leading or trailing whitespace, and hashed as SHA-256.
        - `phoneNumber` string — Hashed phone number using SHA-256 hash function after normalization (E164 standard).
    - `destinationReferences` string[] — Optional. Reference string used to determine the destination. If empty, the event will be sent to all destinations in the request.

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/datamanager.md) · [All operations](https://skmtc.dev/google/apis/datamanager/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/datamanager/revisions/a26378ca9ba8/schema)
