# Exemples

### Lecture des TC Data <a href="#read-tc-data" id="read-tc-data"></a>

{% hint style="info" %}
Avant de charger les scripts partenaires sur votre site, vous devez vérifier que l'utilisateur a donné son consentement ou ne s'est pas opposé à l'intérêt légitime.
{% endhint %}

Avec la commande `addEventListener`, vous pouvez déclarer un listener à la CMP qui sera appelé avec les TC Data lorsqu'un évènement se déclenche.\
A l'ajout d'un listener, la callback est immédiatement appelée avec les TC Data courantes ainsi qu'un listenerId que vous devez conserver si vous avez ensuite besoin de supprimer le listener.

{% tabs %}
{% tab title="Lecture des TC Data" %}

<pre class="language-javascript"><code class="lang-javascript"><strong>window.__tcfapi("addEventListener", 2, function (tcData, success) {
</strong> if (success &#x26;&#x26; tcData &#x26;&#x26; (tcData.eventStatus == "cmpuiclosed" || tcData.eventStatus == "tcloaded")) {
      if (!tcData.gdprApplies) {
                        console.log("GDPR doesn't apply to user");
      } else {
        if (tcData.vendor.consents[53] &#x26;&#x26; tcData.purpose.consents[1]) {
                                console.log("Vendor ID 53 has consent for  purpose ID 1");
             }
        if (!tcData.vendor.consents[53] || !tcData.purpose.consents[2]) {
                                console.log("Vendor ID 53 has no consent for purpose ID 2");
             }
        if (tcData.vendor.legitimateInterests[53] &#x26;&#x26; tcData.purpose.legitimateInterests[9]) {
                                console.log("User has been informed of vendor ID 53's legitimate interest for purpose ID 9 and hasn't objected to it");
             }
         if (!tcData.vendor.legitimateInterests[53] || !tcData.purpose.legitimateInterests[10]) {
                                console.log("User has objected to vendor ID 53's legitimate interest for purpose ID 10");
             }
         }
       }
});
</code></pre>

{% endtab %}
{% endtabs %}

Vous pouvez également spécifier une liste d'ID partenaires pour lesquels les TC Data sont requêtées.

{% tabs %}
{% tab title="Lecture des TC Data filtrée sur une liste d'ID partenaires" %}

```javascript
window.__tcfapi("addEventListener", 2, function (tcData, success) {
 if (success && tcData && (tcData.eventStatus == "cmpuiclosed" || tcData.eventStatus == "tcloaded")) {
    if (!tcData.gdprApplies) {
         console.log("GDPR doesn't apply to user");
     } else {
            if (tcData.vendor.consents[53] && tcData.purpose.consents[1]) {
                console.log('Vendor ID 53 has consent for purpose ID 1');
            }
            if (tcData.vendor.consents[100] && tcData.purpose.consents[1]) {
                // This will never happen since vendor ID 100
                // is not included in the vendorIDs parameter
                console.log('Vendor ID 53 has consent for purpose ID 1');
            }
    }
  }
});
```

{% endtab %}
{% endtabs %}

### Lecture de la Global Vendor List <a href="#read-global-vendor-list" id="read-global-vendor-list"></a>

La Global Vendor List contenant les finalités et les partenaires participant au Transparency & Consent Framework peut être récupérée avec la commande `getVendorList`.

{% tabs %}
{% tab title="Lecture de la Global Vendor List" %}

```javascript
window.__tcfapi("getVendorList", 2, function (globalVendorList, success) {
 if (success) {
  console.log("vendorListVersion = " + globalVendorList.vendorListVersion);
    }
});
```

{% endtab %}
{% endtabs %}

Vous pouvez également spécifier une *vendorListVersion* pour laquelle la Global Vendor List est requêtée.

{% tabs %}
{% tab title="Lecture de la Global Vendor List pour une version spécifique" %}

```javascript
window.__tcfapi("getVendorList", 2, function (globalVendorList, success) {
        if (success) {
               console.log("globalVendorList with version 10 is retrieved");
        } else {
                console.log("Invalid vendorListVersion");
        }
}, 10);
```

{% endtab %}
{% endtabs %}

### Révoquer un consentement Utiq <a href="#add-event-listener" id="add-event-listener"></a>

Si l'utilisateur a révoqué son consentement pour Utiq en dehors de la CMP, vous pouvez mettre le statut de choix via l'API de la CMP grâce à la commande suivante :

{% tabs %}
{% tab title="Ajout d'un listener" %}

```javascript
window.__sdcmpapi("revokeUtiq", 2, function (success) {
    if (success) {
        console.log("Consent for Utiq is revoked");
    }
});
```

{% endtab %}
{% endtabs %}
