Skripte bis zur Einwilligung blockieren: Drei Methoden im Vergleich
Das Problem: Tags, die zu früh feuern
Ein Consent-Banner funktioniert nur, wenn die Tags dahinter die Entscheidung des Besuchers respektieren. Der häufigste Fehler ist simpel: Das Banner erscheint, aber Analytics- und Werbeskripte sind bereits geladen und haben Kennungen gesetzt, bevor jemand etwas angeklickt hat. Die Lösung heißt, Skripte bis zur Einwilligung zu blockieren. Dafür gibt es drei praktikable Wege.
Methode 1: Den Skripttyp umschreiben
Browser führen ein Script-Element nur aus, wenn sein Typ ein JavaScript-Typ ist. Wenn Sie den Typ auf text/plain ändern, ignoriert der Browser das Skript. Anschließend fügen Sie ein Data-Attribut hinzu, das festhält, zu welcher Einwilligungskategorie das Skript gehört:
- Ändern Sie
type="text/javascript"intype="text/plain". - Fügen Sie ein Attribut wie
data-category="analytics"hinzu. - Stimmt der Besucher dieser Kategorie zu, setzt ein kleiner Loader den Typ zurück und fügt das Skript ein, sodass es läuft.
Geeignet für: eine Handvoll bekannter Inline- oder externer Skripte in Ihren Templates. Achtung: Skripte, die von anderen Skripten eingeschleust werden, durchlaufen Ihre Templates nie und werden daher nie umgeschrieben.
Methode 2: Tags in einem Tag Manager steuern
Liegen Ihre Tags im Google Tag Manager oder einem ähnlichen Tool, können Sie den Container auf der Seite lassen und das Auslösen über einwilligungsbewusste Trigger steuern. Jedes Tag erhält eine Einwilligungsanforderung, und der Tag Manager feuert es nur, wenn der passende Einwilligungsstatus erteilt ist. Der große Vorteil ist die zentrale Kontrolle: Das Marketing kann Tags hinzufügen, ohne Templates anzufassen, und die Regel wandert mit dem Tag.
Geeignet für: Websites mit vielen Marketing-Tags. Achtung: fest eincodierte Skripte außerhalb des Containers und Custom-HTML-Tags, die ihrerseits weitere Skripte laden.
Methode 3: Skripte bei Einwilligung dynamisch laden
Hier entfernen Sie die Script-Tags komplett aus der Seite und schreiben eine Funktion, die sie erst nach einem Consent-Ereignis einfügt. Das ist die sauberste Option für Single-Page-Anwendungen und für Entwickler, die volle Kontrolle wollen:
- Hören Sie auf den Consent-Callback Ihrer CMP.
- Prüfen Sie, welche Kategorien erteilt wurden.
- Erstellen Sie ein Script-Element, setzen Sie seine Quelle und hängen Sie es an das Dokument an.
- Führen Sie Initialisierungscode im Load-Handler des Skripts aus.
Geeignet für: moderne Anwendungen mit Build-Schritt. Achtung: Das Vergessen wiederkehrender Besucher, deren gespeicherte Entscheidung beim Seitenaufruf das Laden ohne neuen Klick auslösen muss.
Widerruf behandeln
Blockieren vor der Einwilligung ist nur die halbe Arbeit. Widerruft ein Besucher seine Einwilligung später, hören Sie auf, die Tools aufzurufen, und stellen Sie sicher, dass sie keine Kennungen weiter lesen oder schreiben. Ein Skript von der Seite zu entfernen, entfernt keinen Code, der bereits im Speicher läuft; ein Neuladen nach dem Widerruf ist daher oft der einfachste zuverlässige Weg.
Welche Methode sollten Sie wählen?
- Wenige Skripte, serverseitig gerenderte Templates: Methode 1.
- Viele Marketing-Tags, die Nicht-Entwickler bearbeiten: Methode 2.
- Single-Page-App oder maßgeschneidertes Frontend: Methode 3.
- Gemischte Landschaften kombinieren oft zwei davon. Stellen Sie nur sicher, dass kein Tag von keiner abgedeckt wird.
So testen Sie es
- Öffnen Sie ein privates Fenster mit geleertem Cache.
- Öffnen Sie die Entwicklertools des Browsers auf den Tabs Network und Application, bevor Sie die Seite laden.
- Laden Sie die Seite und berühren Sie das Banner nicht. Bestätigen Sie, dass keine Analytics- oder Werbeanfragen gesendet werden und keine zugehörigen Cookies oder Speichereinträge erscheinen.
- Akzeptieren Sie nur eine Kategorie und bestätigen Sie, dass nur die passenden Skripte laden.
- Lehnen Sie alles ab, laden Sie neu und wiederholen Sie die erste Prüfung.
- Widerrufen Sie die Einwilligung und prüfen Sie das oben beschriebene Verhalten.
Wo FlexyConsent ins Spiel kommt
FlexyConsent unterstützt IAB TCF 2.4 und Google Consent Mode v2 und ist eine von Google zertifizierte CMP (CMP ID 317). Für welche Blockiermethode Sie sich auch entscheiden: Die Aufgabe des Banners ist es, Ihrem Code ein klares Signal zu geben, was der Besucher gewählt hat. Ihre Aufgabe ist es sicherzustellen, dass jedes Skript sich daran hält.
Wichtigste Erkenntnisse
- Skripte, die vor der Entscheidung des Besuchers laden, machen den Sinn des Banners zunichte.
- Typ-Umschreibung, Tag-Manager-Trigger und dynamisches Laden passen jeweils zu einer anderen Art von Website.
- Von anderen Skripten eingeschleuste Skripte sind das häufigste Leck.
- Behandeln Sie wiederkehrende Besucher und Widerruf, nicht nur den ersten Besuch.
- Testen Sie in einem sauberen privaten Fenster mit geöffneten Entwicklertools, bevor Sie das Banner berühren.