# Adobe Launch/DTM

{% hint style="info" %}
Events and variables used by Adobe Launch/DTM integration are detailed in [this documentation.](https://developers.didomi.io/cmp/web-sdk/third-parties/tags-management/events-and-variables)
{% endhint %}

This section describe how to control what tags are embedded on your website when using Adobe Launch or DTM for managing tags.

The key idea of the integration is that Didomi pushes GDPR consent information into Adobe as variables of the data layer ([`_satellite.setVar`](https://experienceleague.adobe.com/en/docs/experience-platform/collection/tags/setvar)) and fires events/direct calls ([`_satellite.track`](https://experienceleague.adobe.com/en/docs/experience-platform/collection/tags/track)) to indicate when tags that require consent can be loaded. You should then configure Adobe to only fire tags after consent has been collected for each vendor.

On your side, the integration relies on adding rules, events and conditions to all the tags from vendors that do not support the IAB framework to make them fire on a custom event from the data layer. The Didomi SDK will then fire an event with the list of vendors that the user has given consent to, which will ensure that Adobe only loads the tags matching the user consent.

For instance, after a user gives consent to the vendor `google`, the SDK will push the direct call `didomi-consent-changed` and the variable `didomiVendorsEnabled` with the value `google,`. The tags setup in Adobe can then be fired through a rule on the event `didomi-consent-changed`.

{% hint style="warning" %}
**Make sure that our SDK is setup**

Before continuing, please read our section on [setting up our SDK](https://developers.didomi.io/cmp/web-sdk/getting-started) to learn how to do the initial setup of your tag. It is particularly important that our tag gets embedded before all the other tags on your page.
{% endhint %}

## Configure the Didomi / Adobe integration

### Step 1 - Enable the Adobe integration

Enable the `Adobe DTM and Launch` integration in the Integrations tab of your consent notice:

<figure><img src="https://1703900661-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDh8ZWDZrXs8sc4QKEQ%2Fuploads%2Fgit-blob-37b5088bab5dbfa57d6a69efee18e46610d1012e%2FScreenshot%202024-03-07%20at%2010.11.16.png?alt=media" alt=""><figcaption><p>Adobe DTM and Launch integration in the Didomi Console</p></figcaption></figure>

Make sure to publish your notice after enabling the integration.

{% hint style="danger" %}
**Embedding the Didomi SDK through Adobe**

We recommend not embedding the Didomi SDK through Adobe. By being directly on your pages, the Didomi SDK can load faster and also ensures that IAB vendors can detect a CMP on the page as soon as possible.

Embedding the Didomi SDK through Adobe will result in less consents being passed to vendors and a lower consent rate from their perspective.
{% endhint %}

### Step 2 - Create rules

You need to create rules that will be used to decide when to load each tag in Adobe DTM or Launch. Vendors that do not require consent need not be updated. [IAB vendors](https://vendor-list.consensu.org/v3/vendor-list.json) do not need to be conditioned either as they will automatically collect the consent status from Didomi through the IAB TCF API.

For every vendor tag that you need to condition on the user consent status, create or update a rule with the following configuration:

#### **Events**

Configure an event of type `Direct Call` with identifier `didomi-ready`:

![Didomi ready event configuration](https://1703900661-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDh8ZWDZrXs8sc4QKEQ%2Fuploads%2Fgit-blob-a105132a68f18c9c8c7d4393f1536b6ae939763f%2Fimage.png?alt=media)

With this event configured, your tag will be fired when the page loads AND consent has been given on a previous page. If you also want the tag to fire when consent is given on the current page, also add an event with identifier `didomi-consent-changed`:

![Didomi consent changed event](https://1703900661-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDh8ZWDZrXs8sc4QKEQ%2Fuploads%2Fgit-blob-275d2bd17a1677d95d35e28fbc0db5d139037012%2Fimage.png?alt=media)

You should end up with one or two events configured:

![](https://1703900661-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDh8ZWDZrXs8sc4QKEQ%2Fuploads%2Fgit-blob-fde2913ee414c764212da4a391abcc26a04f78b6%2Fimage.png?alt=media)

#### Conditions

Add a condition to your rule so that it only triggers if consent has been given to the vendor.\
The condition should be created on the `didomiVendorsEnabled` data element (noted as `%didomiVendorsEnabled%`) to validate that it contains the ID of the vendor that the tags belongs to.

<figure><img src="https://1703900661-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LDh8ZWDZrXs8sc4QKEQ%2Fuploads%2Fgit-blob-51b94694c877c28c5a3d22f591736a46d2c8a485%2FScreenshot%202024-03-08%20at%2010.58.48.png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
When matching vendors by IDs in variables, use the full ID of the vendor with an additional comma (`,`) at the end to ensure IDs do not get mixed and matched.\
Example: Use `google,` to match the vendor with ID `google` and not the vendor with ID `googleana-4TXnJigR`.
{% endhint %}

See [Variables / Vendors](https://developers.didomi.io/cmp/web-sdk/third-parties/events-and-variables#vendors) for more information on `didomiVendorsEnabled` and other variables available to condition your tags.

## Custom events and consent

If you have your own custom events that you use as triggers for tags and also want to add an additional condition on the consent status of the user, check [this page](https://developers.didomi.io/cmp/web-sdk/third-parties/tags-management/events-and-variables/custom-events) for more details.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.didomi.io/cmp/web-sdk/third-parties/tags-management/tag-managers/adobe-launch-dtm.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
