Use the Data Manager API to send event data for Google Ads
[offline conversions](https://support.google.com/google-ads/answer/2998031) or
[enhanced conversions for leads](https://support.google.com/google-ads/answer/15713840).

[Send offline conversions](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events)

If you're upgrading from the [Google Ads API](https://developers.google.com/google-ads/api), see
[Upgrade from the Google Ads API](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/upgrade).

## Workflow overview

To send event data with the Data Manager API, complete the following steps:

1. **Prepare destinations:** Define the
   [`Destination`](https://developers.google.com/data-manager/api/reference/rest/v1/Destination) objects for the `destinations`
   field of the ingestion request to specify the target account and conversion
   or event destination. See
   [Prepare destinations](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events#prepare_destinations) for
   details.

2. **Prepare event data and identifiers:** Construct each
   [`Event`](https://developers.google.com/data-manager/api/reference/rest/v1/events/ingest#event) and include any
   [required fields and identifiers](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events#event_field_requirements).
   Normalize and SHA-256 hash any user contact information
   in [`userData`](https://developers.google.com/data-manager/api/reference/rest/v1/events/ingest#Event.FIELDS.user_data)
   according to the

   [formatting guidelines](https://developers.google.com/data-manager/api/devguides/concepts/formatting), and optionally
   [encrypt](https://developers.google.com/data-manager/api/devguides/concepts/encryption) it. See

   [Prepare event data](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events#prepare_event_data) for details.

3. **Build and send the ingestion request:** Submit an
   [`events.ingest`](https://developers.google.com/data-manager/api/reference/rest/v1/events/ingest) request containing your

   `destinations`, [`Event`](https://developers.google.com/data-manager/api/reference/rest/v1/events/ingest#event) records, and
   [`encryptionInfo`](https://developers.google.com/data-manager/api/reference/rest/v1/EncryptionInfo) if you encrypted
   `userData`.

   Use `validateOnly: true` to test your payload for
   [fast-fail errors](https://developers.google.com/data-manager/api/devguides/concepts/understand-errors#fast-fail)
   before sending production data. See [Send events](https://developers.google.com/data-manager/api/devguides/events/google-ads/offline/send-events) for
   field requirements and code samples.

4. **Check request status and diagnostics, and
   adjust conversions:** Check asynchronous processing status and review
   diagnostics with [`requestStatus.retrieve`](https://developers.google.com/data-manager/api/devguides/diagnostics), and
   [adjust or retract previously recorded conversions](https://developers.google.com/data-manager/api/devguides/events/google-ads/conversion-adjustments)
   as needed.