Use the [`IngestEvents`](https://developers.google.com/data-manager/api/reference/rest/v1/events/ingest) method to make
[adjustments](https://support.google.com/google-ads/answer/7686447) to previously recorded Google Ads conversions.
In the Data Manager API, an adjustment can restate a conversion value or supplement
user data.

If you're migrating from the Google Ads API, see
[Upgrade from the Google Ads API](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade) to compare how
adjustments are handled in each API.

## Supported conversion types

You can adjust the following Google Ads conversion types:

- [Multi-source conversions](https://developers.google.com/data-manager/api/devguides/events/google-ads/online): Conversions recorded by your website's Google tag for a `WEBSITE` conversion action.
- [Offline conversions and enhanced conversions for leads](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline): Previously uploaded offline events for an `UPLOAD_CLICKS` conversion action.

> [!NOTE]
> **Note:** The Data Manager API doesn't support adjustments for **store sales conversions** or **call conversions**.

## How adjustments work

Within the same conversion action, Google Ads matches events using
[`transactionId`](https://developers.google.com/data-manager/api/reference/rest/v1/events/ingest#Event.FIELDS.transaction_id):

- If the `transactionId` matches an existing conversion for the same conversion action, Data Manager API treats the request as a **conversion
  adjustment**.
- If the `transactionId` doesn't match an existing conversion, Google Ads creates a **new conversion** . See [Unmatched events](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments#unmatched-events).

## Send an adjustment

To adjust an existing conversion, send an [`IngestEvents`](https://developers.google.com/data-manager/api/reference/rest/v1/events/ingest) request
that includes:

- The same `transactionId` as the original event.
- The same destination and conversion action as the original event.
- The updated values for the fields you want to adjust.
- All fields required for an event, including at least one identifier, such as `adIdentifiers` or `userData`. See the event and identifier requirements for [offline conversions](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events#event_field_requirements) or [multi-source conversions](https://developers.google.com/data-manager/api/devguides/events/google-ads/online/send-events#event_field_requirements).

> [!IMPORTANT]
> **Key Point:** The Data Manager API validates each event when it receives the request, before it looks for a matching `transactionId`. An adjustment must meet the same field and identifier requirements as a new event. If it doesn't, the request fails with an error such as `NO_IDENTIFIERS_PROVIDED`.

We recommend that you send the same identifiers that you sent or captured with
the original event. If the `transactionId` doesn't match an existing conversion,
Google Ads uses these identifiers to attribute the
[new conversion](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments#unmatched-events).

You don't need to specify an adjustment type. Data Manager API infers how to process
the request based on `transactionId` and the fields you provide.

For more information on sending ingestion requests, see the guides to sending
events for [offline conversions](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events#send_the_request) or
[multi-source conversions](https://developers.google.com/data-manager/api/devguides/events/google-ads/online/send-events#send_the_request).

## Supported fields

The following table lists how Google Ads applies each field when an event matches
an existing conversion:

| Field | Behavior |
|---|---|
| [`conversionValue`](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments#value-restatements), [`currency`](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments#value-restatements) | **Overwritten.** The new value replaces the recorded value. |
| [`userData`](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments#user-data) | **Supplemented** if the original event had no user data, otherwise **ignored**. |
| [All other fields](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments#other-fields), such as `adIdentifiers.gclid` | **Not updated.** Google Ads keeps the values recorded with the original event. Required fields must still be present. |

### Conversion values

Send a new `conversionValue` and `currency` to restate the value of a recorded
conversion. The new value overrides the previously recorded value in reporting
and bidding, without incrementing the conversion count.

> [!NOTE]
> **Note:** During the initial 14-day trial period for multi-source conversions, value updates are disabled. The tag's value won't be overwritten in Google Ads reporting until the trial period ends.

### User data

Here's how Google Ads handles `userData`, such as an email address or phone number:

- **Supplemented if missing:** If the original event was captured without user
  data, the adjustment attaches the user data to improve attribution.

  > [!NOTE]
  > **Note:** We recommend uploading supplemental offline data within 24 hours of the original event for optimal performance.

- **Ignored if present:** If the Google tag or a previous upload already
  captured user data, the new user data is ignored. The existing user data
  isn't overwritten or appended to.

### Other fields

Identifiers and metadata other than conversion value, currency, and user data,
such as `adIdentifiers.gclid`, can't be updated for matched events. Google Ads
keeps the values recorded with the original event.

You must still include any of these fields that are
[required](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments#send-an-adjustment), such as at least one identifier. The
Data Manager API validates them for every event.

## Unmatched events

If the `transactionId` doesn't match an existing event, the request is treated
as a **new conversion** upload instead of an adjustment.

Google Ads attempts to attribute the new conversion to an ad click using the
identifiers you provided, such as `adIdentifiers.gclid` or `userData`.

> [!NOTE]
> **Note:** During the initial 14-day trial period for multi-source conversions, newly created conversions appear in reporting but won't be used for bidding. After the trial ends, they automatically become biddable.