Advanced Cookie & Consent Manager
Kompletny przewodnik po konfiguracji, modelu zgód, integracji Google, opt-out US, raportach zgodności i testach operacyjnych.
1. Przegląd
Plugin local_advancedcookiebanner zarządza zgodami cookies i trackerów, blokuje opcjonalne kategorie przed zgodą, loguje decyzje i wspiera scenariusze privacy (w tym US opt-out).
2. Instalacja
- Umieść plugin w
/local/advancedcookiebanner. - Uruchom upgrade z poziomu
/admin. - Wykonaj Purge all caches.
3. Ustawienia
Ścieżka: Site administration -> Plugins -> Local plugins -> Advanced Cookie Banner
| Obszar | Opcje | Opis |
|---|---|---|
| Core | enabled, consentversion, consentexpirydays, logretentiondays | Włączenie, wersjonowanie i cykl życia dowodów zgody. |
| Regulacje | jurisdictionprofile, showdonotsellshare, respectdnt, respectgpc | Profil jurysdykcji i sygnały prywatności przeglądarki. |
| UI | bannerposition, showfloatingbutton, floatingbuttonposition, hidefloatingafteraccept | Pozycja bannera/przycisku; hidefloatingafteraccept włącza akcję Close permanently w nagłówku modala. |
| Sekcje modala | showcategoriessection, showpolicydetailssection, przełączniki kategorii | Kontrola widoczności sekcji. |
enablega4, enablegtm, gtmconsentmode | Ładowanie i sterowanie consentem Google. | |
| Custom embedy | customembedproviders, externalmediabypassproviders | customembedproviders poprawia rozpoznanie i nazwę providera; externalmediabypassproviders dodaje bypass blokady externalmedia dla wybranych dostawców (np. YouTube blokowany, Panopto dozwolone). |
4. Model zgód
Statusy: accepted_all, rejected_all, custom, withdrawn, us_optout.
Kategorie: necessary, preferences, analytics, marketing, externalmedia.
Własne skrypty
<script type="text/plain" data-cookie-category="analytics" data-src="https://example.com/script.js"></script>
Embedy
<iframe data-cookie-category="externalmedia" src="https://www.youtube.com/embed/..."></iframe>
Custom providerzy i bypass
Użyj customembedproviders, aby poprawić detekcję providera (nazwa w placeholderze i akcja „Always allow this provider”). Użyj externalmediabypassproviders, gdy dany provider ma być zawsze odblokowany nawet bez zgody externalmedia.
customembedproviders: Panopto|panopto.com,panopto.eu externalmediabypassproviders: Panopto
5. GA4 / GTM
- GA4/GTM uruchamiają się dopiero po zgodzie
analytics. - Przy
gtmconsentmode=1wysyłane są aktualizacje consent do Google. - Brak zgody analytics = brak requestów do Google analytics/tag manager.
6. „Nie sprzedawaj/nie udostępniaj”
Kliknięcie zapisuje us_optout i wymusza marketing=false.
7. Raport zgodności
Raport: /local/advancedcookiebanner/report.php
- checklista konfiguracji,
- kafelki statystyk zgód,
- macierz gotowości per framework.
- Podstrona raportu Cookie Scanner:
/local/advancedcookiebanner/scannerreport.php. - Tabele skanera wspierają search i filtrowanie po kolumnach; długie URL zawijają się responsywnie.
8. Endpointy i dane
/local/advancedcookiebanner/consent.php- zapis decyzji./local/advancedcookiebanner/client_privacy.php- export/delete dla anonimowegoclientidz tokenem HMAC.- Tabela:
local_acbanner_consent. - Tabela:
local_acbanner_scan_run(metadane uruchomień skanera). - Tabela:
local_acbanner_scan_finding(wykryte elementy skanera). /local/advancedcookiebanner/scanner.php- endpoint AJAX ręcznego skanera.
9. Coverage regulacji
Coverage oznacza wsparcie mechanizmów technicznych. Finalna zgodność prawna wymaga poprawnej konfiguracji i walidacji prawnej organizacji.
10. Testy
- Incognito: sprawdź pierwszą warstwę i symetrię Accept/Reject.
- Test kategorii: preferences/analytics/marketing/externalmedia.
- Test wycofania zgody i cleanup cookies.
- Test US opt-out i statusu
us_optout. - Network: brak Google requestów przed zgodą analytics.
- Scanner smoke test: uruchom
Run scanna stronie skanera. - Test strony docelowej: uruchom
Scan selected pagei sprawdź powrót + findings.
Test resetu stanu (QA)
Gdy chcesz testować od zera bez zamykania przeglądarki, wyczyść stan zgód lokalnie:
localStorage.removeItem("local_advancedcookiebanner_consent");
localStorage.removeItem("local_advancedcookiebanner_clientid");
localStorage.removeItem("local_advancedcookiebanner_clienttoken");
document.cookie = "acb_consent_state=; Max-Age=0; path=/";
document.cookie = "acb_consent_version=; Max-Age=0; path=/";
document.cookie = "acb_clientid=; Max-Age=0; path=/";
document.cookie = "acb_consent_payload=; Max-Age=0; path=/";
location.reload();
Uwaga: w incognito decyzja jest pamiętana w ramach tej samej sesji okna. Po zamknięciu wszystkich okien incognito stan powinien się wyzerować.
11. Rozwiązywanie problemów
- Stare assets:
Purge all caches+ hard refresh. - Brak raportu: sprawdź capability
local/advancedcookiebanner:managelogs. - Skrypt uruchamia się bez zgody: zweryfikuj
type="text/plain"idata-cookie-category.