Use the Data Manager API to send offline conversions to a Floodlight activity for
Campaign Manager 360, Display \& Video 360, and Search Ads 360.
[Learn more about Floodlight and Floodlight activities](https://support.google.com/campaignmanager/answer/3027419).

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

If you're upgrading from the [Campaign Manager 360 API](https://developers.google.com/doubleclick-advertisers/rest), see
[Upgrade from the Campaign Manager 360 API](https://developers.google.com/data-manager/api/devguides/events/cm360/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/cm360/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/cm360/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/cm360/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/cm360/offline/send-events) for
   field requirements and code samples.

4. **Check request status and diagnostics:** Check
   asynchronous processing status and review diagnostics with
   [`requestStatus.retrieve`](https://developers.google.com/data-manager/api/devguides/diagnostics).