---
title: "POST /v23/customers/{customersId}:uploadUserData"
method: POST
path: "/v23/customers/{customersId}:uploadUserData"
tags: ["customers"]
---

# POST /v23/customers/{customersId}:uploadUserData

`POST /v23/customers/{customersId}:uploadUserData`

## Request

- Base URL: `https://searchads360.googleapis.com`
- URL: `https://searchads360.googleapis.com/v23/customers/{customersId}:uploadUserData`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/doubleclicksearch`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/doubleclicksearch`
- TypeScript: <https://skmtc.dev/google/apis/searchads360/docs/v23/customers/:customersId:uploadUserData/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads the given user data. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [CollectionSizeError]() [FieldError]() [HeaderError]() [InternalError]() [MutateError]() [OfflineUserDataJobError]() [QuotaError]() [RequestError]() [UserDataError]()

## Path parameters

- `customersId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesUploadUserDataRequest: Request message for UserDataService.UploadUserData
  - `customerMatchUserListMetadata` GoogleAdsSearchads360V23CommonCustomerMatchUserListMetadata: Metadata for customer match user list.
    - `consent` GoogleAdsSearchads360V23CommonConsent: Consent
      - `adPersonalization` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.
      - `adUserData` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad user data.
    - `userList` string: The resource name of remarketing list to update data. Required for job of CUSTOMER_MATCH_USER_LIST type.
  - `operations` GoogleAdsSearchads360V23ServicesUserDataOperation[]: Required. The list of operations to be done.
    - `create` GoogleAdsSearchads360V23CommonUserData: User data holding user identifiers and attributes.
      - `consent` GoogleAdsSearchads360V23CommonConsent: Consent
        - `adPersonalization` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.
        - `adUserData` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad user data.
      - `transactionAttribute` GoogleAdsSearchads360V23CommonTransactionAttribute: Attribute of the store sales transaction.
        - `conversionAction` string: The resource name of conversion action to report conversions to. Required.
        - `currencyCode` string: Transaction currency code. ISO 4217 three-letter code is used. Required.
        - `customValue` string: Value of the custom variable for each transaction. Allowed only if a custom key is provided in the store sales metadata.
        - `itemAttribute` GoogleAdsSearchads360V23CommonItemAttribute: Item attributes of the transaction.
          - `countryCode` string: Common Locale Data Repository (CLDR) territory code of the country associated with the feed where your items are uploaded. See https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes for more information. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple countries.
          - `itemId` string: A unique identifier of a product. It must be the exact same Merchant Center Item ID you use in your Google Merchant Center for this product. Required.
          - `languageCode` string: ISO 639-1 code of the language associated with the feed where your items are uploaded. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple languages.
          - `merchantId` string, int64: ID of the Merchant Center Account. Required.
          - `quantity` string, int64: The number of items sold. Defaults to 1 if not set.
        - `orderId` string: Transaction order id. Useful to group transactions which are part of the same order.
        - `storeAttribute` GoogleAdsSearchads360V23CommonStoreAttribute: Store attributes of the transaction.
          - `storeCode` string: Store code from https://support.google.com/business/answer/3370250#storecode
        - `transactionAmountMicros` number, double: Transaction amount in micros. Required. Transaction amount in micros needs to be greater than 1000. If item Attributes are provided, it represents the total value of the items, after multiplying the unit price per item by the quantity provided in the ItemAttributes.
        - `transactionDateTime` string: Timestamp when transaction occurred. Required. The format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default. Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30+03:00"
      - `userAttribute` GoogleAdsSearchads360V23CommonUserAttribute: User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job type.
        - `acquisitionDateTime` string: Timestamp when the user was acquired. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
        - `averagePurchaseCount` integer: Advertiser defined average number of purchases that are made by the user in a 30 day period.
        - `averagePurchaseValueMicros` string, int64: Advertiser defined average purchase value in micros for the user.
        - `eventAttribute` GoogleAdsSearchads360V23CommonEventAttribute[]: Optional. Advertiser defined events and their attributes. All the values in the nested fields are required. Currently this field is in beta.
          - `event` string: Required. Advertiser defined event to be used for remarketing. The accepted values are "Viewed", "Cart", "Purchased" and "Recommended".
          - `eventDateTime` string: Required. Timestamp at which the event happened. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
          - `itemAttribute` GoogleAdsSearchads360V23CommonEventItemAttribute[]: Required. Item attributes of the event.
            - `itemId` string: Optional. A unique identifier of a product. It can be either the Merchant Center Item ID or GTIN (Global Trade Item Number).
        - `firstPurchaseDateTime` string: Optional. Timestamp of the first purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
        - `lastPurchaseDateTime` string: Timestamp of the last purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
        - `lifecycleStage` string: Optional. Advertiser defined lifecycle stage for the user. The accepted values are "Lead", "Active" and "Churned".
        - `lifetimeValueBucket` integer: Advertiser defined lifetime value bucket for the user. The valid range for a lifetime value bucket is from 1 (low) to 10 (high), except for remove operation where 0 will also be accepted.
        - `lifetimeValueMicros` string, int64: Advertiser defined lifetime value for the user.
        - `shoppingLoyalty` GoogleAdsSearchads360V23CommonShoppingLoyalty: The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list.
          - `loyaltyTier` string: The membership tier. It is a free-form string as each merchant may have their own loyalty system. For example, it could be a number from 1 to 10, or a string such as "Golden" or "Silver", or even empty string "".
      - `userIdentifiers` GoogleAdsSearchads360V23CommonUserIdentifier[]: User identification info.
        - `addressInfo` GoogleAdsSearchads360V23CommonOfflineUserAddressInfo: Address identifier of offline data.
          - `city` string: City of the address. Only accepted for Store Sales.
          - `countryCode` string: 2-letter country code in ISO-3166-1 alpha-2 of the user's address.
          - `hashedFirstName` string: First name of the user, which is hashed as SHA-256 after normalized (Lowercase all characters; Remove any extra spaces before, after, and in between).
          - `hashedLastName` string: Last name of the user, which is hashed as SHA-256 after normalized (lower case only and no punctuation).
          - `hashedStreetAddress` string: The street address of the user hashed using SHA-256 hash function after normalization (lower case only). Only accepted for ConversionAdjustmentUploadService.
          - `postalCode` string: Postal code of the user's address.
          - `state` string: State code of the address. Only accepted for Store Sales.
        - `hashedEmail` string: Hashed email address using SHA-256 hash function after normalization.
        - `hashedPhoneNumber` string: Hashed phone number using SHA-256 hash function after normalization (E164 standard).
        - `mobileId` string: Mobile device ID (advertising ID/IDFA).
        - `thirdPartyUserId` string: Advertiser-assigned user ID for Customer Match upload, or third-party-assigned user ID for
        - `userIdentifierSource` 'UNSPECIFIED' | 'UNKNOWN' | 'FIRST_PARTY' | 'THIRD_PARTY': Source of the user identifier when the upload is from Store Sales
    - `remove` GoogleAdsSearchads360V23CommonUserData: User data holding user identifiers and attributes.
      - `consent` GoogleAdsSearchads360V23CommonConsent: Consent
        - `adPersonalization` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad personalization. This can only be set for OfflineUserDataJobService and UserDataService.
        - `adUserData` 'UNSPECIFIED' | 'UNKNOWN' | 'GRANTED' | 'DENIED': This represents consent for ad user data.
      - `transactionAttribute` GoogleAdsSearchads360V23CommonTransactionAttribute: Attribute of the store sales transaction.
        - `conversionAction` string: The resource name of conversion action to report conversions to. Required.
        - `currencyCode` string: Transaction currency code. ISO 4217 three-letter code is used. Required.
        - `customValue` string: Value of the custom variable for each transaction. Allowed only if a custom key is provided in the store sales metadata.
        - `itemAttribute` GoogleAdsSearchads360V23CommonItemAttribute: Item attributes of the transaction.
          - `countryCode` string: Common Locale Data Repository (CLDR) territory code of the country associated with the feed where your items are uploaded. See https://developers.google.com/google-ads/api/reference/data/codes-formats#country-codes for more information. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple countries.
          - `itemId` string: A unique identifier of a product. It must be the exact same Merchant Center Item ID you use in your Google Merchant Center for this product. Required.
          - `languageCode` string: ISO 639-1 code of the language associated with the feed where your items are uploaded. This information is useful to differentiate product information in cases where a product (identified by item_id) is associated with multiple languages.
          - `merchantId` string, int64: ID of the Merchant Center Account. Required.
          - `quantity` string, int64: The number of items sold. Defaults to 1 if not set.
        - `orderId` string: Transaction order id. Useful to group transactions which are part of the same order.
        - `storeAttribute` GoogleAdsSearchads360V23CommonStoreAttribute: Store attributes of the transaction.
          - `storeCode` string: Store code from https://support.google.com/business/answer/3370250#storecode
        - `transactionAmountMicros` number, double: Transaction amount in micros. Required. Transaction amount in micros needs to be greater than 1000. If item Attributes are provided, it represents the total value of the items, after multiplying the unit price per item by the quantity provided in the ItemAttributes.
        - `transactionDateTime` string: Timestamp when transaction occurred. Required. The format is "YYYY-MM-DD HH:MM:SS[+/-HH:MM]", where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default. Examples: "2018-03-05 09:15:00" or "2018-02-01 14:34:30+03:00"
      - `userAttribute` GoogleAdsSearchads360V23CommonUserAttribute: User attribute, can only be used with CUSTOMER_MATCH_WITH_ATTRIBUTES job type.
        - `acquisitionDateTime` string: Timestamp when the user was acquired. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
        - `averagePurchaseCount` integer: Advertiser defined average number of purchases that are made by the user in a 30 day period.
        - `averagePurchaseValueMicros` string, int64: Advertiser defined average purchase value in micros for the user.
        - `eventAttribute` GoogleAdsSearchads360V23CommonEventAttribute[]: Optional. Advertiser defined events and their attributes. All the values in the nested fields are required. Currently this field is in beta.
          - `event` string: Required. Advertiser defined event to be used for remarketing. The accepted values are "Viewed", "Cart", "Purchased" and "Recommended".
          - `eventDateTime` string: Required. Timestamp at which the event happened. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
          - `itemAttribute` GoogleAdsSearchads360V23CommonEventItemAttribute[]: Required. Item attributes of the event.
            - `itemId` string: Optional. A unique identifier of a product. It can be either the Merchant Center Item ID or GTIN (Global Trade Item Number).
        - `firstPurchaseDateTime` string: Optional. Timestamp of the first purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
        - `lastPurchaseDateTime` string: Timestamp of the last purchase made by the user. The format is YYYY-MM-DD HH:MM:SS[+/-HH:MM], where [+/-HH:MM] is an optional timezone offset from UTC. If the offset is absent, the API will use the account's timezone as default.
        - `lifecycleStage` string: Optional. Advertiser defined lifecycle stage for the user. The accepted values are "Lead", "Active" and "Churned".
        - `lifetimeValueBucket` integer: Advertiser defined lifetime value bucket for the user. The valid range for a lifetime value bucket is from 1 (low) to 10 (high), except for remove operation where 0 will also be accepted.
        - `lifetimeValueMicros` string, int64: Advertiser defined lifetime value for the user.
        - `shoppingLoyalty` GoogleAdsSearchads360V23CommonShoppingLoyalty: The shopping loyalty related data. Shopping utilizes this data to provide users with a better experience. Accessible only to merchants on the allow-list.
          - `loyaltyTier` string: The membership tier. It is a free-form string as each merchant may have their own loyalty system. For example, it could be a number from 1 to 10, or a string such as "Golden" or "Silver", or even empty string "".
      - `userIdentifiers` GoogleAdsSearchads360V23CommonUserIdentifier[]: User identification info.
        - `addressInfo` GoogleAdsSearchads360V23CommonOfflineUserAddressInfo: Address identifier of offline data.
          - `city` string: City of the address. Only accepted for Store Sales.
          - `countryCode` string: 2-letter country code in ISO-3166-1 alpha-2 of the user's address.
          - `hashedFirstName` string: First name of the user, which is hashed as SHA-256 after normalized (Lowercase all characters; Remove any extra spaces before, after, and in between).
          - `hashedLastName` string: Last name of the user, which is hashed as SHA-256 after normalized (lower case only and no punctuation).
          - `hashedStreetAddress` string: The street address of the user hashed using SHA-256 hash function after normalization (lower case only). Only accepted for ConversionAdjustmentUploadService.
          - `postalCode` string: Postal code of the user's address.
          - `state` string: State code of the address. Only accepted for Store Sales.
        - `hashedEmail` string: Hashed email address using SHA-256 hash function after normalization.
        - `hashedPhoneNumber` string: Hashed phone number using SHA-256 hash function after normalization (E164 standard).
        - `mobileId` string: Mobile device ID (advertising ID/IDFA).
        - `thirdPartyUserId` string: Advertiser-assigned user ID for Customer Match upload, or third-party-assigned user ID for
        - `userIdentifierSource` 'UNSPECIFIED' | 'UNKNOWN' | 'FIRST_PARTY' | 'THIRD_PARTY': Source of the user identifier when the upload is from Store Sales

## Response `200`

Successful response

- GoogleAdsSearchads360V23ServicesUploadUserDataResponse: Response message for UserDataService.UploadUserData Uploads made through this service will not be visible under the 'Segment members' section for the Customer Match List in the Google Ads UI.
  - `receivedOperationsCount` integer: Number of upload data operations received by API.
  - `uploadDateTime` string: The date time at which the request was received by API, formatted as "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".

---

[API](https://skmtc.dev/google/apis/searchads360.md) - [All operations](https://skmtc.dev/google/apis/searchads360/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/searchads360/revisions/4a4511f84b18?raw)
