API Referenz
Vollstaendige Dokumentation aller Methoden und Konfigurationsoptionen des Consent SDK.
ConsentManager
Die zentrale Klasse fuer das Consent Management. Verwaltet Einwilligungen, Script-Blocking und Events.
constructornew ConsentManager(config: ConsentConfig)Erstellt eine neue Instanz des ConsentManagers mit der angegebenen Konfiguration.
Parameter
config | ConsentConfig | Konfigurationsobjekt fuer den Manager |
Beispiel
const consent = new ConsentManager({
apiEndpoint: 'https://api.example.com/consent',
siteId: 'my-site',
debug: true,
});initasync init(): Promise<void>Initialisiert das SDK, laedt bestehenden Consent und startet das Script-Blocking. Zeigt den Banner an falls noetig.
Beispiel
await consent.init();hasConsenthasConsent(category: ConsentCategory): booleanPrueft ob Einwilligung fuer eine Kategorie vorliegt.
Parameter
category | ConsentCategory | essential | functional | analytics | marketing | social |
Rueckgabe
boolean - true wenn Einwilligung vorliegtBeispiel
if (consent.hasConsent('analytics')) {
// Analytics laden
loadGoogleAnalytics();
}setConsentasync setConsent(input: ConsentInput): Promise<void>Setzt die Einwilligungen und speichert sie lokal sowie auf dem Server.
Parameter
input | ConsentInput | Objekt mit Kategorien und optionalen Vendors |
Beispiel
await consent.setConsent({
essential: true,
functional: true,
analytics: true,
marketing: false,
social: false,
});acceptAllasync acceptAll(): Promise<void>Akzeptiert alle Consent-Kategorien und schliesst den Banner.
Beispiel
document.getElementById('accept-all').addEventListener('click', async () => {
await consent.acceptAll();
});rejectAllasync rejectAll(): Promise<void>Lehnt alle nicht-essentiellen Kategorien ab und schliesst den Banner.
Beispiel
document.getElementById('reject-all').addEventListener('click', async () => {
await consent.rejectAll();
});revokeAllasync revokeAll(): Promise<void>Widerruft alle Einwilligungen und loescht den gespeicherten Consent.
Beispiel
document.getElementById('revoke').addEventListener('click', async () => {
await consent.revokeAll();
location.reload();
});onon<T>(event: ConsentEventType, callback: (data: T) => void): () => voidRegistriert einen Event-Listener. Gibt eine Unsubscribe-Funktion zurueck.
Parameter
event | ConsentEventType | init | change | accept_all | reject_all | banner_show | banner_hide | etc. |
callback | function | Callback-Funktion die bei Event aufgerufen wird |
Rueckgabe
() => void - Funktion zum Entfernen des ListenersBeispiel
const unsubscribe = consent.on('change', (state) => {
console.log('Consent geaendert:', state);
});
// Spaeter: Listener entfernen
unsubscribe();getConsentgetConsent(): ConsentState | nullGibt den aktuellen Consent-Status zurueck oder null falls kein Consent vorliegt.
Rueckgabe
ConsentState | nullBeispiel
const state = consent.getConsent();
if (state) {
console.log('Consent ID:', state.consentId);
console.log('Kategorien:', state.categories);
}exportConsentasync exportConsent(): Promise<string>Exportiert alle Consent-Daten als JSON-String (DSGVO Art. 20 Datenportabilitaet).
Rueckgabe
Promise<string> - JSON-formatierter ExportBeispiel
const exportData = await consent.exportConsent();
downloadAsFile(exportData, 'consent-export.json');Konfiguration
| Option | Typ | Default | Beschreibung |
|---|---|---|---|
apiEndpoint | string | erforderlich | URL des Consent-Backends |
siteId | string | erforderlich | Eindeutige Site-ID |
debug | boolean | false | Aktiviert Debug-Logging |
language | string | 'de' | Sprache fuer UI-Texte |
consent.rememberDays | number | 365 | Gueltigkeitsdauer in Tagen |
consent.recheckAfterDays | number | 180 | Erneute Abfrage nach X Tagen |
Events
| Event | Daten | Beschreibung |
|---|---|---|
init | ConsentState | null | SDK initialisiert |
change | ConsentState | Consent geaendert |
accept_all | ConsentState | Alle akzeptiert |
reject_all | ConsentState | Alle abgelehnt |
banner_show | undefined | Banner angezeigt |
banner_hide | undefined | Banner versteckt |
error | Error | Fehler aufgetreten |
TypeScript Types
// Consent-Kategorien
type ConsentCategory = 'essential' | 'functional' | 'analytics' | 'marketing' | 'social';
// Consent-Status
interface ConsentState {
categories: Record<ConsentCategory, boolean>;
vendors: Record<string, boolean>;
timestamp: string;
version: string;
consentId?: string;
expiresAt?: string;
}
// Konfiguration
interface ConsentConfig {
apiEndpoint: string;
siteId: string;
debug?: boolean;
language?: string;
fallbackLanguage?: string;
ui?: ConsentUIConfig;
consent?: ConsentBehaviorConfig;
onConsentChange?: (state: ConsentState) => void;
onBannerShow?: () => void;
onBannerHide?: () => void;
onError?: (error: Error) => void;
}