Skip to content

Google Consent Mode v2: erteilten Consent synchron ausgeben - #500

Merged
skerbis merged 1 commit into
FriendsOfREDAXO:mainfrom
tyrant88:tyrant88-patch-256
Aug 20, 2026
Merged

Google Consent Mode v2: erteilten Consent synchron ausgeben#500
skerbis merged 1 commit into
FriendsOfREDAXO:mainfrom
tyrant88:tyrant88-patch-256

Conversation

@tyrant88

Copy link
Copy Markdown
Member

Mein Fix für meine Situation von neulich (#492) hat nur einen Teil gelöst.
Der defer-Fix hat den Default-cosnent synchron gemacht.
Jetzt muss noch das consent-Update für wiederkehrende Besucher synchron gemacht werden.

Da gab es bisher immer noch eine race condition, weshalb ich es erst jetzt gemerkt habe,

Jetzt wird der bereits bekannte Consent direkt hinter dem Consent-Mode-Script ausgegeben — serverseitig aus dem Consent-Cookie.
Liegt keine Einwilligung vor, bleibt die Ausgabe leer und der denied-Default unangetastet.

Das Fragment gibt bisher nur den denied-Default synchron aus. Der granted-
Status eines wiederkehrenden Besuchers kommt erst aus
consent_manager_frontend.js, und das wird mit defer geladen — laeuft also
nach dem HTML-Parsing.

Ein Tag-Manager-Snippet im Template laedt gtm.js dagegen async. Damit
entscheidet ein Wettlauf, welchen Consent-Zustand GTM beim Start sieht.
Gewinnt gtm.js, wertet GTM Tags mit "Additional consent required"
(Facebook-Pixel, LinkedIn Insight, TikTok Pixel …) mit denied aus und feuert
sie nicht nach — sie bleiben aus, obwohl die Einwilligung vorliegt.

Gemessen an zwei Live-Installationen mit identischer Konfiguration: bei der
einen war das consent-Script nach 240 ms fertig und gtm.js nach 254 ms, dort
feuert der Pixel; bei der anderen 414 zu 419 ms, dort nicht — in einem
einzigen Seitenaufruf traten alle drei gcd-Zustaende auf (p/r/v). Im
GTM-Vorschaumodus faellt es nicht auf, weil der Debug-Modus gtm.js
zusaetzlich verzoegert.

Jetzt wird der bereits bekannte Consent direkt hinter dem Consent-Mode-Script
ausgegeben — serverseitig aus dem Consent-Cookie und mit demselben Mapping wie
im Frontend (getCookieConsentMappings).

Ruecksichtnahme auf bestehende Installationen:

- Nur im Auto-Mapping-Modus. Im manuellen Modus bestimmt der Betreiber selbst,
  welche Flags wann gesetzt werden.
- Kein Zugriff auf ein globales gtag(): eine lokale Push-Funktion in einer IIFE
  haelt die Ausgabe unabhaengig davon, ob und wie andere Scripte gtag
  definieren, und ueberschreibt nichts. Angefasst wird nur der dataLayer.
- Ohne erteilte Einwilligung bleibt die Ausgabe leer, der denied-Default ist
  unangetastet. Fuer Erstbesucher aendert sich nichts.
- Es wird ausschliesslich granted gesetzt, nie denied — eine bestehende
  Einwilligung kann dadurch nicht zurueckgenommen werden.
@tyrant88
tyrant88 requested a review from skerbis August 19, 2026 17:36
@skerbis
skerbis merged commit d5abf34 into FriendsOfREDAXO:main Aug 20, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants