Use the mappings in the tables to map an
[`UploadClickConversionRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/UploadClickConversionsRequest) in the Google Ads API to its
[`IngestEventsRequest`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#ingesteventsrequest) equivalent in the Data Manager API.

## Authentication


The Data Manager API requires credentials with a different scope than the
Google Ads API. Follow the steps in
[Set up API access](https://developers.google.com/data-manager/api/devguides/quickstart/set-up-access.md.txt) to generate new
credentials that include the Data Manager API scope.

## Request fields

| [`UploadClickConversionRequest`](https://developers.google.com/google-ads/api/reference/rpc/latest/UploadClickConversionsRequest) (Google Ads API) | [`IngestEventsRequest`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#ingesteventsrequest) (Data Manager API) | Notes |
|---|---|---|
| - `customer_id` - `login-customer-id` request header - `linked-customer-id` request header - `conversion_action` | `destinations` | See [Customer and conversion action fields](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade/field-mappings.md.txt#customer-conversion). |
| No equivalent | `consent` | Optional default consent settings for events in the request. You can override this value for an individual event by setting the `consent` field of `Event`. |
| No equivalent | `encoding` | **Required:** Set to the [`Encoding`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#encoding) used for `UserIdentifier` values. |
| No equivalent | `encryption_info` | Set if the request contains encrypted values. See [Encryption](https://developers.google.com/data-manager/api/devguides/concepts/encryption.md.txt) for details. |
| `job_id` | No equivalent | Use the `request_id` returned in the response to retrieve [diagnostics](https://developers.google.com/data-manager/api/devguides/diagnostics.md.txt). |
| `partial_failure` | No equivalent | The Data Manager API [uses a fast-fail error model](https://developers.google.com/data-manager/api/devguides/concepts/understand-errors.md.txt#fast-fail). If any field of an `IngestEventsRequest` fails validation, the Data Manager API rejects the entire request. |
| `validate_only` | `validate_only` |   |
| `conversions` | `events` | The list of conversions or events. See the [Conversion fields section](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade/field-mappings.md.txt#conversion) for details. |

## Customer and conversion action fields

In the Google Ads API, you set the `login-customer-id` and `linked-customer-id`
[request headers](https://developers.google.com/google-ads/api/docs/concepts/call-structure.md.txt#request-headers) for different authentication scenarios.

In the Data Manager API, you specify login and linked customer information using
fields of a `Destination` instead of request headers. Check out
[Configure destinations](https://developers.google.com/data-manager/api/devguides/concepts/destinations.md.txt) for more information about
destinations.

Here's how to map the Google Ads API fields for a single `conversion_action`
to the equivalent fields in a `Destination`:

| Google Ads API | [`Destination`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#destination) (Data Manager API) | Notes |
|---|---|---|
| `customer_id` of the request | `operating_account` | Set the `account_id` to the customer ID of the [Google Ads conversion account](https://developers.google.com/google-ads/api/docs/conversions/getting-started.md.txt#conversion_tracking_setup). This [may differ from the `customer_id` in your Google Ads API request](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade.md.txt#account-requirements). Set the `account_type` of the `operating_account` to `GOOGLE_ADS`. |
| `developer-token` request header | No equivalent | The Data Manager API doesn't use developer tokens. The Google Ads API also [no longer requires](https://developers.google.com/google-ads/api/docs/api-policy/developer-token.md.txt) them. |
| `login-customer-id` request header | `login_account` | Set the `account_id` to the customer ID of the login account. Set `account_type` to `GOOGLE_ADS` if the login account is a Google Ads account, or `DATA_PARTNER` if the login account is a data partner account. |
| `linked-customer-id` request header | `linked_account` | If you're accessing the `operating_account` using a [partner link](https://developers.google.com/data-manager/api/devguides/accounts/partner-links.md.txt), set the `account_id` to the customer ID of the linked account and set `account_type` to `DATA_PARTNER`. Otherwise, don't set the `linked_account` field. |
| `conversion_action` of a `ClickConversion` | `product_destination_id` | Set to the numeric ID of the conversion action. Don't use the resource name of the `ConversionAction`. |
| No equivalent | `reference` | A user-defined identifier for the `Destination`. Set this field if you are [sending conversions for multiple conversion actions in a single request](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events.md.txt#multiple-destinations). |

## Conversion fields

| [`ClickConversion`](https://developers.google.com/google-ads/api/reference/rpc/latest/ClickConversion) (Google Ads API) | [`Event`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#event) (Data Manager API) | Notes |
|---|---|---|
| `cart_data` | `cart_data` | See [Cart data fields](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade/field-mappings.md.txt#cart-data) for details. |
| `consent` | `consent` | Both APIs use a similar `Consent` object (`ad_user_data`, `ad_personalization`). For the Data Manager API, you can also set consent for all events in a request by setting the request-level `consent` field. |
| `conversion_action` | `destination_references` | If [sending conversions for multiple conversion actions in a single request](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events.md.txt#multiple-destinations), set this field to the corresponding `reference` of the [destination](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade/field-mappings.md.txt#customer-conversion). |
| `conversion_date_time` | `event_timestamp` | - If using the JSON format, set to a value in [RFC 3339](https://www.ietf.org/rfc/rfc3339) format, which differs slightly from the [Google Ads API date and time format](https://developers.google.com/google-ads/api/docs/conversions/upload-offline.md.txt#populate-click-conversions). - If using protocol buffers, use a [`Timestamp`](https://protobuf.dev/reference/protobuf/google.protobuf/#timestamp) and set the `seconds` and (optionally) the `nanoseconds` fields. <br /> See [Timestamp format](https://developers.google.com/data-manager/api/devguides/concepts/formatting.md.txt#timestamp_format) for details. |
| `conversion_environment` | No equivalent |   |
| `conversion_value` | `conversion_value` | Set to the currency value, not the value in micros. For example, for a conversion value of $5.23, use the value `5.23`. |
| `currency_code` | `currency` |   |
| `custom_variables` | `custom_variables` | See [Custom variable fields](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade/field-mappings.md.txt#custom-variables) for details. |
| `customer_type` | `user_properties.customer_type` | Set to a value in the [`CustomerType`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#customertype) enum. |
| No equivalent | `event_source` |   |
| No equivalent | `event_device_info` |   |
| `external_attribution_data` | No equivalent |   |
| `gbraid` | `ad_identifiers.gbraid` |   |
| `gclid` | `ad_identifiers.gclid` |   |
| No equivalent | `last_updated_timestamp` |   |
| `order_id` | `transaction_id` |   |
| `session_attributes_encoded` | `ad_identifiers.session_attributes` | See [Add session attributes](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events.md.txt#session_attributes) for details. |
| `session_attributes_key_value_pairs` | `experimental_fields` | See [Add session attributes](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events.md.txt#session_attributes) for details. |
| `user_identifiers` | `user_data.user_identifiers` | See [User identifier fields](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade/field-mappings.md.txt#user-identifiers) for details. |
| `user_ip_address` | `landing_page_device_info.ip_address` |   |
| `wbraid` | `ad_identifiers.wbraid` |   |

## Cart data fields

| [`CartData`](https://developers.google.com/google-ads/api/reference/rpc/latest/CartData) (Google Ads API) | [`CartData`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#cartdata) (Data Manager API) | Notes |
|---|---|---|
| `feed_country_code` | `merchant_feed_label` | Set to the [feed label](https://support.google.com/merchants/answer/14994087). |
| `feed_language_code` | `merchant_feed_language_code` |   |
| `items` | `items` |   |
| `local_transaction_cost` | `transaction_discount` |   |
| `merchant_id` | `merchant_id` |   |

## Item fields for cart data

| [`Item`](https://developers.google.com/google-ads/api/reference/rpc/latest/CartData.Item) (Google Ads API) | [`Item`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#item) (Data Manager API) | Notes |
|---|---|---|
| `product_id` | `merchant_product_id` |   |
| `quantity` | `quantity` |   |
| `unit_price` | `unit_price` |   |
| No equivalent | `item_id` |   |
| No equivalent | `additional_item_parameters` |   |

## Custom variable fields

| [`CustomVariable`](https://developers.google.com/google-ads/api/reference/rpc/latest/CustomVariable) (Google Ads API) | [`CustomVariable`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#customvariable) (Data Manager API) | Notes |
|---|---|---|
| No equivalent | `destination_references` | The Google Ads API requires separate requests per conversion action. The Data Manager API supports [sending conversions for multiple conversion actions in a single request](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events.md.txt#multiple-destinations), as well as using this `destination_references` field to indicate which destinations should receive a specific custom variable. |
| `conversion_custom_variable` | `variable` | Set to the name of the variable instead of a resource name. |
| `value` | `value` |   |

## User identifier fields

> [!TIP]
> **Tip:** In the Data Manager API, add user identifiers to a [`UserData`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#userdata) object, then set the `user_data` field of the `Event`. In the Google Ads API, user identifiers are directly added to the `ClickConversion` in the `user_identifiers` field.

| [`UserIdentifier`](https://developers.google.com/google-ads/api/reference/rpc/latest/UserIdentifier) (Google Ads API) | [`UserIdentifier`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#useridentifier) (Data Manager API) |   |
|---|---|---|
| `address_info` | `address` | Follow the [formatting and hashing guidelines](https://developers.google.com/data-manager/api/devguides/concepts/formatting.md.txt). You can also [encrypt the hashed attributes of an address](https://developers.google.com/data-manager/api/devguides/concepts/encryption.md.txt). |
| `hashed_email` | `email_address` | Set to the [formatted and hashed](https://developers.google.com/data-manager/api/devguides/concepts/formatting.md.txt) email address. You can also [encrypt the hashed email address](https://developers.google.com/data-manager/api/devguides/concepts/encryption.md.txt). |
| `hashed_phone_number` | `phone_number` | Set to the [formatted and hashed](https://developers.google.com/data-manager/api/devguides/concepts/formatting.md.txt) phone number. You can also [encrypt the hashed phone number](https://developers.google.com/data-manager/api/devguides/concepts/encryption.md.txt). |
| Other fields: - `mobile_id` - `third_party_user_id` - `user_identifier_source` | Not relevant | Neither API supports these identifiers for offline conversions or enhanced conversions for leads, and the Data Manager API doesn't support these identifiers when sending conversion events as an additional data source. |

## Response fields

| [`UploadClickConversionResponse`](https://developers.google.com/google-ads/api/reference/rpc/latest/UploadClickConversionsResponse) (Google Ads API) | [`IngestEventsResponse`](https://developers.google.com/data-manager/api/reference/rpc/google.ads.datamanager.v1.md.txt#ingesteventsresponse) (Data Manager API) | Notes |
|---|---|---|
| `job_id` | No equivalent | Use the `request_id` returned in the response to retrieve [diagnostics](https://developers.google.com/data-manager/api/devguides/diagnostics.md.txt). |
| `partial_failure_error` | No equivalent | The Data Manager API [uses a fast-fail error model](https://developers.google.com/data-manager/api/devguides/concepts/understand-errors.md.txt#fast-fail). If any field of an `IngestEventsRequest` fails validation, the Data Manager API rejects the entire request. |
| `request-id` [response header](https://developers.google.com/google-ads/api/docs/concepts/call-structure.md.txt#request-id) | `request_id` | The request ID is returned as a response field in the Data Manager API instead of as a response header. |
| `results` | No equivalent | The Data Manager API processes events asynchronously. Check the processing results using [diagnostics](https://developers.google.com/data-manager/api/devguides/diagnostics.md.txt). |