CookieZen używa architektury Loader + Banner i algorytmu Fail Open (blokujemy tylko znane trackery, nieznane przepuszczamy).
Warstwa 1: Loader (~3KB, synchroniczny)
Ładuje się jako pierwszy, wysyła Consent Mode defaults do GTM i uruchamia MutationObserver. Blokuje trackery bez natywnego Consent Mode:
fbq('init', ttq.load, hj('init')Warstwa 2: Banner (~30KB, asynchroniczny)
Pełny system blokowania z uwzględnieniem wszystkich kategorii i nadpisów developera.
Mechanizm blokowania skryptów:
1. MutationObserver przechwytuje nowe elementy <script> i <iframe>
2. Skrypty wymagające zgody: zmiana type na text/plain (przeglądarka ich nie wykonuje)
3. Iframe-y: usunięcie src, zapis do data-cmp-src (odblokowanie po zgodzie)
4. Hierarchia decyzji: data-cmp-category (nadpis developera) > KNOWN_TRACKER_HOSTS > wzorce inline > domyślnie przepuść
Co CookieZen NIE robi: nie nadpisuje document.cookie, localStorage ani fetch/XHR – blokuje wyłącznie wykonanie skryptów i iframe-ów.
Priorytet ładowania: Loader musi być pierwszy w <head>, aby przechwycić trackery zanim się uruchomią.