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.

constructor
new ConsentManager(config: ConsentConfig)

Erstellt eine neue Instanz des ConsentManagers mit der angegebenen Konfiguration.

Parameter

configConsentConfigKonfigurationsobjekt fuer den Manager

Beispiel

const consent = new ConsentManager({
  apiEndpoint: 'https://api.example.com/consent',
  siteId: 'my-site',
  debug: true,
});
init
async init(): Promise<void>

Initialisiert das SDK, laedt bestehenden Consent und startet das Script-Blocking. Zeigt den Banner an falls noetig.

Beispiel

await consent.init();
hasConsent
hasConsent(category: ConsentCategory): boolean

Prueft ob Einwilligung fuer eine Kategorie vorliegt.

Parameter

categoryConsentCategoryessential | functional | analytics | marketing | social

Rueckgabe

boolean - true wenn Einwilligung vorliegt

Beispiel

if (consent.hasConsent('analytics')) {
  // Analytics laden
  loadGoogleAnalytics();
}
setConsent
async setConsent(input: ConsentInput): Promise<void>

Setzt die Einwilligungen und speichert sie lokal sowie auf dem Server.

Parameter

inputConsentInputObjekt mit Kategorien und optionalen Vendors

Beispiel

await consent.setConsent({
  essential: true,
  functional: true,
  analytics: true,
  marketing: false,
  social: false,
});
acceptAll
async acceptAll(): Promise<void>

Akzeptiert alle Consent-Kategorien und schliesst den Banner.

Beispiel

document.getElementById('accept-all').addEventListener('click', async () => {
  await consent.acceptAll();
});
rejectAll
async rejectAll(): Promise<void>

Lehnt alle nicht-essentiellen Kategorien ab und schliesst den Banner.

Beispiel

document.getElementById('reject-all').addEventListener('click', async () => {
  await consent.rejectAll();
});
revokeAll
async revokeAll(): Promise<void>

Widerruft alle Einwilligungen und loescht den gespeicherten Consent.

Beispiel

document.getElementById('revoke').addEventListener('click', async () => {
  await consent.revokeAll();
  location.reload();
});
on
on<T>(event: ConsentEventType, callback: (data: T) => void): () => void

Registriert einen Event-Listener. Gibt eine Unsubscribe-Funktion zurueck.

Parameter

eventConsentEventTypeinit | change | accept_all | reject_all | banner_show | banner_hide | etc.
callbackfunctionCallback-Funktion die bei Event aufgerufen wird

Rueckgabe

() => void - Funktion zum Entfernen des Listeners

Beispiel

const unsubscribe = consent.on('change', (state) => {
  console.log('Consent geaendert:', state);
});

// Spaeter: Listener entfernen
unsubscribe();
getConsent
getConsent(): ConsentState | null

Gibt den aktuellen Consent-Status zurueck oder null falls kein Consent vorliegt.

Rueckgabe

ConsentState | null

Beispiel

const state = consent.getConsent();
if (state) {
  console.log('Consent ID:', state.consentId);
  console.log('Kategorien:', state.categories);
}
exportConsent
async exportConsent(): Promise<string>

Exportiert alle Consent-Daten als JSON-String (DSGVO Art. 20 Datenportabilitaet).

Rueckgabe

Promise<string> - JSON-formatierter Export

Beispiel

const exportData = await consent.exportConsent();
downloadAsFile(exportData, 'consent-export.json');

Konfiguration

OptionTypDefaultBeschreibung
apiEndpointstringerforderlichURL des Consent-Backends
siteIdstringerforderlichEindeutige Site-ID
debugbooleanfalseAktiviert Debug-Logging
languagestring'de'Sprache fuer UI-Texte
consent.rememberDaysnumber365Gueltigkeitsdauer in Tagen
consent.recheckAfterDaysnumber180Erneute Abfrage nach X Tagen

Events

EventDatenBeschreibung
initConsentState | nullSDK initialisiert
changeConsentStateConsent geaendert
accept_allConsentStateAlle akzeptiert
reject_allConsentStateAlle abgelehnt
banner_showundefinedBanner angezeigt
banner_hideundefinedBanner versteckt
errorErrorFehler 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;
}