hello@datascale.de+49 89 921 35 623cookiefrei getrackt · /openDEEN

Suchen Sie nach Leistungen, Integrationen und Blog-Beiträgen.

StartBlogDer Google Tag Manager braucht Einwilligung: das Urteil des VG Hannover

DSGVO

Der Google Tag Manager braucht Einwilligung: das Urteil des VG Hannover

Das VG Hannover hat entschieden: Schon der Abruf von gtm.js ist ein Zugriff auf die Endeinrichtung und braucht Einwilligung nach § 25 Abs. 1 TDDDG.

Was das VG Hannover entschieden hat

Geklagt hatte ein Zeitungsverlag gegen den Niedersächsischen Landesbeauftragten für den Datenschutz. Auslöser war eine Nutzerbeschwerde. Das Cookie-Banner bot auf der ersten Ebene nur „Alle akzeptieren“ und „Einstellungen“, und im Hintergrund lief der Google Tag Manager, bevor jemand irgendetwas angeklickt hatte. Die Behörde beanstandete beides. Der Verlag klagte, das Gericht wies die Klage ab und hielt den Bescheid für rechtmäßig.

Zwei Feststellungen, beide unangenehm konkret.

Ablehnen gehört auf die erste Ebene. Ein Banner, das die Ablehnung hinter „Einstellungen“ versteckt, ist rechtswidrig. Die Einwilligung muss sich genauso leicht verweigern wie erteilen lassen.

Der Google Tag Manager ist eigenständig einwilligungspflichtig. Nicht die Tags darin. Der Container selbst.

Das Testlabor der Aufsichtsbehörde hatte protokolliert, dass schon vor jeder Banner-Interaktion die IP-Adresse und Gerätedaten an Google-Server in den USA übermittelt wurden. Damit war für das Gericht der Tatbestand des § 25 Abs. 1 TDDDG erfüllt. Die Ausnahme in Abs. 2 Nr. 2 verlangt, dass der Zugriff unbedingt erforderlich ist, um den vom Nutzer ausdrücklich gewünschten Dienst bereitzustellen. Das verneinte das Gericht: Der GTM diene den Interessen des Betreibers, nicht denen der Nutzer, biete ihnen keine eigene Funktion und sei nicht alternativlos.

Für Marketing-Teams ist das eine ungewohnte Perspektive. Intern gilt der Tag Manager als Infrastruktur. Rechtlich ist er ein Drittdienst, auf den man auch verzichten könnte.

Was passiert, wenn gtm.js lädt

Der Standard-Einbau steht im <head>, meist direkt hinter dem Charset-Tag. Sobald der Parser dort ankommt, läuft eine Kette ab, an deren Ende Daten das Endgerät verlassen haben.

  1. Verbindungsaufbau zu www.googletagmanager.com. DNS-Auflösung, TLS-Handshake. Der Handshake überträgt den Zielhost über SNI im Klartext, die TCP-Verbindung die IP-Adresse des Besuchers.
  2. GET /gtm.js?id=GTM-XXXXXX. Der Request trägt IP-Adresse, User-Agent, Accept-Language und, je nach Referrer-Policy, die aufgerufene URL.
  3. Ausführung im Seitenkontext. Der Container liest den dataLayer, Bildschirmmaße, Sprache, gesetzte Cookies. Er entscheidet, was danach passiert.
  4. Nachladen. Typischerweise folgt gtag/js, dann der erste Treffer an /g/collect.

Schritt 1 und 2 genügen bereits. Kein Cookie, kein Klick, keine Einwilligung, und trotzdem sind IP-Adresse und Geräteeigenschaften bei einem US-Anbieter angekommen.

Request-Kette beim Standard-Einbau des Google Tag Manager

Ein Seitenaufruf, Standard-Snippet im `<head>`, Banner noch unberührt. Jeder Schritt zeigt, was das Endgerät verlässt.

Schritt 1/7 · 0 ms

Parser erreicht den head

Einwilligung: liegt nicht vorAuslieferung der Seite
Requestkein Request

Verlässt das Endgerät

  • nichts

Bis hierher ist alles unkritisch. Das Snippet steht im Markup und wartet auf Ausführung.

