Jamdesk Documentation logo

Consenso cookie

Blocca gli script di analisi finché il visitatore non acconsente ai cookie con integrations.cookies, e carica un banner di consenso Osano o Termly.

Jamdesk può trattenere tutti gli script di analisi e tracciamento (Google Analytics, Google Tag Manager, Plausible, la chat Crisp, JavaScript personalizzato e l'analisi integrata di Jamdesk) finché un visitatore non acconsente ai cookie. Jamdesk legge il consenso dal localStorage del browser. Funziona con qualsiasi piattaforma di gestione del consenso (CMP) che lo registri lì, inclusi Osano e Termly.

Nessun tracciamento viene eseguito prima che il visitatore accetti. Questo ti aiuta a rispettare normative sulla privacy come il GDPR, il CCPA e la Direttiva ePrivacy.

Come funziona

Imposta in docs.json una chiave di localStorage e il valore che significa "consenso concesso":

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

Con integrations.cookies impostato, nessuno script di analisi viene caricato finché localStorage["jamdesk_consent"] non è uguale a "granted". Gli script si caricano non appena il tuo banner di consenso registra l'accettazione, senza ricaricare la pagina. La revoca del consenso ha effetto al successivo caricamento completo della pagina da parte del visitatore. Gli script già in esecuzione nella pagina corrente continuano a funzionare finché il visitatore non naviga altrove o ricarica.

key e value sono obbligatori. Una key o un value mancanti o vuoti disattivano il controllo del consenso. In tal caso gli script si caricano normalmente.

Il controllo si applica anche all'analisi integrata di Jamdesk. I visitatori che non acconsentono non vengono conteggiati. Aspettati numeri di visualizzazioni di pagina più bassi nella dashboard del progetto dopo aver attivato questa opzione.

Collegare il banner del consenso

La maggior parte delle CMP (inclusi Osano e Termly) non espone un flag stabile in localStorage che Jamdesk possa leggere. Memorizzano il consenso in cookie o in valori che cambiano per ogni visitatore. Aggiungi invece un breve snippet ponte nell'area di codice personalizzato della tua CMP. Scrive jamdesk_consent quando un visitatore accetta. Lo snippet viene eseguito come parte della CMP, quindi viene sempre eseguito. Il JavaScript personalizzato di Jamdesk non può svolgere questo compito, perché anch'esso è soggetto al controllo.

Lo snippet scrive granted al consenso e rimuove la chiave quando il consenso viene ritirato. Il controllo si riapplica poi al caricamento successivo della pagina.

Osano

Aggiungi lo script di Osano in docs.json:

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

L'URL dello script proviene dalla tua dashboard Osano. Inizia sempre con https://cmp.osano.com/ e termina con /osano.js.

Poi aggiungi questo ponte in Osano (Consent Manager → la tua configurazione → JavaScript personalizzato):

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

Aggiungi lo script di Termly in docs.json:

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

L'URL proviene dalle istruzioni di embed di Termly per il tuo sito web (lo script Resource Blocker). La query ?autoBlock=on è facoltativa e attiva il blocco automatico degli script di Termly.

Poi aggiungi questo ponte in Termly (il tuo sito web → HTML/JavaScript personalizzato):

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 e Termly si caricano per primi nel <head> della pagina, prima di qualsiasi altro script. Il loro blocco automatico dipende da questo.

Se la tua CMP funziona in modalità strict o di blocco automatico, inserisci in allowlist *.jamdesk.app e il tuo dominio personalizzato della documentazione nelle regole gestite (Osano: classification/allowlist; Termly: Domain Rules o Custom Blocking Map). Altrimenti la CMP potrebbe bloccare le risorse del tuo sito di documentazione e compromettere la pagina.

Testare la configurazione

Il controllo viene eseguito solo sul tuo sito live, pubblicato. L'anteprima locale jamdesk dev ignora la configurazione del consenso. Per verificare:

  1. Apri il tuo sito di documentazione live con localStorage vuoto. L'analisi non dovrebbe caricarsi (controlla la scheda Network del browser: nessuna richiesta a Google, Plausible o /api/ev).
  2. Nella console del browser esegui localStorage.setItem("jamdesk_consent", "granted"). Gli script dovrebbero caricarsi entro circa un secondo, senza ricaricare la pagina.

Disattivare completamente gli strumenti di analisi di Jamdesk

Disattiva l'analisi integrata (senza cookie) di Jamdesk per tutti i visitatori, indipendentemente dal consenso:

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

Articoli correlati

Google Tag Manager

Carica i tag e imposta la modalità di consenso GTM

Google Analytics

Aggiungi GA4 direttamente

Plausible Analytics

Orientata alla privacy, spesso esente dal consenso

JavaScript personalizzato

Anche gli script personalizzati sono soggetti al consenso