---
title: Consentement aux cookies
description: Conditionnez le chargement des scripts d'analytics au consentement aux cookies avec integrations.cookies, et chargez une bannière de consentement Osano ou Termly sur votre site de documentation.
---

> **For AI agents:** the complete documentation index is at [llms.txt](/docs/llms.txt). Append `.md` to any page URL for its markdown version.

Jamdesk peut bloquer tous les scripts d'analytics et de suivi — Google Analytics, Google Tag Manager, Plausible, le chat Crisp, le JavaScript personnalisé et l'analytique intégrée de Jamdesk — jusqu'à ce qu'un visiteur consente aux cookies. Le consentement est lu dans le `localStorage` du navigateur, ce qui le rend compatible avec n'importe quelle plateforme de gestion du consentement (CMP) qui y enregistre le consentement, y compris Osano et Termly.

Cela vous aide à respecter les réglementations sur la vie privée telles que le RGPD, le CCPA et la directive ePrivacy en garantissant qu'aucun suivi ne s'exécute avant que le visiteur ait donné son accord.

## Fonctionnement

Définissez une clé `localStorage` et la valeur qui signifie « consentement accordé » dans `docs.json` :

```json docs.json
{
  "integrations": {
    "cookies": {
      "key": "jamdesk_consent",
      "value": "granted"
    }
  }
}
```

Lorsque `integrations.cookies` est défini, aucun script d'analytics ne se charge tant que `localStorage["jamdesk_consent"]` n'est pas égal à `"granted"`. Dès que votre bannière de consentement enregistre l'acceptation, les scripts se chargent — sans rechargement de page. Si un visiteur révoque son consentement, les scripts cessent de se charger à partir de son prochain chargement complet de page (les scripts déjà en cours d'exécution sur la page actuelle continuent jusqu'à ce que le visiteur quitte la page ou la recharge).

<Info>
`key` et `value` sont tous deux requis. Si l'un d'eux est manquant ou vide, le filtrage par consentement est désactivé et les scripts se chargent normalement.
</Info>

<Warning>
Le filtrage s'applique également à l'analytique intégrée de Jamdesk : les visiteurs qui ne consentent jamais ne sont pas comptabilisés, attendez-vous donc à des chiffres de pages vues plus bas dans le dashboard de votre projet après avoir activé cette option.
</Warning>

## Connecter votre bannière de consentement

La plupart des CMP — y compris Osano et Termly — n'exposent pas d'indicateur `localStorage` simple et stable vers lequel pointer Jamdesk directement : elles stockent le consentement dans des cookies ou dans des valeurs qui changent selon le visiteur. À la place, ajoutez un court **extrait pont** dans la zone de code personnalisé de votre CMP, qui écrit `jamdesk_consent` lorsqu'un visiteur accepte. Comme l'extrait s'exécute dans le cadre de la CMP (et non en tant que JavaScript personnalisé Jamdesk, lui-même filtré), il s'exécute toujours.

L'extrait écrit `granted` lors du consentement et supprime la clé lorsque le consentement est retiré, de sorte que le filtrage s'applique de nouveau au prochain chargement de page.

## Osano

Ajoutez votre script Osano dans `docs.json` :

```json docs.json
{
  "integrations": {
    "osano": {
      "scriptSource": "https://cmp.osano.com/YOUR_CUSTOMER_ID/YOUR_CONFIG_ID/osano.js"
    }
  }
}
```

L'URL du script provient de votre dashboard Osano — elle commence toujours par `https://cmp.osano.com/` et se termine par `/osano.js`.

Ajoutez ensuite ce pont dans Osano (Consent Manager → votre configuration → custom JavaScript) pour que le consentement parvienne à Jamdesk :

```js
function jdOsanoBridge(consent) {
  if (consent && consent.ANALYTICS === 'ACCEPT') {
    localStorage.setItem('jamdesk_consent', 'granted');
  } else {
    localStorage.removeItem('jamdesk_consent');
  }
}
if (window.Osano && window.Osano.cm) {
  jdOsanoBridge(window.Osano.cm.getConsent());
  window.Osano.cm.addEventListener('osano-cm-consent-saved', jdOsanoBridge);
} else {
  window.addEventListener('osano-cm-initialized', function () {
    jdOsanoBridge(window.Osano.cm.getConsent());
    window.Osano.cm.addEventListener('osano-cm-consent-saved', jdOsanoBridge);
  });
}
```

## Termly

Ajoutez votre script Termly dans `docs.json` :

```json docs.json
{
  "integrations": {
    "termly": {
      "scriptSource": "https://app.termly.io/resource-blocker/YOUR-WEBSITE-UUID?autoBlock=on"
    }
  }
}
```

L'URL provient des instructions d'intégration de Termly pour votre site web (le script Resource Blocker). Le paramètre `?autoBlock=on` active le blocage automatique des scripts de Termly et est facultatif.

Ajoutez ensuite ce pont dans Termly (votre site web → custom HTML/JavaScript) pour que le consentement parvienne à Jamdesk :

```js
function jdTermlyBridge() {
  var s = Termly.getConsentState();
  if (s && s.analytics) {
    localStorage.setItem('jamdesk_consent', 'granted');
  } else {
    localStorage.removeItem('jamdesk_consent');
  }
}
(function register() {
  if (window.Termly && typeof Termly.on === 'function') {
    Termly.on('consent', jdTermlyBridge);
    try { jdTermlyBridge(); } catch (e) {}
  } else {
    setTimeout(register, 200);
  }
})();
```

Osano et Termly se chargent en premier dans le `<head>` de la page, avant tout autre script, afin que leur blocage automatique fonctionne.

<Warning>
Si votre CMP fonctionne en mode strict ou avec blocage automatique, ajoutez `*.jamdesk.app` et votre domaine de documentation personnalisé à la liste d'autorisation de ses règles gérées (Osano : classification/liste d'autorisation ; Termly : Domain Rules ou Custom Blocking Map). Sinon, la CMP risque de bloquer les propres ressources de votre site de documentation et de casser la page.
</Warning>

## Tester votre configuration

Le filtrage ne s'exécute que sur votre site en production — pas dans `jamdesk dev` (l'aperçu local ignore la configuration de consentement). Pour tester :

1. Ouvrez votre site de documentation en ligne avec un `localStorage` vide. L'analytique ne devrait pas se charger (vérifiez l'onglet Réseau du navigateur — aucune requête vers Google, Plausible ou `/api/ev`).
2. Dans la console du navigateur, exécutez `localStorage.setItem("jamdesk_consent", "granted")`. Les scripts devraient se charger en une seconde environ, sans rechargement.

## Désactiver entièrement l'analytique Jamdesk

Pour désactiver l'analytique intégrée (sans cookies) de Jamdesk pour tous les visiteurs, indépendamment du consentement :

```json docs.json
{
  "analytics": { "enabled": false }
}
```

## Articles connexes

<Columns cols={2}>
  <Card title="Google Tag Manager" icon="tags" href="/fr/integrations/google-tag-manager">
    Gérer les balises et le mode consentement GTM
  </Card>
  <Card title="Google Analytics" icon="chart-simple" href="/fr/integrations/google-analytics">
    Ajouter GA4 directement
  </Card>
  <Card title="Plausible Analytics" icon="chart-pie" href="/fr/integrations/plausible-analytics">
    Respectueux de la vie privée, souvent exempté de consentement
  </Card>
  <Card title="JavaScript personnalisé" icon="code" href="/fr/customization/custom-javascript">
    Les scripts personnalisés sont aussi filtrés par consentement
  </Card>
</Columns>