Beispielhafter Ablauf. Timings illustrativ, Requests und Header entsprechen dem Standard-Snippet.

Warum „kein Cookie“ nicht „kein § 25“ bedeutet

§ 25 Abs. 1 TDDDG kennt zwei Tatbestände: das Speichern von Informationen in der Endeinrichtung und den Zugriff auf Informationen, die dort bereits gespeichert sind. Cookies sind der bekannteste Fall, nicht der einzige.

Der Europäische Datenschutzausschuss hat das in den Guidelines 2/2023 zur technischen Reichweite von Art. 5 Abs. 3 ePrivacy-Richtlinie (Version 2.0, angenommen am 7. Oktober 2024) für Techniken ohne Cookie durchdekliniert: URL- und Pixel-Tracking, lokale Verarbeitung im Browser, Tracking allein über die IP-Adresse, Identifier in IoT-Kontexten. „Information“ ist dabei ausdrücklich nicht auf personenbezogene Daten begrenzt.

Wer also einwendet, der Container setze doch selbst gar nichts, verteidigt die falsche Hälfte der Norm.

Der Container-Mythos, und warum er nicht mehr trägt

„Der GTM ist neutral, er transportiert nur.“ Dieses Argument hat jahrelang Audits überlebt, weil es technisch halb stimmt: Ein leerer Container schreibt tatsächlich keine Analytics-Cookies. Nur beantwortet das eine Frage, die das Gesetz nicht stellt.

Das Gericht hat die Prüfung an zwei Punkten festgemacht, beide für Betreiber gut nachvollziehbar. Erstens die Zweckrichtung: Der Tag Manager erleichtert dem Betreiber die Verwaltung seiner Skripte, und für den Besucher, der eine Nachrichtenseite aufschlägt und einen Artikel lesen will, ändert er daran genau nichts. Zweitens die Erforderlichkeit. Tags lassen sich auch anders ausliefern, etwa direkt im Quellcode oder über eine europäische Alternative. Was ersetzbar ist, ist nicht unbedingt erforderlich.

Hier liegt die teuerste Fehlannahme. Sie ist verbreitet, weil Google zwei Varianten anbietet und der Unterschied in der Oberfläche kaum sichtbar wird.

Im Basic Consent Mode laden die Google-Tags nicht, bevor der Nutzer mit dem Banner interagiert hat. Im Advanced Consent Mode laden sie beim Öffnen der Seite und senden im Zustand denied cookielose Pings. Beides steht so in Googles eigener Dokumentation. Advanced ist der bequemere Weg und liefert die Grundlage für Conversion-Modelling, deshalb steht er in den meisten Implementierungsleitfäden.

Genau dieser Zustand lag dem Hannoveraner Verfahren zugrunde. Requests vor der Interaktion, Übermittlung von IP-Adresse und Gerätedaten, Einwilligung noch offen. Dass die Pings cookielos sind, ändert am Tatbestand des § 25 Abs. 1 nichts: Der Zugriff auf die Endeinrichtung ist bereits erfolgt, der Datenabfluss in die USA ebenfalls.

Consent Mode ist ein Signalprotokoll für das Verhalten der Tags. Den Ladezeitpunkt des Containers steuert er nicht.

Fünf Irrtümer, gegen die Rechtslage gehalten

Verbreitete AnnahmeWie das Gericht und die Norm das sehen
„Der GTM ist nur ein Container und verarbeitet selbst keine Daten.“Der Abruf von gtm.js übermittelt IP-Adresse und Gerätedaten. Das Gericht wertet den GTM als eigenständig einwilligungspflichtig.
„Ohne Cookie greift § 25 nicht.“§ 25 Abs. 1 erfasst Speichern und Zugriff. Der EDSA rechnet auch IP-, Pixel- und URL-basierte Techniken dazu.
„Consent Mode V2 löst das Problem.“Advanced Mode lädt die Tags vor der Einwilligung. Das Signal steuert ihr Verhalten, nicht den Ladezeitpunkt des Containers.
„Der GTM ist technisch notwendig, sonst funktioniert unser Tracking nicht.“Erforderlich ist, was der Nutzer für den Dienst braucht. Tags lassen sich anders ausliefern, der GTM ist nach dem Urteil nicht alternativlos.
„Ein Banner mit ‚Alle akzeptieren‘ und ‚Einstellungen‘ reicht."Ablehnen muss auf der ersten Ebene möglich sein, mit derselben Leichtigkeit wie das Akzeptieren.
Selbstcheck zum Pre-Consent-Zustand nach § 25 TDDDG

