Wie jedes Google Plugin sollte auch der Google Tag Manager erst nach Einwilligung geladen werden. Das kann mit meinem kostenfreien Consent Tool, aber auch mit anderen Cookie Tools, mit wenigen Eingriffen realisiert werden.
Einleitung
Dieser Beitrag beschreibt, wie der Tag Manager von Google nach Einwilligung geladen werden kann. Der Beitrag richtet sich an alle, die unbedingt den Google Tag Manager weiter verwenden möchten. Ich weise darauf hin, dass das Laden dieses Google Plugins auch nach Einwilligung immer noch rechtlich unsicher erscheint. Lediglich das Gestalten des Ladevorgangs kann rechtskonform gestaltet werden.
Die Gründe für die rechtlichen Probleme mit dem Google Tag Manager sind insbesondere:
- Datentransfer in die USA bzw. an ein US-geführtes Unternehmen. Vgl. EuGH-Urteil Schrems II und das damit vernichtete Privacy Shield Abkommen, für das es keinen rechtskonformen Nachfolger geben wird (trotz aktueller Bemühungen der EU-Kommission, die man leider nicht ernst nehmen kann). Wer etwas anderes behauptet, möge erklären, was mit den US-Überwachungsgesetzen EO12333, FISA 702 und Cloud Act passiert.
- Ganz erheblich unklare rechtliche Bedingungen (dank Google). Vergleiche meine Untersuchung zum Google Tag Manager.
- Weitere Gründe.
- Oft werden falsche Datenschutzhinweise gegeben. Beispiel: Viele erklären, der Google Tag Manager sei eine cookielose Domäne. Das ist zweifacher Unsinn, wie mein Bullshit Basics Beitrag zeigt.
Wer weiterhin den Tag Manager von Google nutzen möchte, findet nachfolgend eine Anleitung.
Laden des Google Tag Managers erst nach Einwilligung
Als Ausgangsbasis wähle ich mein kostenfreies Consent Tool. Das Vorgehen ist auf andere Consent Tools übertragbar, worauf ich weiter unten eingehe. Achtung: Consent Tool sind meistens keine gute Idee, vor allem wenn sie selber einwilligungspflichtig sind.
Mein Consent Tool basiert darauf, dass nur nach erteilter Nutzer-Einwilligung ein Script nachgeladen wird.
Wenn Sie das Consent Tool herunterladen, finden Sie dieses Script in der Datei namens website-script.js im Download. Achten Sie darauf, dass Ihr Server ein SSL-Zertifikat besitzt, da es ansonsten Probleme mit den Sicherheitseinstellungen der Cookies geben kann, die das Consent Tool zum Speichern des Einwilligungsstatus nutzt.
Für gewöhnlich binden Sie den Google Tag Manager wie folgt ein (früher war es eine UA-Nummer)
<!-- Google tag (gtag.js) - Google Analytics GA4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX', {
'anonymize_ip': true
});
</script>
Als Kontonummer ist hier beispielhaft G-XXXXXXXXXX hinterlegt. An diese Stelle müssen Sie Ihre eigene Google-Kontonummer setzen.
Doch wie bekommen Sie diesen Code nun in das oben erwähnte Script website-script.js rein, welches nach Einwilligung geladen wird, sodass der Google Tag Manager letztendlich eben dadurch erst nach Einwilligung aktiviert wird und arbeiten kann?
Formen Sie den Code wie folgt um und schreiben Sie diese Programmzeilen in das Script website-script.js hinein (im folgenden auch Programm genannt):
// Google Tag Manager dynamisch laden
(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];
var j = d.createElement(s);
var dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-ABCDEFGH');
Dieses kleine Programm macht Folgendes:
- Der GTM wird initialisiert
- Das GTM-Script wird geladen
- Der GTM fängt daraufhin an, wie gewohnt zu arbeiten, aber eben erst nach Einwilligung.
Ersetzen Sie 'GTM-ABCDEFGH' mit Ihrer tatsächlichen Google Tag Manager Container-ID.
Verwenden anderer Consent Tools
Wer schon ein anderes Consent Tool im Einsatz hat, hat entweder meine Testberichte nicht gelesen oder nimmt wissentlich oder unwissentlich rechtliche Unsicherheiten in Kauf. Wie auch immer, hier meine Empfehlungen, wie Sie den Google Tag Manager so einbinden, dass er garantiert erst nach Einwilligung geladen wird:
Verzichten Sie auf jeden Fall auf den automatischen Modus. Manche Consent Management Plattformen (CMPs) nennen diesen Modus auch „Cookie Blocker“ oder anders. Das bedeutet: Angeblich sorgt das Consent Tool dafür, dass Sie nichts tun müssen, außer das Cookie Tool einzubinden. Und schon sei alles DSGVO-konform. Das ist natürlich grober Unfug. Es ist technisch nicht zuverlässig möglich, automatisch einwilligungspflichtige Vorgänge zu blockieren und sie erst freizugeben, nachdem der Besucher einer Webseite eingewilligt hat.
Binden Sie den Code als inaktiven Code ein. Das geht analog zum weiter oben beschrieben Vorgehen so:
- Erzeugen Sie eine leere Datei namens mein-gtm-drdsgvo.js
- Schreiben Sie den Programmcode in die Datei, den ich weiter oben Progrämmchen genannt habe.
- Laden Sie die so erstellte Datei mein-gtm-drdsgvo.js auf Ihren Web-Server
- Binden Sie diese Datei wie folgt in Ihre Webseite ein:
<script data-src="/mein-gtm-drdsgvo.js"></script>
Wenn Sie die Datei mein-gtm-drdsgvo.js in einem Unterverzeichnis abgelegt haben, müssen Sie die Angabe nach data-src entsprechend anpassen.
Die meisten Consent Tools verstehen die Direktive data-src wie folgt:
- Der Code wird nicht ausgeführt, weil Browser diese Direktive nicht kennen (die vom Browser erkannte Direktive heißt nämlich src).
- Hat das Consent Tool eine Einwilligung vom Nutzer eingeholt und ist der automatische Modus deaktiviert, dann werden alle Script-Anweisungen mit der Direktive data-src aktiviert. Dazu schreibt das Consent Tool die Direktive data-src in src um. Sodann führt der Browser den Code aus und somit erst nach Einwilligung.
Wenn Sie mein Consent Tool (siehe oben) einsetzen: Dort sind in der Datei demo.html Anweisungen enthalten, die angeben, wo Ihr Impressum und Ihre Datenschutzhinweise sich befinden:
var drdsgvo_imp_link = "/impressum"; var drdsgvo_dse_link = "/datenschutz";
Genau diese beiden Zeilen kopieren Sie in die Script-Datei drdsgvo-consent-script.js ganz oben in die Datei hinein. Weiterhin die fett gedruckten Adressen (URLs) auf Impressum und Datenschutzhinweise anpassen, so dass sie auf Ihre Seiten zeigen.
Fazit
Wer unbedingt den Google Tag Manager einsetzen möchte, sollte ihn ebenso unbedingt erst nach Einwilligung laden. Das geht am datenschutzfreundlichsten mit einem lokal gehosteten Consent Tool wie meinem. Anbieter, die US-Datenspeicher nutzen, wie UserCentrics (Google Cloud) oder Cookiebot (Akamai), halte ich für keine gute Idee.
Als Alternative für den Tag Manager von Google empfehle ich meinen Untagmanager. Er stellt ein Grundgerüst bereit, um andere Dienste und Plugins über Scripte nachzuladen. Damit sollte zumindest ein professioneller Webseiten-Betreuer etwas anfangen können (und falls nicht, Sie kennen da sicher jemanden).
Kleiner Tipp: Wer Google Analytics einsetzen möchte (natürlich ebenfalls erst nach Einwilligung und im Bewusstsein des rechtlichen Risikos) dem möchte ich nahelegen, dass Google Analytics auch ganz ohne Google Tag Manager genutzt werden kann. Google möchte aber nicht, dass Sie das wissen. Deshalb tut Google so, als wäre der GTM unbedingt erforderlich, um GA oder GA4 zu laden. Dem ist aber nicht so.
Für alle Google Analytics Nutzer sei erneut darauf verwiesen, dass Matomo in lokaler Installation sogar einwilligungsfrei möglich ist. Entweder dient Matomo dazu, um Google Analytics vollständig zu ersetzen. Oder Matomo wird für alle Datenerfassungen ohne Einwilligung verwendet und Google Analytics für die wenigen Fälle, in denen Nutzer rechtskonform eingewilligt haben (was nichts über den rechtmäßigen Einsatz von Google Analytics aussagt, wie die französische Datenschutzaufsicht feststellte).
Um Missverständnisse zu vermeiden: Ich finde es aus Datenschutzsicht am besten, wenn gar kein Google Plugin eingesetzt wird. Ich selbst nutze diese Art von Plugins nicht und halte deren Einsatz generell rechtlich fragwürdig, auch nach Einwilligung.
Kernaussagen dieses Beitrags
Um den Google Tag Manager datenschutzkonform zu nutzen, sollte er erst nach Zustimmung des Nutzers geladen werden.
Um den Google Tag Manager erst nach Zustimmung des Nutzers zu aktivieren, sollte der Code dynamisch geladen und nicht automatisch ausgeführt werden.
Lokale Alternativen wie Matomo sollten statt Google-Plugins verwendet werden, da diese datenschutzfreundlicher sind und weniger rechtliche Risiken bergen.

