# Conditionnement d'un script distant via un Tag Manager

La méthode de conditionnement décrite à la page précédente est utilisable via un Tag Manager et la méthode reste la même à ceci près qu'il faut déclencher manuellement du traitement de la pile via la fonction dédiée suivante.

```markup
<script>try{Sddan.cmp.triggerTM();}catch(e){}</script>
```

{% hint style="danger" %}
Cette fonctionnalité étant intégrée au sein de la CMP, elle ne fonctionnera que si la CMP est chargée sur la page.
{% endhint %}

{% hint style="info" %}
Important : Cette méthode permet une grande simplification technique des conditionnements. Néanmoins, il est important de garder en tête qu'une expertise juridique est nécessaire pour déterminer comment les réaliser vous-mêmes.

\
Pour chaque tag/balise, il faut :

* Étudier l’éventuelle présence de traceurs non exemptés (cookies, indexdb, local storage…) (Directive ePrivacy)
* Évaluer les traitements de données personnelles et le cas échéant les finalités poursuivies par vos partenaires et leurs bases légales respectives (RGPD)
* Déterminer si le tag/balise est automatiquement pris en charge par vos partenaires via les API de la CMP (exemple : le « Consent Mode » de Google et de Microsoft Bing)

N'hésitez pas à solliciter nos équipes pour que nous paramétrions ces conditionnements pour vous : <https://cmp.docs.sirdata.net/gestion-des-scripts/prestations-conditionnement-tags>
{% endhint %}

### Méthode <a href="#configuration" id="configuration"></a>

{% hint style="info" %}
Procédez comme décrit à la page précédente mais ajoutez la fonction ci-dessus :

* Soit à chaque tag que vous souhaitez conditionner
* Soit une seule fois en tant que dernier script chargé par le Tag Manager
  {% endhint %}

```markup
<script src="https://www.exemple.com/script.js"></script>
```

devient dans le Tag Manager :

```markup
<script data-cmp-src="https://www.exemple.com/script.js"></script>
<script>try{Sddan.cmp.triggerTM();}catch(e){}</script>
```

Si le tag est inséré en JavaScript :

```markup
<script>
(function() {
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.async = true;
    s.src = 'https://www.example.com';
    var _head = document.head || document.getElementsByTagName("head")[0];
    _head.appendChild(s);
})();
</script>
```

devient dans le Tag Manager :

```markup
<script>
(function() {
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.async = true;
    s.setAttribute('data-cmp-src','https://www.example.com');
    var _head = document.head || document.getElementsByTagName("head")[0];
    _head.appendChild(s);
})();
</script>
<script>try{Sddan.cmp.triggerTM();}catch(e){}</script>
```

{% hint style="warning" %}
L'ensemble des fonctionnalités avancées décrites plus loin est disponible pour les tags conditionnés dans votre page principale ou via le Tag Manager.
{% endhint %}

## Cas spécifique Google Tag Manager

Il est possible de conditionner rapidement et facilement chaque tag ainsi qu'expliqué ci-dessus via l'attribut `data-cmp-src` et de ne déclencher qu'une seule fois la fonction `Sddan.cmp.triggerTM()` en dernier script avec une priorité inférieure.

{% hint style="warning" %}
Attention : il s'agit de la méthode simplifiée, utile pour les balise HTML seulement. Si vous cherchez à conditionner des balises automatisées de Google Tag Manager (Analytics, Ads...) en plus de balises HTML merci de vous reporter à la section suivante "Conditionnement d'une balise via Google Tag Manager"
{% endhint %}

![pour chaque script cochez "Compatible avec document.write"](/files/-MZy-OSFtx7oERpeUU-g)

{% hint style="danger" %}
Attention : vous devez IMPERATIVEMENT cocher la case "Compatible avec document.write"
{% endhint %}

{% tabs %}
{% tab title="Tag 1" %}

```markup
<script data-cmp-src="https://www.example2.com/script.js"></script>
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Tag 2" %}

```markup
<script data-cmp-src="https://www.example3.com/script.js"></script>
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Tag X" %}

```markup
<script data-cmp-src="https://www.exampleX.com/script.js"></script>
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Dernier tag" %}

```markup
<script>try{Sddan.cmp.triggerTM();}catch(e){}</script>
```

{% endtab %}
{% endtabs %}

Ce nouveau tag ajouté doit être paramétré comme suite dans GTM :

![Paramétrage de la fonction de conditionnement en priorité -10](/files/-MXbOnjmoUqkFzlj73H-)


---

# 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://cmp.docs.sirdata.net/gestion-des-scripts/conditionnement-dun-script-distant-via-un-tag-manager.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.
