Zum Inhalt springen

JavaScript SDK (Client) Integration

Das JS SDK zielt auf höchste Leistung bei null Abhängigkeiten ab. Unsere Plattform löst Ihre Cookie-Verwaltungsanforderungen und ermöglicht es Ihnen, rechtlich bindende Einwilligungen einfach zu erhalten.


Starten Sie mit einem einzigen Script-Tag. Banner-Design, Cookie-Kategorien, Texte und regionale Compliance (DSGVO, CCPA…) — alles wird über das HashEntry Dashboard verwaltet:

<head>
<script
src="https://tool.hashentry.com/cmp.js"
data-site="IHR_SITE_API_KEY"
async
></script>
</head>

Das war’s. Das SDK ruft die an Ihren API-Key gebundene Konfiguration vom Server ab; Banner-Design, Farben, Sprache, Kategorien und Verhaltenseinstellungen werden alle über das Dashboard gesteuert.

Markieren Sie Skripte, die nicht vor der Einwilligung ausgeführt werden sollen, mit type="text/plain". Das SDK aktiviert sie automatisch nach der Einwilligung:

<!-- Google Analytics — läuft nicht bis "analytics" genehmigt ist -->
<script type="text/plain" data-cookie-category="analytics">
(function(i,s,o,g,r,a,m){...})(window,document,'script','https://...');
</script>
<!-- Facebook Pixel — externes Skript -->
<script type="text/plain" data-cookie-category="marketing"
data-src="https://connect.facebook.net/en_US/fbevents.js">
</script>
  1. Standard-Icon: Ein dauerhaftes „Cookie-Einstellungen”-Icon erscheint auf dem Bildschirm.
  2. Eigener Button: Icon ausblenden und CMP.show() über Ihren eigenen Footer-Link aufrufen.

AttributErforderlichStandardBeschreibung
data-siteSite-API-Key
data-modelocal-fallbackBetriebsmodus: remote, local, local-fallback
data-languageautoBanner-Sprache (auto = Browser-Erkennung)
data-regionautoRegion-Override
data-configInline-JSON-Konfiguration (local/local-fallback)
data-debugfalseEntwicklermodus
data-headlessfalseUI-loser Modus

CMP.ready(() => { console.log('HashEntry CMP geladen.'); });
CMP.show();
CMP.hide();
CMP.accept();
CMP.accept({ marketing: false });
CMP.reject();
const consent = CMP.getConsent();
CMP.hasConsent('analytics');
CMP.setMetadata({ order_id: 'ORD-54321' });
CMP.showDocumentApproval('agb', { transaction_id: 'TRX-101' })
.then(result => { if (result.approved) console.log("Genehmigt!", result.proof_hash); });
CMP.on('consent:given', (data) => { console.log("Einwilligung:", data.categories); });
<script>
window.__CMP_QUEUE = window.__CMP_QUEUE || [];
window.__CMP_QUEUE.push(['setMetadata', { order_id: 'ORD-12345' }]);
window.__CMP_QUEUE.push(['setRegion', 'DE']);
</script>

ModusVerhaltendata-siteServer
remoteKonfiguration vom Server abrufenErforderlichErforderlich
localGesamte Konfiguration von der SeiteOptionalKeiner
local-fallback (Standard)Server versuchen, bei Fehler local verwendenOptionalBevorzugt

Komplett ohne Server betreiben. Ideal für Testumgebungen und Offline-Szenarien.

<head>
<script type="application/json" id="cmp-config">
{
"banner_config": {
"layout": "bottom_bar",
"region_detection": "timezone",
"theme": {
"primary_color": "#2563EB",
"font_family": "system",
"theme_mode": "auto",
"widget_icon": "cookie",
"widget_position": "bottom_left"
},
"content": {
"title": "Cookie-Einstellungen",
"description": "Diese Website verwendet Cookies.",
"accept_button_text": "Alle akzeptieren",
"reject_button_text": "Alle ablehnen",
"settings_button_text": "Einstellungen",
"save_selected_text": "Ausgewählte akzeptieren",
"close_text": "Schließen",
"widget_label": "Cookies"
},
"categories": [
{
"key": "necessary",
"label": "Notwendig",
"description": "Für grundlegende Website-Funktionen erforderlich.",
"required": true
},
{
"key": "analytics",
"label": "Analytik",
"description": "Besucherstatistiken.",
"required": false
},
{
"key": "marketing",
"label": "Marketing",
"description": "Personalisierte Werbung.",
"required": false
}
],
"mobile_layout": "bottom_bar",
"behavior": {
"show_reject_button": true,
"show_settings_button": true,
"show_widget": true,
"show_powered_by": true,
"block_page_scroll": false,
"modal_layout": "sidebar_right",
"cookie_display_mode": "vendor",
"banner_animation": "slide_fade",
"modal_tabs": true,
"record_informational_consent": false
}
}
}
</script>
<script src="https://tool.hashentry.com/cmp.js" data-mode="local" data-language="de" async></script>
</head>

MethodeFunktionsweiseNetzwerkanfrage
timezoneLänderschätzung anhand der Browser-Zeitzone (120+ Zuordnungen)Nein
freegeoipKostenloser IP→Land-Dienst (3s Timeout, Fallback auf Timezone)Ja