Dokumentation

CookiePilot-Dokumentation

Der komplette Leitfaden für Installation, Konfiguration und Integration von CookiePilot auf Ihrer Website.

Wähle deinen Installationsweg

Einführung

CookiePilot ist eine Consent-Management-Plattform (CMP), konform mit der DSGVO, den ePrivacy-Regeln (in Deutschland umgesetzt in § 25 TDDDG) und Google Consent Mode v2.

Für wen es gedacht ist

  • Website-Betreiber: Einsatz ganz ohne Programmierung.
  • Entwickler: API, Events, GTM-Integrationen.
  • Agenturen: White-Label, Verwaltung mehrerer Domains.

Schnellstart

Schritt 1: Registrieren

  1. Legen Sie ein Konto unter app.cookiepilot.io/register an.
  2. Fügen Sie Ihre Domain im Dashboard hinzu und kopieren Sie den API-Schlüssel (Format cp_live_...).

Schritt 2: Code einbinden

Die direkte Installation besteht aus zwei Skripten im <head>, in dieser Reihenfolge.

Schritt 2a: Standard-Einwilligung (Inline-Stub). Fügen Sie diesen zuerst ein, vor jedem anderen Skript (cookiepilot.js, GA, GTM, Werbe- und Tracking-Tags):

<script>"use strict";(function(){window.dataLayer=window.dataLayer||[];var d={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},h=false;try{for(var i=0;i<window.dataLayer.length;i++){var x=window.dataLayer[i];if(x&&x[0]==="consent"&&x[1]==="default"){h=true;break}}}catch(err){}if(!h&&window.dataLayer.length)window.dataLayer.unshift(["consent","default",d]);window.gtag=function(){window.dataLayer.push(arguments)};if(!h)window.gtag("consent","default",d);var a=document.cookie.match(/(^|)cookiepilot_consent=([^;]+)/);if(a){try{var e=JSON.parse(decodeURIComponent(a[2]));window.gtag("consent","update",{analytics_storage:e.analytics?"granted":"denied",ad_storage:e.marketing?"granted":"denied",ad_user_data:e.marketing?"granted":"denied",ad_personalization:e.marketing?"granted":"denied",functionality_storage:e.preferences?"granted":"denied",personalization_storage:e.preferences?"granted":"denied",security_storage:"granted"})}catch(err){}}})();</script>

Dieser Inline-Snippet setzt jede Kategorie sofort auf denied (mit wait_for_update: 500), sodass der Standardzustand von Google Consent Mode v2 bereitsteht, bevor irgendetwas anderes lädt. Bei einem wiederkehrenden Besucher liest er die gespeicherte Einwilligung direkt aus dem Cookie und löst ein consent update aus.

Schritt 2b: Banner-Skript. Fügen Sie dieses direkt nach dem Inline-Stub ein:

<!-- CookiePilot -->
<script async src="https://cdn.cookiepilot.io/cookiepilot.js" data-cpkey="TWOJ_KLUCZ"></script>

Schritt 3: Banner konfigurieren

Im Dashboard: Domain → Konfiguration → Erscheinungsbild:

  • Banner-Position (oben, unten, Modal),
  • Farben und Texte,
  • eine schwebende Schaltfläche „Cookie-Einstellungen" für wiederkehrende Besucher.

Integration mit Google Tag Manager

Über den GTM installieren Sie CookiePilot mit einem einzigen Custom-HTML-Tag, der den Standard-Einwilligungszustand setzt und das Banner in der frühesten GTM-Phase lädt. Sie brauchen weder eine separate Stub-Datei noch einen zweiten Tag.

Erstellen Sie im GTM einen Custom-HTML-Tag (Tags → Neu → Benutzerdefiniertes HTML) und fügen Sie ein:

<script>"use strict";
(function() {
window.dataLayer=window.dataLayer||[];var d={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},h=false;try{for(var i=0;i<window.dataLayer.length;i++){var x=window.dataLayer[i];if(x&&x[0]==="consent"&&x[1]==="default"){h=true;break}}}catch(err){}if(!h&&window.dataLayer.length)window.dataLayer.unshift(["consent","default",d]);window.gtag=function(){window.dataLayer.push(arguments)};if(!h)window.gtag("consent","default",d);var a=document.cookie.match(/(^|)cookiepilot_consent=([^;]+)/);if(a){try{var e=JSON.parse(decodeURIComponent(a[2]));window.gtag("consent","update",{analytics_storage:e.analytics?"granted":"denied",ad_storage:e.marketing?"granted":"denied",ad_user_data:e.marketing?"granted":"denied",ad_personalization:e.marketing?"granted":"denied",functionality_storage:e.preferences?"granted":"denied",personalization_storage:e.preferences?"granted":"denied",security_storage:"granted"})}catch(err){}}
var s = document.createElement('script');
s.src = 'https://cdn.cookiepilot.io/cookiepilot.js?cpkey=' + encodeURIComponent('TWOJ_KLUCZ');
document.head.appendChild(s);
})();
</script>