gekennzeichnet.

Mein Name ist Klaus Meffert. Ich bin promovierter Informatiker und beschäftige mich seit über 30 Jahren professionell und praxisbezogen mit Informationstechnologie. In IT & Datenschutz bin ich auch als Sachverständiger tätig. Ich stehe für pragmatische Lösungen mit Mehrwert. Meine Firma, die 
Hallo,
wie sieht es aus mit dem "progrämmchen" für Matomo aus? Oder können die originalen Matomo Zeilen in die Website-Script.js Datei reinkopiert werden?
Gibt es irgendwo eine Anleitung dazu?
Über Hilfestellung danke ich.
Gruß
Hallo Herr Dr. Meffert,
was ist das für eine großartige Lösung – gern möchte ich die einsetzen.
Nun scheint sich der google-code ziemlich verändert zu haben:
https://support.google.com/tagmanager/answer/14847097?sjid=1949910654443226826-EU
Es wäre ganz toll, wenn Sie Ihren Beispielcode entsprechend anpassen würden.
Ich sag schon mal: "Danke!"
Bitte schauen Sie mal in den aktualisierten Code im Artikel, der im Block steht, der mit
// Google Tag Manager dynamisch laden
beginnt.
Funktioniert das für Sie?
Der Artikel scheint veraltet, da dort weiter die Universal Analytics-Nummern verwendet werden. Stimmt dann der Rest?
Vielen Dank für die Rückmeldung! Der Code wurde für neue GA-Versionen angepasst.