Fünf Fragen entlang der beiden Punkte aus dem Urteil. Antworten bleiben im Browser, nichts wird gesendet.

  • 01Lädt gtm.js oder ein anderes Drittanbieter-Skript, bevor der Nutzer im Banner geklickt hat?
  • 02Läuft Consent Mode im Advanced-Modus?
  • 03Gibt es auf der ersten Banner-Ebene eine Ablehnung mit derselben Prominenz wie das Akzeptieren?
  • 04Feuern nach einer Ablehnung noch Marketing- oder Analytics-Requests?
  • 05Können Sie für einen einzelnen Request belegen, welcher Consent-Zustand dabei galt?

Noch offen: 5/5

Orientierung für die technische Prüfung, keine Rechtsberatung. Der Einzelfall gehört anwaltlich bewertet.

Drei Wege raus, und was sie kosten

Es gibt keine Variante ohne Preis. Wer etwas anderes verspricht, verkauft Compliance-Theater.

Weg 1: Container komplett hinter die CMP

Der GTM wird erst geladen, wenn eine Einwilligung vorliegt. Ein Dreizeiler im CMP-Callback, in jeder Consent-Lösung in einer Stunde erledigt.

Der Preis ist hoch. Bei DACH-typischen Consent-Raten zwischen 30 und 40 % sehen Sie zwei Drittel Ihres Traffics gar nicht mehr, auch nicht anonym. Kein Modelling, keine Ladezeit-Messung, keine Server-Fehler-Erkennung. Für Sites, deren Reporting reine Marketing-Attribution ist, geht das. Für alles mit Produktverantwortung nicht.

Weg 2: CMP-Gating mit Event-Queue

Der Container bleibt der zentrale Verteiler, wird aber erst nach dem Consent-Signal instanziiert. Damit Interaktionen, die vor der Antwort passieren, nicht verloren gehen, puffert eine kleine Queue sie im Speicher und spielt sie nach der Freigabe in den dataLayer ein.

Technisch der ehrlichste Kompromiss für reine Client-Side-Setups. Sie behalten die GTM-Oberfläche, verlieren keine frühen Events der einwilligenden Nutzer und laden vorher nichts von Google. Was bleibt: Ohne Einwilligung gibt es weiterhin keine Daten, und die Messung hängt weiter an Browser-Skripten, die Safari, Firefox und Adblocker beschneiden.

Weg 3: First-Party-Loader plus Server-Container

Der Loader kommt von Ihrer eigenen Subdomain, etwa sgtm.ihredomain.de, ausgeliefert aus einem Server-Container in einer EU-Region. Der Browser spricht mit Ihrer Infrastruktur, nicht mit googletagmanager.com. Erst der Server entscheidet, was er an welche Plattform weitergibt, bereinigt oder angereichert.

Das löst drei Dinge auf einmal: Der Third-Party-Abruf beim Seitenaufruf entfällt, die IP-Adresse endet auf Ihrem Server statt bei Google, und die Consent-Prüfung wandert an eine Stelle, die Sie kontrollieren und protokollieren können. Dazu kommt der Nebeneffekt, für den die meisten Teams das Projekt überhaupt budgetieren: Server-gesetzte Cookies umgehen das 7-Tage-Limit, das Safari ITP client-seitig gesetzten Cookies auferlegt.

Drei Ladewege für den Google Tag Manager im Vergleich

Derselbe Container, drei Ladezeitpunkte. Die Zeile unter den Tabs ist der Vergleich, der Code darunter die Umsetzung.

Request vor Einwilligung
ja, mehrere
Host beim Seitenaufruf
googletagmanager.com
Interaktionen vor dem Klick
werden erfasst
Cookie-Laufzeit in Safari
7 Tage (ITP)

Der Zustand aus dem Verfahren vor dem VG Hannover.