Trigger: Consent Initialization - All Pages. Der Tag muss einmal pro Seite auslösen. Google-Tags (GA4, Google Ads), Facebook Pixel und andere Marketing-Tags nutzen den Consent-Initialization-Trigger NICHT; sie feuern später (Consent Checks oder ein einwilligungsabhängiger Trigger). Speichern Sie den Tag und veröffentlichen Sie den GTM-Container.

Reihenfolge und Trigger

ReihenfolgeTagTrigger
1CookiePilot - Consent Init + BannerConsent Initialization - All Pages
2GA4, Google Ads, UETAll Pages (Consent Mode regelt die Einwilligung selbst)
3Facebook Pixel, TikTok, LinkedIn usw.Custom Event cookiepilot_consent_update + Einwilligungsbedingung (siehe unten)

Nicht-Google-Tags (Facebook Pixel, TikTok, LinkedIn)

Google Consent Mode deckt ausschließlich Google-Tags ab. Für jedes andere Skript schiebt das Widget bei jeder Einwilligungsänderung ein Event in den dataLayer:

dataLayer.push({
  event: 'cookiepilot_consent_update',
  cookiepilot_consent: {
    necessary: true,
    analytics: true,
    marketing: true,
    preferences: false
  }
});

Das Event feuert außerdem bei jedem Besuch eines wiederkehrenden Nutzers (sobald das Widget das Einwilligungs-Cookie liest), sodass der GTM-Trigger bei jedem Besuch greift, nicht nur bei der ersten Entscheidung.

Gemeinsames Muster (einmal einrichten)

Sie konfigurieren diese drei Bausteine einmal und verwenden sie dann für alle Nicht-Google-Tags wieder.

  1. Trigger (Triggers → New → Custom Event): Event name cookiepilot_consent_update. Keine Bedingungen, kein „Once per page" (der Tag muss nach einer geänderten Entscheidung erneut feuern können).
  2. Data Layer Variable für jede Kategorie, die Sie verwenden:
    • Name cookiepilot_consent.marketing → Variable z. B. dlv.cp_marketing
    • Name cookiepilot_consent.analytics → Variable z. B. dlv.cp_analytics
    • Name cookiepilot_consent.preferences → Variable z. B. dlv.cp_preferences
  3. Trigger Group oder eine Bedingung am Trigger: dlv.cp_marketing equals true (für Marketing-Tags) oder das jeweils passende Feld.

In jedem der folgenden Beispiele ist der Trigger dasselbe Custom Event mit einer Bedingung auf der richtigen Variable.

Facebook Pixel

Tag im GTM: Tags → New → Custom HTML.

<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'YOUR_PIXEL_ID');
fbq('track', 'PageView');
</script>
  • Trigger: cookiepilot_consent_update + Bedingung dlv.cp_marketing equals true.
  • Tag firing options: Once per page.

Für die volle Einhaltung von Facebook Limited Data Use fügen Sie optional einen zweiten Tag hinzu, der fbq('consent','revoke') mit dem Trigger dlv.cp_marketing equals false aufruft.

TikTok Pixel

Tag im GTM: Tags → New → Custom HTML.

<script>
!function (w, d, t) {
  w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script");n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
  ttq.load('YOUR_TIKTOK_PIXEL_ID');
  ttq.grantConsent();
  ttq.page();
}(window, document, 'ttq');
</script>
  • Trigger: cookiepilot_consent_update + Bedingung dlv.cp_marketing equals true.
  • Tag firing options: Once per page.

ttq.grantConsent() ist die neue TikTok-API (eingeführt 2024). Ohne sie erhält TikTok gehashte Daten ohne Einwilligung, was gegen die Nutzungsbedingungen verstößt.

LinkedIn Insight Tag

<script type="text/javascript">
_linkedin_partner_id = "YOUR_LINKEDIN_PARTNER_ID";
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
window._linkedin_data_partner_ids.push(_linkedin_partner_id);
</script>
<script type="text/javascript">
(function(l) {
if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
window.lintrk.q=[]}
var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);})(window.lintrk);
</script>
  • Trigger: cookiepilot_consent_update + Bedingung dlv.cp_marketing equals true.
  • Tag firing options: Once per page.

Hotjar

