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

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

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

## Request

- Base URL: `https://searchads360.googleapis.com`
- URL: `https://searchads360.googleapis.com/v23/customers/{customersId}:uploadConversionAdjustments`
- 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:uploadConversionAdjustments/post.ts> (a function with typed inputs; its response is checked against the schema)

Processes the given conversion adjustments. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [PartialFailureError]() [QuotaError]() [RequestError]()

## Path parameters

- `customersId` string, required

## Request body

- GoogleAdsSearchads360V23ServicesUploadConversionAdjustmentsRequest: Request message for ConversionAdjustmentUploadService.UploadConversionAdjustments.
  - `conversionAdjustments` GoogleAdsSearchads360V23ServicesConversionAdjustment[]: Required. The conversion adjustments that are being uploaded.
    - `adjustmentDateTime` string: The date time at which the adjustment occurred. Must be after the conversion_date_time. The timezone must be specified. The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
    - `adjustmentType` 'UNSPECIFIED' | 'UNKNOWN' | 'RETRACTION' | 'RESTATEMENT' | 'ENHANCEMENT': The adjustment type.
    - `conversionAction` string: Resource name of the conversion action associated with this conversion adjustment. Note: Although this resource name consists of a customer id and a conversion action id, validation will ignore the customer id and use the conversion action id as the sole identifier of the conversion action.
    - `gclidDateTimePair` GoogleAdsSearchads360V23ServicesGclidDateTimePair: Uniquely identifies a conversion that was reported without an order ID specified.
      - `conversionDateTime` string: The date time at which the original conversion for this adjustment occurred. The timezone must be specified. The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
      - `gclid` string: Google click ID (gclid) associated with the original conversion for this adjustment.
    - `orderId` string: The order ID of the conversion to be adjusted. If the conversion was reported with an order ID specified, that order ID must be used as the identifier here. The order ID is required for enhancements.
    - `restatementValue` GoogleAdsSearchads360V23ServicesRestatementValue: Contains information needed to restate a conversion's value.
      - `adjustedValue` number, double: The restated conversion value. This is the value of the conversion after restatement. For example, to change the value of a conversion from 100 to 70, an adjusted value of 70 should be reported. NOTE: If you want to upload a second restatement with a different adjusted value, it must have a new, more recent, adjustment occurrence time. Otherwise, it will be treated as a duplicate of the previous restatement and ignored.
      - `currencyCode` string: The currency of the restated value. If not provided, then the default currency from the conversion action is used, and if that is not set then the account currency is used. This is the ISO 4217 3-character currency code for example, USD or EUR.
    - `userAgent` string: The user agent to enhance the original conversion. This can be found in your user's HTTP request header when they convert on your web page. Example, "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X)". User agent can only be specified in enhancements with user identifiers.
    - `userIdentifiers` GoogleAdsSearchads360V23CommonUserIdentifier[]: The user identifiers to enhance the original conversion. ConversionAdjustmentUploadService only accepts user identifiers in enhancements. The maximum number of user identifiers for each enhancement is 5.
      - `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
  - `jobId` integer: Optional. Optional input to set job ID. Must be a non-negative number that is less than 2^31 if provided. If this field is not provided, the API will generate a job ID in the range [2^31, (2^63)-1]. The API will return the value for this request in the `job_id` field of the `UploadConversionAdjustmentsResponse`.
  - `partialFailure` boolean: Required. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. This should always be set to true. See https://developers.google.com/google-ads/api/docs/best-practices/partial-failures for more information about partial failure.
  - `validateOnly` boolean: If true, the request is validated but not executed. Only errors are returned, not results.

## Response `200`

Successful response

- GoogleAdsSearchads360V23ServicesUploadConversionAdjustmentsResponse: Response message for ConversionAdjustmentUploadService.UploadConversionAdjustments.
  - `jobId` string, int64: Job ID for the upload batch.
  - `partialFailureError` GoogleRpcStatus: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  - `results` GoogleAdsSearchads360V23ServicesConversionAdjustmentResult[]: Returned for successfully processed conversion adjustments. Proto will be empty for rows that received an error. Results are not returned when validate_only is true.
    - `adjustmentDateTime` string: The date time at which the adjustment occurred. The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
    - `adjustmentType` 'UNSPECIFIED' | 'UNKNOWN' | 'RETRACTION' | 'RESTATEMENT' | 'ENHANCEMENT': The adjustment type.
    - `conversionAction` string: Resource name of the conversion action associated with this conversion adjustment.
    - `gclidDateTimePair` GoogleAdsSearchads360V23ServicesGclidDateTimePair: Uniquely identifies a conversion that was reported without an order ID specified.
      - `conversionDateTime` string: The date time at which the original conversion for this adjustment occurred. The timezone must be specified. The format is "yyyy-mm-dd hh:mm:ss+|-hh:mm", for example, "2019-01-01 12:32:45-08:00".
      - `gclid` string: Google click ID (gclid) associated with the original conversion for this adjustment.
    - `orderId` string: The order ID of the conversion to be adjusted.

---

[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)
