Vor dem Start
- Erstelle Konto und Workspace und aktiviere einen Plan. Konto erstellen
- Füge die Site hinzu, erlaube jeden exakten Host und konfiguriere Richtlinie und Kategorien.
- Öffne Sites → deine Site → Installation. Ersetze unten die Site-Key-Markierung durch den dort angezeigten öffentlichen Key. Dashboard öffnen
Setze jeden Teil an die richtige Stelle
nuxt.config.ts enthält den Bootstrap; plugins/mayicookies.client.ts initialisiert npm.
- Importiere oder initialisiere die Browser-Laufzeit nicht in einem Server-Plugin.
- Prüfe im gerenderten Quelltext, dass Consent-Standardwerte vor Google-Loadern anderer Module stehen.
npm install @supaapps/mayicookies<script>
window.dataLayer = window.dataLayer || [];
window.__mayicookiesConsentModeListeners = window.__mayicookiesConsentModeListeners || new Set();
window.mayicookiesAddConsentModeListener = window.mayicookiesAddConsentModeListener || function(listener) {
window.__mayicookiesConsentModeListeners.add(listener);
return function() { window.__mayicookiesConsentModeListeners.delete(listener); };
};
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied',
analytics_storage: 'denied', functionality_storage: 'denied',
personalization_storage: 'denied', security_storage: 'granted', wait_for_update: 500
});
</script>// plugins/mayicookies.client.ts
import { Mayicookies } from '@supaapps/mayicookies';
export default defineNuxtPlugin(async () => {
await Mayicookies.init({
siteKey: "REPLACE_WITH_YOUR_PUBLIC_SITE_KEY",
apiUrl: "https://api.mayicookies.com/api",
mode: 'auto',
locale: 'auto',
autoBlock: true,
googleConsentMode: { waitForUpdate: 500 },
});
});// nuxt.config.ts
export default defineNuxtConfig({
app: {
head: {
script: [
{ key: 'mayicookies-consent-defaults', innerHTML: "window.dataLayer = window.dataLayer || [];\nwindow.__mayicookiesConsentModeListeners = window.__mayicookiesConsentModeListeners || new Set();\nwindow.mayicookiesAddConsentModeListener = window.mayicookiesAddConsentModeListener || function(listener) {\n window.__mayicookiesConsentModeListeners.add(listener);\n return function() { window.__mayicookiesConsentModeListeners.delete(listener); };\n};\nfunction gtag(){dataLayer.push(arguments);}\ngtag('consent', 'default', {\n ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied',\n analytics_storage: 'denied', functionality_storage: 'denied',\n personalization_storage: 'denied', security_storage: 'granted', wait_for_update: 500\n});" },
],
},
},
});Danach: Importiere das GTM-Template und konfiguriere Consent-Prüfungen. Der Script-Einbau allein schließt GTM nicht ab. GTM Anleitungen
GTM-Template herunterladenBasic / Advanced Consent Mode
Basic Mode blockiert Google-Tags bis zur passenden Zustimmung. Advanced Mode lädt Tags mit verweigerten Standardwerten und kann cookielose Pings senden. Entscheide bewusst: Verweigerter Speicher ist nicht gleich keine Netzwerkanfrage. Das GTM-Template übermittelt Entscheidungen; deine Tag-Prüfungen steuern das Auslösen.
Andere optionale Scripts
<script type="text/plain" data-mayicookies-category="analytics" src="https://YOUR_ANALYTICS_HOST/script.js"></script>Ersetze die Anbieter-URL und nutze einen Kategorie-Key deiner Site. Lasse keine zweite aktive Kopie des Anbieter-Scripts an anderer Stelle stehen.
Halte Cookie-Einstellungen erreichbar
Setze dieses Element in einen gemeinsamen Footer oder auf die Datenschutzseite, damit Besucher ihre Auswahl ändern oder widerrufen können.
<script setup>
import { Mayicookies } from '@supaapps/mayicookies';
function openPreferences() { Mayicookies.openPreferences(); }
</script>
<template>
<button type="button" @click="openPreferences">Cookie-Einstellungen</button>
</template>Mehrsprachige Websites
Setze das lang-Attribut im HTML. Die CMP folgt ihm automatisch; eigene Texte und übersetzte Datenschutz-Links konfigurierst du im Dashboard unter Consent Policy → Languages. Beim clientseitigen Sprachwechsel rufst du Mayicookies.setLocale(language) auf, statt Bannertexte im DOM zu ersetzen. Die Einwilligung bleibt erhalten. Prüfe Übersetzungen deiner eigenen Zwecke; sie werden nicht automatisch übersetzt.
Prüfe das tatsächliche Browser-Verhalten
- Prüfe vor Consent, dass _ga und _ga_* fehlen. Prüfe im Basic Mode auch, dass keine Google-Statistik-Anfragen gesendet wurden.
- Teste Ablehnung, nur Statistik, Marketing, Änderungen, Widerruf und GPC. Wiederhole mit langsamer Verbindung.
- Prüfe einen gespeicherten Nachweis im Dashboard. Ein empfangener Nachweis belegt API-Aktivität, nicht die korrekte Tag-Reihenfolge.
- Bestätige Standardwerte und Updates mit GTM Preview und Tag Assistant. Prüfe Statistik- und Werbesignale.
Häufige Fehler
- 403 / config
- Erlaube den exakten Host, einschließlich www, falls verwendet.
- 404 / config
- Prüfe Site-Key und API-URL aus Installation.
- Google-Cookies vor Consent
- Prüfe Tag-Reihenfolge, doppelte Loader und Consent-Prüfungen. Ein verzögertes Banner löst das Problem nicht.
- Kein gespeicherter Nachweis
- Prüfe Consent-POST, Abrechnungsstatus und verbleibendes Kontingent. Eine lokal gespeicherte Auswahl belegt keinen erfolgreichen Server-Nachweis.
Mayicookies verwaltet Consent, ersetzt aber keine rechtliche Prüfung. Es scannt nicht nach Cookies und fängt nicht automatisch unkonfigurierte Scripts ab. Consent-Mode-Unterstützung ist keine Google-CMP-Zertifizierung. Prüfe deine Hinweise und jedes optionale Tag.