Cookie-Einwilligung
Analyse-Skripte mit integrations.cookies an die Cookie-Einwilligung koppeln und einen Osano- oder Termly-Banner auf Ihrer Doku-Seite laden.
Jamdesk kann alle Analyse- und Tracking-Skripte (Google Analytics, Google Tag Manager, Plausible, Crisp-Chat, eigenes JavaScript sowie die integrierte Analyse von Jamdesk) zurückhalten, bis ein Besucher der Cookie-Nutzung zustimmt. Jamdesk liest die Einwilligung aus dem localStorage des Browsers. Jede Consent-Management-Plattform (CMP), die die Einwilligung dort speichert, funktioniert, einschließlich Osano und Termly.
Vor der Zustimmung des Besuchers läuft kein Tracking. So helfen Sie, Datenschutzvorschriften wie DSGVO, CCPA und die ePrivacy-Richtlinie einzuhalten.
Funktionsweise
Legen Sie in docs.json einen localStorage-Schlüssel und den Wert fest, der „Einwilligung erteilt“ bedeutet:
{
"integrations": {
"cookies": {
"key": "jamdesk_consent",
"value": "granted"
}
}
}Mit gesetztem integrations.cookies lädt kein Analyse-Skript, bis localStorage["jamdesk_consent"] gleich "granted" ist. Skripte werden geladen, sobald Ihr Einwilligungs-Banner die Zustimmung speichert, ohne Neuladen der Seite. Ein widerrufener Consent wirkt beim nächsten vollständigen Seitenaufruf des Besuchers. Skripte, die auf der aktuellen Seite bereits laufen, laufen weiter, bis der Besucher wegnavigiert oder neu lädt.
key und value sind erforderlich. Ein fehlender oder leerer key oder value deaktiviert die Einwilligungssteuerung. Skripte werden dann normal geladen.
Die Steuerung gilt auch für die integrierte Analyse von Jamdesk. Besucher, die nie zustimmen, werden nicht gezählt. Nach der Aktivierung sollten Sie in Ihrem Projekt-Dashboard niedrigere Seitenaufrufzahlen erwarten.
Einwilligungsbanner verbinden
Die meisten CMPs (einschließlich Osano und Termly) stellen kein stabiles localStorage-Flag bereit, das Jamdesk auslesen kann. Sie speichern die Einwilligung in Cookies oder in Werten, die sich pro Besucher unterscheiden. Fügen Sie stattdessen einen kurzen Brückenausschnitt im eigenen Custom-Code-Bereich Ihres CMP ein. Er schreibt jamdesk_consent, wenn ein Besucher zustimmt. Der Ausschnitt läuft als Teil des CMP und wird daher immer ausgeführt. Eigenes JavaScript in Jamdesk kann diese Aufgabe nicht übernehmen, weil es selbst gesteuert wird.
Der Ausschnitt schreibt bei Zustimmung granted. Bei Widerruf entfernt er den Schlüssel. Die Steuerung greift dann beim nächsten Seitenaufruf erneut.
Osano
Fügen Sie Ihr Osano-Skript in docs.json hinzu:
{
"integrations": {
"osano": {
"scriptSource": "https://cmp.osano.com/YOUR_CUSTOMER_ID/YOUR_CONFIG_ID/osano.js"
}
}
}Die Skript-URL stammt aus Ihrem Osano-Dashboard. Sie beginnt immer mit https://cmp.osano.com/ und endet mit /osano.js.
Fügen Sie dann diese Brücke in Osano hinzu (Consent Manager → Ihre Konfiguration → benutzerdefiniertes JavaScript):
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
Fügen Sie Ihr Termly-Skript in docs.json hinzu:
{
"integrations": {
"termly": {
"scriptSource": "https://app.termly.io/resource-blocker/YOUR-WEBSITE-UUID?autoBlock=on"
}
}
}Die URL stammt aus den Einbettungsanweisungen von Termly für Ihre Website (das Resource-Blocker-Skript). Die Abfrage ?autoBlock=on ist optional. Sie aktiviert das automatische Blockieren von Skripten durch Termly.
Fügen Sie dann diese Brücke in Termly hinzu (Ihre Website → benutzerdefiniertes HTML/JavaScript):
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 und Termly werden im <head> der Seite vor allen anderen Skripten geladen. Ihr automatisches Blockieren hängt davon ab.
Wenn Ihr CMP im Strict- oder Auto-Blocking-Modus läuft, setzen Sie *.jamdesk.app und Ihre eigene Doku-Domain in dessen verwalteten Regeln auf die Positivliste (Osano: Klassifizierung/Positivliste; Termly: Domain Rules oder Custom Blocking Map). Andernfalls blockiert das CMP möglicherweise die eigenen Assets Ihrer Doku-Seite und bricht die Seite.
Einrichtung testen
Die Steuerung greift nur auf Ihrer live veröffentlichten Seite. Die lokale Vorschau jamdesk dev ignoriert die Einwilligungskonfiguration. So testen Sie:
- Öffnen Sie Ihre Live-Doku-Seite mit leerem
localStorage. Die Analyse sollte nicht laden (prüfen Sie den Netzwerk-Tab des Browsers: keine Anfragen an Google, Plausible oder/api/ev). - Führen Sie in der Browser-Konsole
localStorage.setItem("jamdesk_consent", "granted")aus. Die Skripte sollten innerhalb von etwa einer Sekunde ohne Neuladen geladen werden.
Jamdesk Analytics vollständig deaktivieren
Schalten Sie die integrierte (cookielose) Analyse von Jamdesk für alle Besucher unabhängig von der Einwilligung ab:
{
"analytics": { "enabled": false }
}