<head>
  <meta charset="utf-8">

  <!-- Laeuft, sobald der Parser hier ankommt. Ohne Consent-Pruefung. -->
  <script>(function(w,d,s,l,i){
    w[l]=w[l]||[];
    w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
    var f=d.getElementsByTagName(s)[0], j=d.createElement(s);
    j.async=true;
    j.src='https://www.googletagmanager.com/gtm.js?id='+i;
    f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-XXXXXX');</script>
</head>

Die Auslieferung selbst ist unspektakulär. Ein Reverse-Proxy oder ein Edge-Worker reicht, der /metrics/* auf den Server-Container mappt und die Antwort mit einer eigenen Cache-Policy zurückgibt.

# nginx: Loader und Transport laufen unter der eigenen Domain.
# Kein Request an googletagmanager.com, kein Third-Party-Kontext.
location /metrics/ {
  proxy_pass         https://sgtm-container.internal:8080/;
  proxy_set_header   Host              $host;
  proxy_set_header   X-Forwarded-Proto $scheme;

  # IP-Weitergabe ist eine bewusste Entscheidung, keine Voreinstellung.
  # Für Zero-PII am Edge: Header nicht setzen oder auf /24 kürzen.
  proxy_set_header   X-Forwarded-For   "";

  proxy_hide_header  Set-Cookie;
  add_header         Cache-Control     "private, max-age=900" always;
}
// Cloudflare Worker, gleiche Aufgabe ohne eigenen Reverse-Proxy.
// Die Region des Containers bleibt EU, der Client sieht nur Ihre Domain.
export default {
  async fetch(request, env) {
    const url = new URL(request.url);
    if (!url.pathname.startsWith('/metrics/')) return fetch(request);

    const upstream = new URL(url.pathname.replace('/metrics', ''), env.SGTM_ORIGIN);
    upstream.search = url.search;

    const headers = new Headers(request.headers);
    headers.delete('cf-connecting-ip');
    headers.delete('x-forwarded-for');
    headers.set('x-ds-region', 'eu');

    return fetch(new Request(upstream, { method: request.method, headers, body: request.body }));
  },
};

Was Server-Side nicht leistet

Ein Satz, der in jedem zweiten Sales-Deck fehlt: Server-Side Tagging ersetzt keine Einwilligung.

Der First-Party-Loader beendet den Third-Party-Abruf und den US-Transfer beim Seitenaufruf. Er macht aus Remarketing kein einwilligungsfreies Verfahren. Wer über den Server-Container Conversions an Google Ads oder Meta schickt, verarbeitet weiterhin personenbezogene Daten für Werbezwecke und braucht dafür eine Rechtsgrundlage. Auch ein eigener Loader, der ohne Consent lädt und Nutzer-Identifier liest, fällt unter § 25 Abs. 1.

Was sich ändert, ist die Beweislage. Sie können zeigen, welcher Request wohin ging, welches Feld vorher entfernt wurde und welcher Consent-Zustand dabei galt. Nachweisen muss das ohnehin der Verantwortliche, nicht die Behörde, so steht es in Art. 7 Abs. 1 DSGVO.

Fünf Schritte bis zum nächsten Release

Wenn der Digital Omnibus kommt

In Brüssel liegt seit November 2025 ein Vorschlag, der die Cookie-Regeln aus der ePrivacy-Richtlinie in die DSGVO überführen soll, unter anderem als neuer Art. 88a. Vorgesehen sind eine Ablehnung per Einzelklick und Sperrfristen, bevor dieselbe Einwilligung erneut abgefragt werden darf. Stand August 2026 verhandeln Rat, Parlament und Kommission noch, ein Abschluss wird für Ende 2026 erwartet.

Zwei Dinge folgen daraus. Geltendes Recht ist es nicht, Planungsgrundlage auch nicht. Und die Richtung entlastet niemanden, der heute vor der Einwilligung lädt: Die Ablehnung per Einzelklick ist genau die Anforderung, die das VG Hannover schon aus geltendem Recht abgeleitet hat.

Wer jetzt sauber baut, baut in dieselbe Richtung.

Die Architektur ist dabei unabhängig vom Stack. Ob der Shop auf Shopify oder Shopware läuft, das Frontend Next.js, Astro oder TYPO3 heißt: Der Loader liegt auf Ihrer Subdomain, der Server-Container in einer EU-Region, und die Consent-Prüfung sitzt an einer Stelle, die Sie protokollieren. Wie das mit einer konkreten CMP aussieht, steht im Usercentrics-Guide für Server-Side GTM; die Wirtschaftlichkeit rechnet der Consent-Loss-Rechner vor.

Ist der Google Tag Manager jetzt verboten?

Nein. Verboten ist sein Einsatz ohne vorherige Einwilligung. Das VG Hannover hat entschieden, dass der Abruf von `gtm.js` auf die Endeinrichtung zugreift und deshalb § 25 Abs. 1 TDDDG unterfällt. Wer den Container erst nach einer wirksamen Einwilligung lädt, nutzt ihn weiter.

Gilt das Urteil bundesweit?

Es bindet unmittelbar nur die Beteiligten des Verfahrens. Als erste verwaltungsgerichtliche Entscheidung zu dieser Frage ist es aber ein Referenzpunkt für andere Aufsichtsbehörden, und die Anordnung, die es bestätigt hat, lässt sich auf jede vergleichbare Website übertragen.

Reicht es, den Consent Mode auf Basic umzustellen?

Für den Ladezeitpunkt ja: Im Basic Consent Mode laden die Google-Tags erst nach der Banner-Interaktion. Damit entfällt der Third-Party-Abruf vor der Einwilligung. Ungelöst bleiben die Banner-Gestaltung, das Tag-Blocking nach einer Ablehnung und der Datenverlust bei niedrigen Consent-Raten.

Macht Server-Side Tagging die Einwilligung überflüssig?

Nein. Server-Side Tagging verlagert den Zugriff auf Ihre eigene Domain und beendet den US-Transfer beim Seitenaufruf. Die Verarbeitung personenbezogener Daten zu Marketing-Zwecken braucht weiterhin eine Rechtsgrundlage, und ein Loader, der ohne Einwilligung Identifier liest, fällt weiterhin unter § 25 Abs. 1 TDDDG.

Was ist mit Matomo, Piwik PRO oder einem Consent-freien Analytics?

Reine Reichweitenmessung ohne Cookies und ohne Identifier auf dem Endgerät kann einwilligungsfrei möglich sein, wenn kein Zugriff im Sinne des § 25 Abs. 1 stattfindet. Das ist eine Frage der konkreten Konfiguration, nicht des Produktnamens, und gehört im Einzelfall geprüft.

Wie prüfe ich meine eigene Seite in fünf Minuten?

Inkognito-Fenster, DevTools → Network, Seite laden, nichts anklicken. Jeder Request an einen Drittanbieter-Host in dieser Liste ist ein Kandidat. Automatisiert macht das der [Tracking-Check](/ressourcen/tracking-check/), inklusive Pre-Consent-Requests und Reject-Verhalten.

Welche Rolle spielt der Ablehnen-Button für das GTM-Thema?

Beide Punkte hängen zusammen. Eine Einwilligung, die sich nicht genauso leicht verweigern wie erteilen lässt, ist unwirksam. Ohne wirksame Einwilligung fehlt dem Container-Abruf die Rechtsgrundlage, selbst wenn er technisch erst nach dem Klick erfolgt. --- *Haftungsausschluss: Dieser Artikel dient der technischen und operativen Orientierung und ist keine Rechtsberatung. Datascale ist keine Kanzlei. Wiedergegeben wird eine erstinstanzliche Entscheidung, deren Bewertung sich in höheren Instanzen ändern kann; die zitierten Quellen stehen oben im Artikel. Vor verbindlichen Compliance-Entscheidungen gehört der eigene Anwendungsfall anwaltlich geprüft.*

Juri Saloid

Autor

Juri Saloid

Gründer & Geschäftsführer von Datascale One. Verbindet 10+ Jahre MarTech- und Analytics-Tiefe mit dem pragmatischen Takt aus Agentur-Jahren.

Frage stellen →

Aus der Praxis

Was Sie hier lesen, prüfen wir an Ihrem Setup.

Zwei Wochen, fünf Ebenen, priorisierte Befunde mit Aufwand. Ab 2.400 € netto, ohne Folgeverpflichtung.