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":
{
"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:
{
"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:
{
"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:
- Apri il tuo sito di documentazione live con
localStoragevuoto. L'analisi non dovrebbe caricarsi (controlla la scheda Network del browser: nessuna richiesta a Google, Plausible o/api/ev). - 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:
{
"analytics": { "enabled": false }
}