Zgoda na pliki cookie i Google Consent Mode v2. Moduł Cookie Consent wyświetla baner cookie zgodny z RODO z szczegółowymi kategoriami i obsługuje Google Consent Mode v2. Może wczytywać GA4, Google Tag Manager i piksel Meta (Facebook) dopiero po udzieleniu odpowiedniej zgody, do tego czasu blokować znane skrypty podmiotów trzecich, publikować deklarację plików cookie i prowadzić rejestr zgód, który można wyeksportować do CSV. Bez kodowania i bez zmian w szablonie.
Moduł Cookie Consent wyświetla baner cookie zgodny z RODO z szczegółowymi kategoriami i obsługuje Google Consent Mode v2. Może wczytywać GA4, Google Tag Manager i piksel Meta (Facebook) dopiero po udzieleniu odpowiedniej zgody, do tego czasu blokować znane skrypty podmiotów trzecich, publikować deklarację plików cookie i prowadzić rejestr zgód, który można wyeksportować do CSV. Bez kodowania i bez zmian w szablonie.
1. Instalacja
- W panelu administracyjnym (back office) należy przejść do Modules → Module Manager → Upload a module i wybrać plik ZIP modułu.
- Po zainstalowaniu należy kliknąć Configure, aby otworzyć kreator konfiguracji.
.local, .test, localhost) są zawsze dozwolone. Gdy dostępna jest nowa wersja, widać to bezpośrednio w module.Jeśli zamiast potwierdzenia pojawi się komunikat „Upload failed”, PrestaShop mógł wyłączyć moduł bez powiadomienia: ustawienia i dane pozostają na swoim miejscu. Jak zaktualizować moduł i co zrobić, gdy pojawi się komunikat „Upload failed”.
2. Konfiguracja krok po kroku
Ekran Configure ma dwie zakładki: Settings (wszystko poniżej) i Consent register (dziennik rozliczalności). Wszystkie opcje znajdują się w jednym formularzu Settings, pogrupowane w opisane tu sekcje.
Cookie consent settings
Należy otworzyć zakładkę Settings, wypełnić grupy po kolei, a następnie nacisnąć Save na dole.
- General: Enable the cookie banner (główny przełącznik: po wyłączeniu brak banera, tagów i blokowania), Banner position (Bottom bar lub Centered modal), Block third-party scripts until consent (unieszkodliwia znane trackery, Analytics, GTM, Facebook, Hotjar, DoubleClick, YouTube oraz każdy skrypt oznaczony
type="text/plain" data-cookiecategory="..."), Show only to EU visitors (best effort), Consent lifetime (months) (1-24, domyślnie 6) i Policy version (po zmianie polityki należy ją podnieść, aby ponownie zapytać wszystkich). - Categories: niezbędne pliki cookie są zawsze aktywne i nie można ich wyłączyć. Należy włączyć używane kategorie opcjonalne: Preferences, Statistics / Analytics i Marketing.
- Google & Meta tags: GA4 Measurement ID (
G-XXXXXXX, wczytywany przez gtag.js, uzależniony od Consent Mode v2 / Statistics), Google Tag Manager ID (GTM-XXXXXX, wartość domyślna Consent Mode jest wysyłana przed wczytaniem GTM) oraz Meta (Facebook) Pixel ID (numeryczny, wczytywany tylko po udzieleniu zgody Marketing). - Appearance: Background color, Text color, Primary button color i Primary button text color (wartości szesnastkowe, np.
#222222). - Banner texts (per language): nadpisują Title, Body, przycisk „Accept all”, przycisk „Reject all”, przycisk „Customise” i przycisk „Save preferences” dla każdego języka sklepu. Puste pole oznacza zachowanie wbudowanego tekstu.
- Category descriptions (per language): tekst objaśniający wyświetlany pod pozycjami Necessary, Preferences, Statistics i Marketing w panelu preferencji.
- Cookie declaration: tabela dla poszczególnych kategorii wyświetlana w panelu preferencji: należy wybrać Category i wpisać nazwę Cookie, Domain, Duration oraz Purpose. Puste pole kategorii powoduje usunięcie wiersza.
- Data: Drop data on uninstall. Należy pozostawić wyłączone: rejestr zgód jest dowodem rozliczalności, więc przetrwa odinstalowanie, o ile nie zostanie wybrana inna opcja.




3. Sprawdzenie działania
- Należy otworzyć sklep w nowym oknie lub oknie incognito: baner powinien pojawić się przy pierwszej wizycie.
- Należy kliknąć Reject all, a następnie sprawdzić kod źródłowy strony lub kartę sieci: GA4 i piksel Meta nie mogą się wczytać.
- Należy kliknąć Accept all przy nowej wizycie i sprawdzić, czy tagi teraz się uruchamiają (pojawiają się żądania gtag / GTM / piksela).
- Należy otworzyć zakładkę Consent register: wybory powinny być zapisane jako nowe wiersze. Przycisk Export CSV pobiera dziennik.

4. FAQ
Czy moduł obsługuje Google Consent Mode v2?
Tak. Wartość domyślna Consent Mode (wszystko odrzucone) jest wysyłana przed wczytaniem GTM/GA4, a zgoda jest aktualizowana, gdy odwiedzający dokona wyboru, co uzależnia od niej Statistics i Marketing.
Czy blokuje skrypty przed udzieleniem zgody?
Tak. Przy włączonym Block third-party scripts until consent znane trackery i każdy skrypt oznaczony type="text/plain" data-cookiecategory="..." uruchamiają się dopiero po udzieleniu zgody na odpowiednią kategorię.
Gdzie jest rejestr zgód i co przechowuje?
W zakładce Consent register. To dziennik rozliczalności (art. 7 ust. 1 RODO), bez danych osobowych: tożsamość odwiedzającego to haszowana wartość z solą, a adres IP jest zanonimizowany. Można go filtrować i eksportować do CSV.
Czy trzeba edytować szablon?
Nie. Baner jest samodzielny i działa przez standardowe hooki z dowolnym szablonem.
5. Sześć sygnałów Consent Mode v2 i dlaczego kolejność ma znaczenie
Baner cookie i Consent Mode v2 działają na różnych poziomach: baner to interfejs, który prosi odwiedzającego o zgodę, a Consent Mode to protokół przekazujący tę zgodę tagom Google, złożony z sygnałów o określonych nazwach. Od wersji 2 sygnałów jest sześć: ad_storage i analytics_storage (obecne już w v1) oraz ad_user_data i ad_personalization (dodane w v2), a w praktyce prawie każde wdrożenie obsługuje też functionality_storage i personalization_storage dla własnych preferencji witryny. Siódmy sygnał, security_storage, pozostaje zawsze przyznany, ponieważ obejmuje techniczne pliki cookie bezpieczeństwa, a nie śledzenie.
Najczęstszy błąd nie dotyczy wybranych wartości, lecz kolejności: tag Google, który wczytuje się, zanim witryna zadeklaruje domyślną zgodę, zachowuje się tak, jakby w ogóle nie istniał żaden mechanizm zgód. Moduł deklaruje odrzuconą wartość domyślną natychmiast po rozpoczęciu ładowania dokumentu, z 500-milisekundowym oknem tolerancji, które daje czas na ponowne odczytanie wcześniej zapisanego wyboru, i dopiero po zadeklarowaniu wartości domyślnej (lub aktualizacji, jeśli odwiedzający dokonał wyboru podczas wcześniejszej wizyty) wczytuje GTM, GA4 i każdy piksel podmiotu trzeciego.
Blokowanie skryptów podmiotów trzecich (zob. sekcja 2) polega na obserwowaniu DOM w trakcie budowania strony i rozpoznawaniu skryptu lub iframe na podstawie listy wzorców domen (na przykład google-analytics.com, facebook.net, doubleclick.net), a następnie zastąpieniu go nieaktywnym zamiennikiem do czasu zaakceptowania kategorii: bez tej warstwy odrzucona wartość domyślna obejmuje tylko tagi napisane przez samą witrynę, a nie te dostarczane wewnątrz modułów podmiotów trzecich.
Prawdziwy przypadek: poprawna wartość domyślna, baner, którego nikt nie mógł przeczytać
W naszym własnym sklepie znaleźliśmy 14 września 2026 pouczającą usterkę: sam mechanizm Consent Mode był poprawny, ale tekst banera (tytuł, treść, przyciski, nazwy kategorii) wyświetlał się po angielsku każdemu, kto przeglądał francuską, hiszpańską lub niemiecką wersję witryny, ponieważ tekst był zapisany bezpośrednio w kodzie modułu w tablicy obejmującej tylko dwa języki. Naprawiono przez dodanie trzech brakujących bloków językowych (po 17 ciągów każdy, z prawdziwymi znakami diakrytycznymi) w wersji 1.0.9. Zgoda zebrana przy wyświetlaniu tekstu, którego odwiedzający nie potrafi przeczytać, jest zgodą słabą: wymóg samego RODO polega na tym, by informacja była zrozumiała dla osoby, która ją czyta, a nie tylko technicznie obecna na stronie.
Lista kontrolna do sprawdzenia własnej konfiguracji
- W kodzie źródłowym strony głównej
gtag("consent","default",...)musi występować przed jakimkolwiek tagiem GTM lub gtag.js, a nie po nim. - Wszystkie sześć sygnałów musi być obecnych w wartości domyślnej, a nie tylko
ad_storageianalytics_storageodziedziczone z v1: brakad_user_datalubad_personalizationto najczęstszy błąd. - Za pomocą narzędzi sieciowych przeglądarki należy sprawdzić, czy skrypt taki jak Google Analytics nie uruchamia się przed zgodą: zero żądań sieciowych do tej domeny, a nie tylko zadeklarowany i zignorowany sygnał.
- Należy przełączyć język sklepu i ponownie obejrzeć baner: tekst przetłumaczony tylko w połowie jest równie częstą usterką, co niewidoczną dla osoby, która go opublikowała.
