Use the Data Manager API to send Google Analytics
[multi-source events with a transaction ID as an additional data source for your
tag or Google Analytics for Firebase (GA4F)
events](https://support.google.com/analytics/answer/16391665) to maximize ad
interaction signals and strengthen your data and overall performance.

This feature is only available to accounts on an allowlist. [Fill out the
form](https://forms.gle/PUT2AsLVM1krd5zm6) if you're interested in adding your Google Analytics
property.

> [!NOTE]
> **Note:** If you're bidding to Google Analytics conversions in Google Ads, multi-source event data sent to **web** data streams from the Data Manager API won't flow to your conversion bidding for a 14-day trial period. This doesn't apply to your existing Google tag data source, or to multi-source events sent to **app** data streams from the Data Manager API.

[Send multi-source events](https://developers.google.com/data-manager/api/devguides/events/analytics/online/send-events)

## 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/analytics/online/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/analytics/online/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/analytics/online/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/analytics/online/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).