<script>
(function(h,o,t,j,a,r){
  h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
  h._hjSettings={hjid:YOUR_HOTJAR_ID,hjsv:6};
  a=o.getElementsByTagName('head')[0];
  r=o.createElement('script');r.async=1;
  r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
  a.appendChild(r);
})(window,document,'https://static.hotjar.com/c/hotjar-',".js?sv=");
</script>
  • Trigger: cookiepilot_consent_update + Bedingung dlv.cp_analytics equals true.
  • Tag firing options: Once per page.

Hotjar fällt unter analytics, nicht unter marketing (es misst Verhalten, keine Werbung). Prüfen Sie Ihre eigene Cookie-Richtlinie, denn manche Unternehmen ordnen Hotjar anders ein.

Microsoft Clarity

<script type="text/javascript">
(function(c,l,a,r,i,t,y){
  c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
  t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
  y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "YOUR_CLARITY_PROJECT_ID");
</script>
  • Trigger: cookiepilot_consent_update + Bedingung dlv.cp_analytics equals true.
  • Tag firing options: Once per page.

Pinterest Tag

<script>
!function(e){if(!window.pintrk){window.pintrk = function () {
window.pintrk.queue.push(Array.prototype.slice.call(arguments))};var
n=window.pintrk;n.queue=[],n.version="3.0";var
t=document.createElement("script");t.async=!0,t.src=e;var
r=document.getElementsByTagName("script")[0];
r.parentNode.insertBefore(t,r)}}("https://s.pinimg.com/ct/core.js");
pintrk('load', 'YOUR_PINTEREST_TAG_ID');
pintrk('page');
</script>
  • Trigger: cookiepilot_consent_update + Bedingung dlv.cp_marketing equals true.
  • Tag firing options: Once per page.

Microsoft Ads (UET)

UET unterstützt Google Consent Mode seit Ende 2023, daher brauchen Sie keinen Custom-Event-Trigger. Fügen Sie den Tag auf dem Standardweg hinzu (All Pages, Once per page); UET liest ad_storage selbst aus dem GCM, das das Widget setzt.

Kategorie-Zuordnung (Übersicht)

TagKategorieFeld in cookiepilot_consent
Facebook Pixelmarketingmarketing
TikTok Pixelmarketingmarketing
LinkedIn Insightmarketingmarketing
Pinterestmarketingmarketing
Hotjaranalyticsanalytics
Microsoft Clarityanalyticsanalytics
Mixpanel, Amplitudeanalyticsanalytics
Intercom, Drift, Crisppreferencespreferences
GA4, Google Ads, UET(GCM, kein Trigger)über gtag('consent','update') geregelt

API-Referenz

CookiePilot stellt das Objekt window.CookiePilot bereit:

MethodeBeschreibung
CookiePilot.getConsent()Der aktuelle Einwilligungszustand oder null, wenn noch keine Entscheidung getroffen wurde.
CookiePilot.acceptAll()Einwilligung in alle Kategorien.
CookiePilot.rejectAll()Lehnt alles außer necessary ab.
CookiePilot.updateConsent(partial)Aktualisiert ausgewählte Kategorien, z. B. { analytics: true }.
CookiePilot.showSettings()Öffnet das Einstellungs-Modal.
CookiePilot.hideSettings()Schließt das Einstellungs-Modal.
CookiePilot.showMyConsent() / hideMyConsent()Zeigt/verbirgt die schwebende Schaltfläche.

Beispiel

const consent = CookiePilot.getConsent();
// { necessary: true, analytics: true, marketing: false, preferences: false }

CookiePilot.updateConsent({ analytics: true });

document.getElementById('cookie-settings').addEventListener('click', () => {
  CookiePilot.showSettings();
});
<a href="#" onclick="CookiePilot.showSettings(); return false;">Cookies verwalten</a>

JavaScript-Events

Das Widget löst ein natives cookiepilot:consent-Event auf window aus. Der Listener muss vor dem Laden des Widgets registriert sein, wenn Sie das Event für einen wiederkehrenden Besucher abfangen wollen (die Auslösung erfolgt sofort, sobald das Widget startet):

<script>
  window.addEventListener('cookiepilot:consent', (e) => {
    if (e.detail.marketing) {
      fbq('init', 'YOUR_PIXEL_ID');
    }
  });
</script>
<script src="https://cdn.cookiepilot.io/cookiepilot.js" data-cpkey="TWOJ_KLUCZ"></script>

e.detail enthält dieselbe Payload wie getConsent(). Für GTM-basierte Integrationen verwenden Sie statt dieses Events das oben beschriebene dataLayer-Event, da der dataLayer ein persistentes Array ist und der GTM auch zurückliegende Events erfasst.


Einwilligungskategorien

KategorieBeschreibungStandard
necessaryFür die Funktion der Website erforderlichImmer aktiv
analyticsStatistik und AnalyseEinwilligung erforderlich
marketingWerbung und RemarketingEinwilligung erforderlich
preferencesPersonalisierung, SpracheEinwilligung erforderlich
CookiePilot-KategorieConsent-Mode-Felder
analyticsanalytics_storage
marketingad_storage, ad_user_data, ad_personalization
preferencesfunctionality_storage, personalization_storage
(immer)security_storage: granted

Version 2 ergänzte ad_user_data und ad_personalization (seit März 2024 in der EU/dem EWR für Google-Werbung erforderlich).

ParameterBeschreibung
ad_storageWerbe-Cookies
analytics_storageAnalyse-Cookies
ad_user_dataÜbermittlung von Nutzerdaten an Google
ad_personalizationPersonalisierung von Werbung
functionality_storageFunktionale Cookies
personalization_storagePersonalisierungs-Cookies
security_storageImmer granted

So funktioniert es:

  1. Der Stub setzt jedes Feld synchron auf denied, mit wait_for_update: 500.
  2. Nach der Entscheidung des Nutzers löst das Widget gtag('consent', 'update', {...}) mit der obigen Zuordnung aus.
  3. Bei einem wiederkehrenden Besucher feuert Schritt 2 sofort beim Start des Widgets, basierend auf dem Cookie.

Konfiguration des Erscheinungsbilds

Im Dashboard: Domain → Konfiguration:

  • Erscheinungsbild: Position, Farben, Layout (BAR / BOX / MODAL).
  • Texte: Überschrift, Beschreibung, Button-Beschriftungen, Kategoriebeschreibungen. 13 Sprachen (EN, PL, DE, FR, ES, IT, NL, PT, SV, CS, RO, EL, HU).
  • Einwilligungs-Button: eine schwebende Schaltfläche „Cookie-Einstellungen", die nach der ersten Entscheidung angezeigt wird (unten links/rechts).
  • Custom CSS: ein Feld für eigene Styles. Das Widget rendert im Shadow DOM, daher funktionieren CSS-Selektoren aus dem Hauptdokument nicht. Nutzen Sie ausschließlich dieses Feld.

Barrierefreiheit (WCAG 2.1 AA)

  • ✅ Tastaturnavigation (Tab, Shift+Tab, Enter, Escape).
  • ✅ ARIA-Labels, role="dialog", aria-modal.
  • ✅ Focus-Trap im Modal.
  • ✅ Screenreader-Unterstützung (Live-Regionen bei Statusänderung).
  • ✅ Responsives Design.

Integrationen

WordPress

Wir haben ein offizielles Plugin: CookiePilot auf WordPress.org.

  1. WordPress-Admin → Plugins → Installieren → nach „CookiePilot" suchen.
  2. Installieren und aktivieren.
  3. Einstellungen → CookiePilot → API-Schlüssel aus dem Dashboard einfügen.

Das Plugin fügt Stub und Tag selbst in den <head> ein (in der richtigen Reihenfolge, vor anderen Skripten) und stellt einen [cookiepilot_settings]-Shortcode für einen „Cookies verwalten"-Link im Footer bereit.

Wenn Sie lieber ohne Plugin arbeiten, nutzen Sie „Insert Headers and Footers" und fügen Sie den Snippet aus Schritt 2 des Schnellstarts in den Header-Bereich ein.

Shopify

  1. Shop → Themes → Code bearbeiten.
  2. Fügen Sie den Snippet in theme.liquid vor </head> ein.

Next.js

// app/layout.tsx
import Script from 'next/script';

export default function RootLayout({ children }) {
  return (
    <html>
      <head>
        <Script
          src="https://cdn.cookiepilot.io/cookiepilot.js"
          data-cpkey="TWOJ_KLUCZ"
          strategy="beforeInteractive"
        />
      </head>
      <body>{children}</body>
    </html>
  );
}

strategy="beforeInteractive" sorgt dafür, dass das Banner-Skript früh ausgeführt wird. Denken Sie daran, dass der Inline-Stub aus Schritt 2a (Standard-Einwilligung) separat eingebunden wird, im <head> vor diesem Skript, etwa über next/script mit dangerouslySetInnerHTML oder direkt in app/layout.tsx.


FAQ

Verlangsamt das Skript die Website?

Der Bundle ist rund 12 KB gzipped und lädt asynchron. Keine Auswirkung auf die Core Web Vitals.

Wie lange wird die Einwilligung gespeichert?

Das Entscheidungs-Cookie des Nutzers: standardmäßig 365 Tage (im Dashboard konfigurierbar). Analyse-Events: 2 Jahre (ClickHouse-TTL).

Ja. Das Widget liest beim Start das Cookie und schiebt das Event in den dataLayer. Der Custom-Event-Trigger im GTM feuert bei jedem Besuch, nicht nur bei der ersten Entscheidung.

Wo melde ich ein Problem?

kontakt@cookiepilot.io oder über den Chat im Dashboard.


Test-Checkliste nach dem Einsatz

Sobald CookiePilot installiert ist, prüfen Sie die Konfiguration, bevor Sie Werbekampagnen starten.

1. Test vor der Einwilligung des Nutzers

  1. Öffnen Sie die Website im Inkognito-Modus und löschen Sie die Cookies für die Domain.
  2. Öffnen Sie DevTools → Network und laden Sie die Seite neu.
  3. Bestätigen Sie vor dem Klick auf die Einwilligung, dass:
    • keine Analyse-/Marketing-Cookies angelegt werden, z. B. _ga, _gcl_*, _fbp, _ttp,
    • Marketing-Tags vor der Marketing-Einwilligung keine Anfragen an Meta/TikTok/LinkedIn senden,
    • der dataLayer den Standardzustand denied für ad_storage, ad_user_data, ad_personalization und analytics_storage enthält.

2. Test nach dem Erteilen der Einwilligung

  1. Klicken Sie auf „Alle akzeptieren".
  2. Prüfen Sie in den DevTools, ob das cookiepilot_consent_update-Event erschienen ist.
  3. Prüfen Sie bei Google-Tags in der GTM-Vorschau / im Tag Assistant, ob Consent Mode den Zustand für die betreffenden Kategorien auf granted umgestellt hat.
  4. Prüfen Sie bei GA4 in der DebugView, ob nach der Einwilligung Events eintreffen.
  5. Prüfen Sie bei Meta Pixel / TikTok / LinkedIn, ob die Tags erst nach dem cookiepilot_consent_update-Event und der Marketing-Einwilligungsbedingung feuern.

3. Test der Ablehnung

  1. Löschen Sie die Cookies und laden Sie die Seite neu.
  2. Klicken Sie auf „Alle ablehnen".
  3. Bestätigen Sie, dass Marketing-Cookies und -Anfragen weiterhin nicht ausgelöst werden.
  4. Bestätigen Sie, dass wesentliche Funktionen der Website weiterhin arbeiten.

4. Häufige Fehler

  • Der GA4-/Google-Ads-Tag feuert auf Consent Initialization statt auf einem späteren Trigger.
  • Der Meta Pixel oder TikTok Pixel hat keine Bedingung auf cookiepilot_consent.marketing.
  • Ein alter, fest verdrahteter Tracker steckt noch vor CookiePilot im <head>.
  • Die Dokumentation oder Vorlage enthält noch eine veraltete Skript-URL oder ein altes Identifier-Attribut statt des aktuellen cookiepilot.js mit data-cpkey.

Einwilligungsnachweis, Exporte und DSAR

CookiePilot protokolliert Einwilligungs-Events, damit Sie den Kontext einer Besucherentscheidung rekonstruieren können. Ein Datensatz kann Folgendes enthalten: Zeitpunkt des Events, Event-Typ, Domain, Seiten- oder Quell-URL, Einwilligungsversion, Kategorien und, sofern verfügbar, den Consent String, die anonymisierte IP-Adresse, einen User-Agent-Hash, den Gerätetyp und den Browser.

Exporte

  • Einwilligungsnachweis pro Besucher: JSON, CSV oder druckbares HTML.
  • Domain-Audit-Log: CSV oder JSON für einen gewählten Zeitraum.
  • Exporte sind auf Ihre Organisation und die Domains beschränkt, auf die Sie Zugriff haben.

DSAR-Workflow

Ein Owner oder Admin kann einen Datenauskunftsantrag aus einer Einwilligungszeile oder von der DSAR-Seite im Panel heraus starten. Das Panel findet die Besucher-Events, zeigt den Zeitraum an und ermöglicht das Herunterladen der Nachweisdateien. Ein Löschantrag verlangt eine Begründung und wird im Aktivitätsprotokoll der Organisation festgehalten.

Grenzen

Domain-Audit-Exporte verwenden den gewählten Zeitraum und können bei sehr großen Ergebnismengen gekürzt werden. Die Aufbewahrung des Einwilligungsprotokolls richtet sich nach dem aktiven Tarif und der Kontorichtlinie, daher verspricht die öffentliche Dokumentation keine feste Zahl an Jahren.