{"id":5665,"date":"2025-12-10T17:13:24","date_gmt":"2025-12-10T16:13:24","guid":{"rendered":"https:\/\/cocos.codes\/?p=5665"},"modified":"2026-01-21T16:07:33","modified_gmt":"2026-01-21T15:07:33","slug":"prestashop-google-tag-manager","status":"publish","type":"post","link":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/archives\/prestashop-google-tag-manager\/","title":{"rendered":"PrestaShop Google Tag Manager 1.0"},"content":{"rendered":"<h6>Dokumentacja PrestaShop Google Tag Manager<\/h6>Kompleksowa dokumentacja dla modu\u0142u PrestaShop zaawansowanej integracji z Google Tag Manager (<a href=\"https:\/\/iarina029.supserv.cozmoslabs.com\/pl\/produkt\/prestashop-google-tag-manager\/\" title=\"Cc_ps_googletrack\">cc_ps_googletrack<\/a>) z obs\u0142ug\u0105 Enhanced Ecommerce, Enhanced Conversions oraz pe\u0142n\u0105 konfiguracj\u0105 event\u00f3w.<br \/><br \/><strong>Spis tre\u015bci<\/strong><ol><li>Wprowadzenie<\/li><li>Instalacja i wymagania systemowe<\/li><li>Aktywacja modu\u0142u<\/li><li>Podstawowa konfiguracja GTM<\/li><li>Konfiguracja event\u00f3w<\/li><li>Rozszerzona warstwa danych<\/li><li>Enhanced Conversions (dane u\u017cytkownika)<\/li><li>Tryb debugowania<\/li><li>Logowanie event\u00f3w<\/li><li>W\u0142asny kod \u015bledz\u0105cy<\/li><li>System t\u0142umacze\u0144<\/li><li>Eventy &#8211; szczeg\u00f3\u0142y<\/li><li>Kalendarz event\u00f3w<\/li><li>Test Tag Assistant<\/li><li>Rozwi\u0105zywanie problem\u00f3w<\/li><li>FAQ<\/li><\/ol><h6><br \/>1. Wprowadzenie<\/h6>CC Google Tag Manager to zaawansowany modu\u0142 PrestaShop zapewniaj\u0105cy pe\u0142n\u0105 integracj\u0119 z Google Tag Manager. Modu\u0142 automatycznie \u015bledzi wszystkie kluczowe eventy Enhanced Ecommerce zgodnie z najnowszymi standardami.<br \/><br \/><strong>Kluczowe funkcje modu\u0142u:<\/strong><ul><li>Pe\u0142na integracja z Google Tag Manager (GTM)<\/li><li>Automatyczne \u015bledzenie 18 r\u00f3\u017cnych event\u00f3w<\/li><li>Enhanced Ecommerce zgodnie ze standardami Google<\/li><li>Enhanced Conversions z hashowanymi danymi u\u017cytkownika<\/li><li>Rozszerzona warstwa danych (dataLayer) z dodatkowymi informacjami<\/li><li>Konfiguracja w\u0142\u0105czania\/wy\u0142\u0105czania poszczeg\u00f3lnych event\u00f3w<\/li><li>Tryb debugowania z logowaniem do konsoli przegl\u0105darki<\/li><li>Logowanie event\u00f3w do bazy danych z przegl\u0105daniem<\/li><li>W\u0142asny kod JavaScript wykonywany na wszystkich stronach<\/li><li>Pe\u0142ny system t\u0142umacze\u0144 (polski, angielski, mo\u017cliwo\u015b\u0107 dodania innych j\u0119zyk\u00f3w)<\/li><li>Zgodno\u015b\u0107 z PrestaShop 1.7.x i 8.x oraz 9.x<\/li><li>Obs\u0142uga Google Consent Mode 2.0<\/li><\/ul><h6><br \/>2. Instalacja i wymagania systemowe<\/h6><strong>Wymagania systemowe<\/strong><ul><li>PrestaShop 1.7.0.0 lub nowszy (testowane do wersji 9.0)<\/li><li>PHP 7.4 lub nowszy<\/li><li>Dost\u0119p do panelu administracyjnego PrestaShop<\/li><li>Konto Google Tag Manager (bezp\u0142atne)<\/li><li>Opcjonalnie: Google Analytics 4 (bezp\u0142atne)<\/li><\/ul><strong>Proces instalacji<\/strong><ol><li>Pobierz plik ZIP modu\u0142u z oficjalnej strony <a class=\"button\" href=\"https:\/\/iarina029.supserv.cozmoslabs.com\" title=\"Cocos.codes\">cocos.codes<\/a><\/li><li>Zaloguj si\u0119 do panelu administracyjnego PrestaShop<\/li><li>Przejd\u017a do: Modu\u0142y \u2192 Mened\u017cer modu\u0142\u00f3w<\/li><li>Kliknij &#8222;Wgraj modu\u0142&#8221; w prawym g\u00f3rnym rogu<\/li><li>Wybierz pobrany plik ZIP i kliknij &#8222;Wgraj ten modu\u0142&#8221;<\/li><li>Po zako\u0144czeniu instalacji kliknij &#8222;Konfiguruj&#8221;<\/li><li>Modu\u0142 jest gotowy do konfiguracji<\/li><\/ol><div class=\"cc-alert cc-alert-info\"><div class=\"cc-alert-title\">Info<\/div><div class=\"cc-alert-content\">Po instalacji modu\u0142 automatycznie rejestruje wszystkie niezb\u0119dne hooki PrestaShop oraz tworzy tabel\u0119 w bazie danych do logowania event\u00f3w (je\u015bli funkcja jest w\u0142\u0105czona). Instalacja nie wymaga \u017cadnych dodatkowych krok\u00f3w technicznych.<\/div><\/div><h6><br \/>3. Aktywacja modu\u0142u<\/h6>Modu\u0142 nie wymaga osobnej aktywacji licencji &#8211; dzia\u0142a od razu po instalacji. Jednak aby rozpocz\u0105\u0107 \u015bledzenie, musimy skonfigurowa\u0107 podstawowe ustawienia.<br \/><br \/><strong>Pierwsze kroki po instalacji:<\/strong><ol><li>Przejd\u017a do Modu\u0142y \u2192 Mened\u017cer modu\u0142\u00f3w<\/li><li>Znajd\u017a modu\u0142 &#8222;CC Google Tag Manager&#8221;<\/li><li>Kliknij &#8222;Konfiguruj&#8221;<\/li><li>Zostaniemy przeniesieni do strony ustawie\u0144 modu\u0142u<\/li><\/ol><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\">Przed rozpocz\u0119ciem konfiguracji warto przygotowa\u0107 ID kontenera GTM (format: GTM-XXXXXX). Mo\u017cemy je znale\u017a\u0107 w panelu Google Tag Manager po utworzeniu nowego kontenera dla naszej witryny.<\/div><\/div><h6><br \/>4. Podstawowa konfiguracja GTM<\/h6>Konfiguracja Google Tag Manager jest pierwszym krokiem do uruchomienia \u015bledzenia w sklepie.<br \/><br \/><strong>Tworzenie kontenera GTM:<\/strong><ol><li>Przejd\u017a do <a class=\"button\" href=\"https:\/\/tagmanager.google.com\" title=\"Tagmanager.google.com\" target=\"_blank\" rel=\"noopener\">tagmanager.google.com<\/a><\/li><li>Zaloguj si\u0119 kontem Google<\/li><li>Kliknij &#8222;Utw\u00f3rz konto&#8221;<\/li><li>Podaj nazw\u0119 konta (np. nazw\u0119 firmy)<\/li><li>Podaj nazw\u0119 kontenera (np. nazw\u0119 sklepu)<\/li><li>Wybierz &#8222;Web&#8221; jako typ kontenera<\/li><li>Zaakceptuj warunki us\u0142ugi<\/li><li>Skopiuj ID kontenera (GTM-XXXXXX)<\/li><\/ol><strong>Konfiguracja w module:<\/strong><ol><li>W konfiguracji modu\u0142u znajd\u017a sekcj\u0119 &#8222;Podstawowa konfiguracja&#8221;<\/li><li>Zaznacz checkbox &#8222;W\u0142\u0105cz Google Tag Manager&#8221;<\/li><li>Wklej skopiowany GTM Container ID (np. GTM-ABC1234)<\/li><li>Kliknij &#8222;Zapisz&#8221; na dole strony<\/li><\/ol><strong>Elementy podstawowej konfiguracji:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Opcja<\/strong><\/td><td><strong>Opis<\/strong><\/td><td><strong>Warto\u015b\u0107<\/strong><\/td><\/tr><\/thead><tbody><tr><td>W\u0142\u0105cz GTM<\/td><td>Aktywuje \u015bledzenie przez GTM<\/td><td>TAK \/ NIE<\/td><\/tr><tr><td>GTM Container ID<\/td><td>Identyfikator kontenera GTM<\/td><td>GTM-XXXXXX<\/td><\/tr><\/tbody><\/table><strong>Co si\u0119 dzieje po zapisaniu:<\/strong><ul><li>Kod GTM (gtag.js) jest automatycznie dodawany do wszystkich stron sklepu<\/li><li>Skrypt GTM umieszczany jest w sekcji <span class=\"cc-highlight\">&lt;head&gt;<\/span><\/li><li>Noscript fallback dodawany jest zaraz po <span class=\"cc-highlight\">&lt;body&gt;<\/span><\/li><li>DataLayer zaczyna zbiera\u0107 dane o eventach<\/li><li>Wszystkie eventy s\u0105 automatycznie przesy\u0142ane do GTM<\/li><\/ul><div class=\"cc-alert cc-alert-success\"><div class=\"cc-alert-title\">Sukces<\/div><div class=\"cc-alert-content\">Po poprawnej konfiguracji kod GTM b\u0119dzie widoczny w \u017ar\u00f3dle strony. Mo\u017cemy to sprawdzi\u0107 przez prawym przyciskiem myszy \u2192 &#8222;Poka\u017c \u017ar\u00f3d\u0142o strony&#8221; i wyszukuj\u0105c GTM-XXXXXX. Znajdziemy tam zar\u00f3wno g\u0142\u00f3wny skrypt jak i dataLayer.<\/div><\/div><h6><br \/>5. Konfiguracja event\u00f3w<\/h6>Modu\u0142 obs\u0142uguje 18 r\u00f3\u017cnych event\u00f3w. Ka\u017cdy event mo\u017cemy w\u0142\u0105czy\u0107 lub wy\u0142\u0105czy\u0107 niezale\u017cnie wed\u0142ug potrzeb biznesowych.<br \/><br \/><strong>Lista dost\u0119pnych event\u00f3w:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Event<\/strong><\/td><td><strong>Opis<\/strong><\/td><td><strong>Kiedy jest wywo\u0142ywany<\/strong><\/td><\/tr><\/thead><tbody><tr><td>page_view<\/td><td>Wy\u015bwietlenie strony<\/td><td>Na ka\u017cdej stronie sklepu<\/td><\/tr><tr><td>view_item<\/td><td>Wy\u015bwietlenie produktu<\/td><td>Na stronie produktu<\/td><\/tr><tr><td>view_item_list<\/td><td>Wy\u015bwietlenie listy produkt\u00f3w<\/td><td>Kategorie, wyniki wyszukiwania, strona g\u0142\u00f3wna<\/td><\/tr><tr><td>select_item<\/td><td>Klikni\u0119cie w produkt<\/td><td>Klikni\u0119cie na produkt z listy<\/td><\/tr><tr><td>add_to_cart<\/td><td>Dodanie do koszyka<\/td><td>Po dodaniu produktu do koszyka<\/td><\/tr><tr><td>remove_from_cart<\/td><td>Usuni\u0119cie z koszyka<\/td><td>Po usuni\u0119ciu produktu z koszyka<\/td><\/tr><tr><td>view_cart<\/td><td>Wy\u015bwietlenie koszyka<\/td><td>Na stronie koszyka<\/td><\/tr><tr><td>begin_checkout<\/td><td>Rozpocz\u0119cie zam\u00f3wienia<\/td><td>Pierwszy krok realizacji zam\u00f3wienia<\/td><\/tr><tr><td>add_shipping_info<\/td><td>Dodanie informacji o dostawie<\/td><td>Wyb\u00f3r metody dostawy<\/td><\/tr><tr><td>add_payment_info<\/td><td>Dodanie informacji o p\u0142atno\u015bci<\/td><td>Wyb\u00f3r metody p\u0142atno\u015bci<\/td><\/tr><tr><td>purchase<\/td><td>Zakup<\/td><td>Strona potwierdzenia zam\u00f3wienia<\/td><\/tr><tr><td>search<\/td><td>Wyszukiwanie<\/td><td>U\u017cycie wyszukiwarki sklepu<\/td><\/tr><tr><td>select_promotion<\/td><td>Klikni\u0119cie w promocj\u0119<\/td><td>Klikni\u0119cie w baner promocyjny<\/td><\/tr><tr><td>login<\/td><td>Logowanie<\/td><td>Zalogowanie klienta<\/td><\/tr><tr><td>sign_up<\/td><td>Rejestracja<\/td><td>Rejestracja nowego klienta<\/td><\/tr><tr><td>add_to_wishlist<\/td><td>Dodanie do listy \u017cycze\u0144<\/td><td>Dodanie produktu do wishlist<\/td><\/tr><tr><td>share<\/td><td>Udost\u0119pnianie<\/td><td>Klikni\u0119cie w przycisk social share<\/td><\/tr><\/tbody><\/table><strong>W\u0142\u0105czanie\/wy\u0142\u0105czanie event\u00f3w:<\/strong><ol><li>W konfiguracji modu\u0142u przejd\u017a do sekcji &#8222;Konfiguracja event\u00f3w&#8221;<\/li><li>Znajd\u017a list\u0119 wszystkich 18 event\u00f3w<\/li><li>Zaznacz checkboxy przy eventach kt\u00f3re chcemy \u015bledzi\u0107<\/li><li>Odznacz checkboxy przy eventach kt\u00f3re chcemy wy\u0142\u0105czy\u0107<\/li><li>Skorzystaj z przycisk\u00f3w &#8222;Zaznacz wszystkie&#8221; lub &#8222;Odznacz wszystkie&#8221; dla szybkiej konfiguracji<\/li><li>Kliknij &#8222;Zapisz&#8221;<\/li><\/ol><strong>Przekazywanie konfiguracji do JavaScript:<\/strong><div class=\"cc-code-quote\"><pre><code>\/\/ Konfiguracja event\u00f3w przekazywana do JS jako: window.ccpsEventConfig = { 'page_view': true, 'view_item': true, 'add_to_cart': true, 'purchase': false, \/\/ ... itd. };\r\n\r\n\/\/ Sprawdzanie czy event jest w\u0142\u0105czony: function isEventEnabled(eventName) { if (typeof config.eventConfig[eventName] !== 'undefined') { return config.eventConfig[eventName]; } return true; \/\/ Domy\u015blnie w\u0142\u0105czone }<\/code><\/pre><\/div><div class=\"cc-alert cc-alert-note\"><div class=\"cc-alert-title\">Notatka<\/div><div class=\"cc-alert-content\">Wy\u0142\u0105czone eventy nie s\u0105 w og\u00f3le wysy\u0142ane do dataLayer, co oszcz\u0119dza zasoby i nie za\u015bmieca danych w Google Analytics. Je\u015bli event jest wy\u0142\u0105czony, w trybie debug pojawi si\u0119 komunikat &#8222;Event wy\u0142\u0105czony: nazwa_eventu&#8221; zamiast wysy\u0142ania danych.<\/div><\/div><h6><br \/>6. Rozszerzona warstwa danych<\/h6>Funkcja rozszerzonej warstwy danych (Enhanced Data) dodaje dodatkowe informacje do ka\u017cdego eventu, wzbogacaj\u0105c analizy w Google Analytics.<br \/><br \/><strong>Co zawiera rozszerzona warstwa danych:<\/strong><ul><li><strong>Dane strony<\/strong> &#8211; typ strony, URL, tytu\u0142, j\u0119zyk, waluta<\/li><li><strong>Dane u\u017cytkownika<\/strong> &#8211; status klienta (visitor\/guest\/customer), ID u\u017cytkownika<\/li><li><strong>Dane produkt\u00f3w<\/strong> &#8211; pe\u0142ne kategorie (do 5 poziom\u00f3w), marki, atrybuty<\/li><li><strong>Dane zam\u00f3wie\u0144<\/strong> &#8211; metody dostawy, metody p\u0142atno\u015bci, kupony<\/li><\/ul><strong>Konfiguracja rozszerzonej warstwy danych:<\/strong><ol><li>W konfiguracji modu\u0142u znajd\u017a sekcj\u0119 &#8222;Rozszerzone opcje danych&#8221;<\/li><li>Zaznacz checkbox &#8222;Rozszerzona warstwa danych&#8221;<\/li><li>Zaznacz checkbox &#8222;Dane strony&#8221; aby doda\u0107 informacje o stronie<\/li><li>Zapisz ustawienia<\/li><\/ol><strong>Przyk\u0142ad rozszerzonej warstwy danych:<\/strong><div class=\"cc-code-quote\"><pre><code>dataLayer.push({ 'event': 'page_view', 'page_type': 'product', 'page_url': 'https:\/\/example.com\/produkt', 'page_title': 'Nazwa produktu - Sklep', 'language': 'pl', 'currency': 'PLN', 'customer_status': 'customer', 'user_id': 123 });<\/code><\/pre><\/div><strong>Typy stron rozpoznawane przez modu\u0142:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Typ strony<\/strong><\/td><td><strong>Warto\u015b\u0107 page_type<\/strong><\/td><td><strong>Kiedy<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Strona g\u0142\u00f3wna<\/td><td>home<\/td><td>IndexController<\/td><\/tr><tr><td>Strona produktu<\/td><td>product<\/td><td>ProductController<\/td><\/tr><tr><td>Kategoria<\/td><td>category<\/td><td>CategoryController<\/td><\/tr><tr><td>Koszyk<\/td><td>cart<\/td><td>CartController<\/td><\/tr><tr><td>Realizacja zam\u00f3wienia<\/td><td>checkout<\/td><td>OrderController<\/td><\/tr><tr><td>Potwierdzenie zakupu<\/td><td>purchase<\/td><td>OrderConfirmationController<\/td><\/tr><tr><td>Wyszukiwanie<\/td><td>search<\/td><td>SearchController<\/td><\/tr><tr><td>Strona tre\u015bci<\/td><td>content<\/td><td>CmsController<\/td><\/tr><tr><td>Inne<\/td><td>other<\/td><td>Wszystkie pozosta\u0142e<\/td><\/tr><\/tbody><\/table><strong>Kategorie produkt\u00f3w &#8211; hierarchia:<\/strong><ul><li><strong>item_category<\/strong> &#8211; kategoria g\u0142\u00f3wna (z normalizacj\u0105 &#8211; pierwsza litera wielka)<\/li><li><strong>item_category2<\/strong> &#8211; podkategoria poziom 2<\/li><li><strong>item_category3<\/strong> &#8211; podkategoria poziom 3<\/li><li><strong>item_category4<\/strong> &#8211; podkategoria poziom 4<\/li><li><strong>item_category5<\/strong> &#8211; podkategoria poziom 5<\/li><\/ul><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\">Rozszerzona warstwa danych jest szczeg\u00f3lnie przydatna przy tworzeniu zaawansowanych segment\u00f3w w Google Analytics. Mo\u017cemy na przyk\u0142ad analizowa\u0107 konwersj\u0119 osobno dla r\u00f3\u017cnych typ\u00f3w stron, j\u0119zyk\u00f3w czy status\u00f3w klient\u00f3w. W\u0142\u0105czenie tej funkcji jest wysoce rekomendowane.<\/div><\/div><h6><br \/>7. Enhanced Conversions (dane u\u017cytkownika)<\/h6>Enhanced Conversions to funkcja Google Ads kt\u00f3ra poprawia dok\u0142adno\u015b\u0107 pomiaru konwersji poprzez przesy\u0142anie hashowanych danych u\u017cytkownik\u00f3w.<br \/><br \/><strong>Co to s\u0105 Enhanced Conversions:<\/strong><ul><li>Hashowane (SHA-256) dane osobowe u\u017cytkownik\u00f3w<\/li><li>Email, telefon, imi\u0119, nazwisko, miasto, kod pocztowy, kraj<\/li><li>Przesy\u0142ane do Google w bezpiecznej formie<\/li><li>Umo\u017cliwiaj\u0105 lepsze przypisywanie konwersji do kampanii reklamowych<\/li><li>Wymagaj\u0105 zgody u\u017cytkownika (RODO\/GDPR)<\/li><\/ul><strong>Konfiguracja Enhanced Conversions:<\/strong><ol><li>W konfiguracji modu\u0142u znajd\u017a sekcj\u0119 &#8222;Rozszerzone opcje danych&#8221;<\/li><li>Zaznacz checkbox &#8222;Dane u\u017cytkownika (Enhanced Conversions)&#8221;<\/li><li>Upewnij si\u0119, \u017ce masz zgod\u0119 u\u017cytkownik\u00f3w na przetwarzanie danych (RODO)<\/li><li>Zapisz ustawienia<\/li><\/ol><div class=\"cc-alert cc-alert-warning\"><div class=\"cc-alert-title\">Ostrze\u017cenie<\/div><div class=\"cc-alert-content\">Przesy\u0142anie danych u\u017cytkownika wymaga zgody RODO! Upewnijmy si\u0119, \u017ce nasz sklep ma aktualn\u0105 polityk\u0119 prywatno\u015bci i cookies oraz \u017ce u\u017cytkownicy wyra\u017caj\u0105 \u015bwiadom\u0105 zgod\u0119 na przetwarzanie danych. Zalecamy integracj\u0119 z modu\u0142em zarz\u0105dzania zgodami cookies jak CC PrestaShop Cookies.<\/div><\/div><strong>Jakie dane s\u0105 hashowane i przesy\u0142ane:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Dane<\/strong><\/td><td><strong>\u0179r\u00f3d\u0142o<\/strong><\/td><td><strong>Format<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Email<\/td><td>$customer-&gt;email<\/td><td>hash(&#8217;sha256&#8242;, strtolower(trim($email)))<\/td><\/tr><tr><td>Telefon<\/td><td>Pierwszy adres klienta<\/td><td>hash(&#8217;sha256&#8242;, tylko cyfry)<\/td><\/tr><tr><td>Imi\u0119<\/td><td>Pierwszy adres klienta<\/td><td>hash(&#8217;sha256&#8242;, strtolower(trim()))<\/td><\/tr><tr><td>Nazwisko<\/td><td>Pierwszy adres klienta<\/td><td>hash(&#8217;sha256&#8242;, strtolower(trim()))<\/td><\/tr><tr><td>Miasto<\/td><td>Pierwszy adres klienta<\/td><td>hash(&#8217;sha256&#8242;, strtolower(trim()))<\/td><\/tr><tr><td>Kod pocztowy<\/td><td>Pierwszy adres klienta<\/td><td>hash(&#8217;sha256&#8242;, trim())<\/td><\/tr><tr><td>Kraj<\/td><td>Pierwszy adres klienta<\/td><td>Kod kraju (bez hashowania)<\/td><\/tr><\/tbody><\/table><strong>Przyk\u0142ad danych w dataLayer:<\/strong><div class=\"cc-code-quote\"><pre><code>dataLayer.push({ 'event': 'purchase', 'user_id': 123, 'customer_status': 'customer', 'user_data': { 'email_hash': 'b4c9a289323b21a01c3e807...', 'phone_hash': '8d23cf6c86e834a7aa6edd9...', 'address': { 'first_name': 'a5bfc9e07964f8dddeb95fc...', 'last_name': '5e884898da28047151d0e56...', 'city': '1c383cd30b7c298ab50293a...', 'postal_code': '4e07408562bedb8b60ce05c...', 'country': 'PL' } } });<\/code><\/pre><\/div><strong>Statusy klient\u00f3w:<\/strong><ul><li><strong>visitor<\/strong> &#8211; niezalogowany u\u017cytkownik bez konta<\/li><li><strong>guest<\/strong> &#8211; zalogowany jako go\u015b\u0107 (guest checkout)<\/li><li><strong>customer<\/strong> &#8211; zalogowany u\u017cytkownik z pe\u0142nym kontem<\/li><\/ul><div class=\"cc-alert cc-alert-info\"><div class=\"cc-alert-title\">Info<\/div><div class=\"cc-alert-content\">Wszystkie dane osobowe s\u0105 hashowane algorytmem SHA-256 przed wys\u0142aniem do Google, co oznacza, \u017ce Google nie otrzymuje danych w formie czytelnej. Hash jest jednokierunkowy &#8211; nie mo\u017cna odtworzy\u0107 oryginalnych danych z hasha. To spe\u0142nia wymogi RODO dotycz\u0105ce minimalizacji danych.<\/div><\/div><h6><br \/>8. Tryb debugowania<\/h6>Tryb debugowania umo\u017cliwia szczeg\u00f3\u0142owe \u015bledzenie wszystkich event\u00f3w w konsoli przegl\u0105darki, co jest nieocenione podczas testowania i rozwi\u0105zywania problem\u00f3w.<br \/><br \/><strong>W\u0142\u0105czanie trybu debug:<\/strong><ol><li>W konfiguracji modu\u0142u znajd\u017a sekcj\u0119 &#8222;Rozszerzone opcje danych&#8221;<\/li><li>Zaznacz checkbox &#8222;Tryb debugowania&#8221;<\/li><li>Zapisz ustawienia<\/li><li>Otw\u00f3rz sklep w nowej karcie przegl\u0105darki<\/li><li>Otw\u00f3rz konsol\u0119 dewelopersk\u0105 (F12 \u2192 zak\u0142adka Console)<\/li><li>Od\u015bwie\u017c stron\u0119<\/li><\/ol><strong>Co wy\u015bwietla tryb debug:<\/strong><ul><li>Inicjalizacj\u0119 modu\u0142u: <span class=\"cc-highlight\">[CC Google Track] CcpsGoogleTrack v2.0 &#8211; inicjalizacja<\/span><\/li><li>Ka\u017cdy wys\u0142any event: <span class=\"cc-highlight\">[CC Google Track] Event: add_to_cart<\/span><\/li><li>Dane eventu (obiekt ecommerce)<\/li><li>Wy\u0142\u0105czone eventy: <span class=\"cc-highlight\">[CC Google Track] Event wy\u0142\u0105czony: share<\/span><\/li><li>Operacje AJAX (pobieranie danych produkt\u00f3w, wishlist, itp.)<\/li><li>B\u0142\u0119dy parsowania i obs\u0142ugi event\u00f3w<\/li><li>Eventy PrestaShop (updatedCart, updatedProduct)<\/li><li>Zako\u0144czenie inicjalizacji<\/li><\/ul><strong>Przyk\u0142ad log\u00f3w w konsoli:<\/strong><div class=\"cc-code-quote\"><pre><code>[CC Google Track] CcpsGoogleTrack v2.0 - inicjalizacja [CC Google Track] Event: page_view {page_type: \"product\", ...} [CC Google Track] Handler zarejestrowany: add_to_cart [CC Google Track] Handler zarejestrowany: remove_from_cart [CC Google Track] Handler zarejestrowany: select_item [CC Google Track] PrestaShop event: updatedCart {reason: {...}} [CC Google Track] Event: add_to_cart {currency: \"PLN\", value: 99.99, items: [...]} [CC Google Track] CcpsGoogleTrack v2.0 - inicjalizacja zako\u0144czona<\/code><\/pre><\/div><strong>R\u00f3\u017cne komunikaty debug:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Komunikat<\/strong><\/td><td><strong>Znaczenie<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Event wy\u0142\u0105czony: nazwa_eventu<\/td><td>Event jest wy\u0142\u0105czony w konfiguracji<\/td><\/tr><tr><td>Pobieranie danych produktu przez AJAX dla X<\/td><td>Modu\u0142 pobiera dane produktu z serwera<\/td><\/tr><tr><td>Otrzymano dane produktu z PHP dla X<\/td><td>Dane produktu zosta\u0142y pobrane pomy\u015blnie<\/td><\/tr><tr><td>B\u0142\u0105d AJAX X<\/td><td>Wyst\u0105pi\u0142 b\u0142\u0105d podczas pobierania danych<\/td><\/tr><tr><td>B\u0142\u0105d parsowania JSON<\/td><td>Odpowied\u017a AJAX nie jest poprawnym JSON<\/td><\/tr><tr><td>Handler zarejestrowany: nazwa<\/td><td>Obs\u0142uga eventu zosta\u0142a zainicjowana<\/td><\/tr><\/tbody><\/table><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\">Tryb debug nale\u017cy w\u0142\u0105czy\u0107 TYLKO podczas testowania. W \u015brodowisku produkcyjnym powinien by\u0107 wy\u0142\u0105czony, aby nie za\u015bmieca\u0107 konsoli odwiedzaj\u0105cych i nie spowalnia\u0107 strony. Zalecamy w\u0142\u0105czenie trybu debug na \u015brodowisku testowym\/staging przed wdro\u017ceniem na produkcj\u0119.<\/div><\/div><h6><br \/>9. Logowanie event\u00f3w<\/h6>Funkcja logowania event\u00f3w zapisuje wszystkie eventy do bazy danych PrestaShop, umo\u017cliwiaj\u0105c ich p\u00f3\u017aniejsze przegl\u0105danie i analiz\u0119.<br \/><br \/><strong>W\u0142\u0105czanie logowania event\u00f3w:<\/strong><ol><li>W konfiguracji modu\u0142u znajd\u017a sekcj\u0119 &#8222;Rozszerzone opcje danych&#8221;<\/li><li>Zaznacz checkbox &#8222;Logowanie event\u00f3w&#8221;<\/li><li>Zapisz ustawienia<\/li><li>Modu\u0142 automatycznie utworzy tabel\u0119 <span class=\"cc-highlight\">ps_ccpsgoogletrack_logs<\/span> w bazie danych<\/li><\/ol><strong>Struktura tabeli log\u00f3w:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Kolumna<\/strong><\/td><td><strong>Typ<\/strong><\/td><td><strong>Opis<\/strong><\/td><\/tr><\/thead><tbody><tr><td>id_log<\/td><td>INT AUTO_INCREMENT<\/td><td>Klucz g\u0142\u00f3wny<\/td><\/tr><tr><td>event_name<\/td><td>VARCHAR(100)<\/td><td>Nazwa eventu (np. add_to_cart)<\/td><\/tr><tr><td>data_layer<\/td><td>TEXT<\/td><td>Pe\u0142ny dataLayer w formacie JSON<\/td><\/tr><tr><td>date_add<\/td><td>DATETIME<\/td><td>Data i czas dodania<\/td><\/tr><\/tbody><\/table><strong>Przegl\u0105danie log\u00f3w:<\/strong><ol><li>W konfiguracji modu\u0142u przejd\u017a do zak\u0142adki &#8222;Logi&#8221;<\/li><li>Zobaczysz tabel\u0119 z ostatnimi 100 logami<\/li><li>Kolumny: Data, Event, Data Layer (JSON)<\/li><li>Mo\u017cliwo\u015b\u0107 wyczyszczenia wszystkich log\u00f3w przyciskiem &#8222;Wyczy\u015b\u0107 logi&#8221;<\/li><\/ol><strong>Przyk\u0142adowy wpis w logu:<\/strong><div class=\"cc-code-quote\"><pre><code>Event: add_to_cart Data: 2025-12-10 14:30:45 Data Layer: { \"event\": \"add_to_cart\", \"ecommerce\": { \"currency\": \"PLN\", \"value\": 99.99, \"items\": [ { \"item_id\": \"123\", \"item_name\": \"Produkt testowy\", \"price\": 99.99, \"quantity\": 1 } ] }, \"page_type\": \"product\", \"customer_status\": \"visitor\" }<\/code><\/pre><\/div><strong>Kiedy eventy s\u0105 logowane:<\/strong><ul><li>Eventy z panelu administracyjnego (hook displayHeader) &#8211; logowanie PHP<\/li><li>Eventy wysy\u0142ane przez JavaScript &#8211; logowanie przez AJAX<\/li><li>Wszystkie eventy poza tymi wy\u0142\u0105czonymi w konfiguracji<\/li><li>Logowanie dzia\u0142a niezale\u017cnie od trybu debug<\/li><\/ul><strong>Czyszczenie log\u00f3w:<\/strong><ol><li>W zak\u0142adce &#8222;Logi&#8221; kliknij przycisk &#8222;Wyczy\u015b\u0107 logi&#8221;<\/li><li>Potwierd\u017a operacj\u0119 w oknie dialogowym<\/li><li>Wszystkie logi zostan\u0105 usuni\u0119te z bazy danych<\/li><li>Pojawi si\u0119 komunikat potwierdzaj\u0105cy<\/li><\/ol><div class=\"cc-alert cc-alert-warning\"><div class=\"cc-alert-title\">Ostrze\u017cenie<\/div><div class=\"cc-alert-content\">Logowanie event\u00f3w mo\u017ce generowa\u0107 du\u017c\u0105 ilo\u015b\u0107 danych w bazie, szczeg\u00f3lnie w sklepach o du\u017cym ruchu. Zalecamy regularne czyszczenie log\u00f3w (np. co miesi\u0105c) lub w\u0142\u0105czanie logowania tylko podczas testowania. W \u015brodowisku produkcyjnym zwykle nie ma potrzeby permanentnego logowania.<\/div><\/div><h6><br \/>10. W\u0142asny kod \u015bledz\u0105cy<\/h6>Funkcja w\u0142asnego kodu umo\u017cliwia dodanie niestandardowego JavaScript kt\u00f3ry b\u0119dzie wykonywany na wszystkich stronach sklepu.<br \/><br \/><strong>Zastosowania w\u0142asnego kodu:<\/strong><ul><li>Dodatkowe eventy GTM nie obs\u0142ugiwane przez modu\u0142<\/li><li>Niestandardowe \u015bledzenie interakcji u\u017cytkownik\u00f3w<\/li><li>Integracja z innymi narz\u0119dziami analitycznymi<\/li><li>Modyfikacje dataLayer wed\u0142ug w\u0142asnych potrzeb<\/li><li>Skrypty remarketingowe Facebook Pixel, TikTok Pixel, etc.<\/li><\/ul><strong>Konfiguracja w\u0142asnego kodu:<\/strong><ol><li>W konfiguracji modu\u0142u znajd\u017a sekcj\u0119 &#8222;W\u0142asny kod \u015bledz\u0105cy&#8221;<\/li><li>Zaznacz checkbox &#8222;W\u0142\u0105cz w\u0142asny kod&#8221;<\/li><li>W du\u017cym polu tekstowym wpisz sw\u00f3j kod JavaScript<\/li><li>Nie u\u017cywaj tag\u00f3w <span class=\"cc-highlight\">&lt;script&gt;<\/span> &#8211; s\u0105 dodawane automatycznie<\/li><li>Zapisz ustawienia<\/li><\/ol><strong>Przyk\u0142adowy kod w\u0142asny:<\/strong><div class=\"cc-code-quote\"><pre><code>\/\/ W\u0142asny event do dataLayer dataLayer.push({ 'event': 'custom_scroll', 'scroll_depth': '50%' });\r\n\r\n\/\/ \u015aledzenie klikni\u0119\u0107 w okre\u015blone elementy\r\ndocument.querySelectorAll('.special-button').forEach(function(btn) {\r\nbtn.addEventListener('click', function() {\r\ndataLayer.push({\r\n'event': 'special_button_click',\r\n'button_text': this.textContent\r\n});\r\n});\r\n});\r\n\r\n\/\/ Facebook Pixel !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https:\/\/connect.facebook.net\/en_US\/fbevents.js'); fbq('init', 'YOUR_PIXEL_ID'); fbq('track', 'PageView');<\/code><\/pre><\/div><strong>Dost\u0119pne zmienne w w\u0142asnym kodzie:<\/strong><ul><li><span class=\"cc-highlight\">window.dataLayer<\/span> &#8211; g\u0142\u00f3wny dataLayer GTM<\/li><li><span class=\"cc-highlight\">window.ccpsGTMDebug<\/span> &#8211; czy tryb debug jest w\u0142\u0105czony<\/li><li><span class=\"cc-highlight\">window.ccpsEventConfig<\/span> &#8211; konfiguracja event\u00f3w<\/li><li><span class=\"cc-highlight\">window.ccpsUserLogged<\/span> &#8211; czy u\u017cytkownik jest zalogowany<\/li><li><span class=\"cc-highlight\">window.ccpsAjaxUrl<\/span> &#8211; URL do AJAX controllera modu\u0142u<\/li><li><span class=\"cc-highlight\">window.ccpsTranslations<\/span> &#8211; tablica t\u0142umacze\u0144<\/li><li><span class=\"cc-highlight\">prestashop<\/span> &#8211; obiekt PrestaShop (je\u015bli dost\u0119pny)<\/li><\/ul><strong>Przyk\u0142ad u\u017cycia zmiennych modu\u0142u:<\/strong><div class=\"cc-code-quote\"><pre><code>\/\/ Sprawd\u017a czy u\u017cytkownik jest zalogowany if (window.ccpsUserLogged) { dataLayer.push({ 'event': 'logged_user_pageview' }); }\r\n\r\n\/\/ U\u017cyj konfiguracji event\u00f3w\r\nif (window.ccpsEventConfig &amp;&amp; window.ccpsEventConfig['custom_event']) {\r\n\/\/ Wysy\u0142aj tylko je\u015bli event jest w\u0142\u0105czony\r\ndataLayer.push({\r\n'event': 'custom_event'\r\n});\r\n}\r\n\r\n\/\/ Debug log je\u015bli tryb debug w\u0142\u0105czony if (window.ccpsGTMDebug) { console.log('[M\u00f3j kod] Inicjalizacja zako\u0144czona'); }<\/code><\/pre><\/div><div class=\"cc-alert cc-alert-note\"><div class=\"cc-alert-title\">Notatka<\/div><div class=\"cc-alert-content\">W\u0142asny kod jest dodawany na ko\u0144cu sekcji HEAD, po kodzie GTM i po wszystkich skryptach modu\u0142u. Oznacza to, \u017ce wszystkie zmienne i funkcje modu\u0142u s\u0105 ju\u017c dost\u0119pne. Kod jest wykonywany na ka\u017cdej stronie sklepu, wi\u0119c nale\u017cy uwa\u017ca\u0107 na wydajno\u015b\u0107.<\/div><\/div><h6><br \/>11. System t\u0142umacze\u0144<\/h6>Modu\u0142 posiada pe\u0142ny system t\u0142umacze\u0144 obs\u0142uguj\u0105cy wiele j\u0119zyk\u00f3w.<br \/><br \/><strong>T\u0142umaczone elementy:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Element<\/strong><\/td><td><strong>Przyk\u0142ad PL<\/strong><\/td><td><strong>Przyk\u0142ad EN<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Nazwy event\u00f3w<\/td><td>Dodanie do koszyka (add_to_cart)<\/td><td>Add to cart (add_to_cart)<\/td><\/tr><tr><td>Komunikaty debug<\/td><td>Event wy\u0142\u0105czony:<\/td><td>Event disabled:<\/td><\/tr><tr><td>Komunikaty b\u0142\u0119d\u00f3w<\/td><td>B\u0142\u0105d pobierania danych produktu<\/td><td>Error fetching product data<\/td><\/tr><tr><td>Statusy<\/td><td>Aktywny<\/td><td>Active<\/td><\/tr><tr><td>Przyciski<\/td><td>Zapisz<\/td><td>Save<\/td><\/tr><\/tbody><\/table><strong>Mechanizm przekazywania t\u0142umacze\u0144 do JavaScript:<\/strong><div class=\"cc-code-quote\"><pre><code>\/\/ W PHP (ccpsgoogletrack.php): $translations = [ 'eventDisabled' =&gt; $this-&gt;l('Event wy\u0142\u0105czony:'), 'event' =&gt; $this-&gt;l('Event:'), 'sendingEvent' =&gt; $this-&gt;l('Wysy\u0142anie'), \/\/ ... itd. ]; $output .= '&lt;script&gt;window.ccpsTranslations = ' . json_encode($translations, JSON_UNESCAPED_UNICODE) . ';&lt;\/script&gt;';\r\n\r\n\/\/ W JavaScript (ccpsgoogletrack.js):\r\nfunction t(key, defaultText) {\r\nif (typeof window.ccpsTranslations !== 'undefined'\r\n&amp;&amp; window.ccpsTranslations[key]) {\r\nreturn window.ccpsTranslations[key];\r\n}\r\nreturn defaultText || key;\r\n}\r\n\r\n\/\/ U\u017cycie: debugLog(t('eventDisabled', 'Event wy\u0142\u0105czony:') + ' ' + event);<\/code><\/pre><\/div><strong>Dodawanie nowego j\u0119zyka:<\/strong><ol><li>Skopiuj plik <span class=\"cc-highlight\">translations\/pl.php<\/span><\/li><li>Zmie\u0144 nazw\u0119 na kod j\u0119zyka np. <span class=\"cc-highlight\">translations\/de.php<\/span> (niemiecki)<\/li><li>Otw\u00f3rz plik w edytorze tekstu<\/li><li>Przet\u0142umacz wszystkie warto\u015bci po prawej stronie (po znaku =)<\/li><li>NIE zmieniaj kluczy (po lewej stronie)<\/li><li>Zapisz plik z kodowaniem UTF-8<\/li><li>Wyczy\u015b\u0107 cache PrestaShop<\/li><\/ol><strong>Przyk\u0142ad pliku t\u0142umacze\u0144:<\/strong><div class=\"cc-code-quote\"><pre><code>&lt;?php global $_MODULE; $_MODULE = array(); $_MODULE['&lt;{ccpsgoogletrack}prestashop&gt;ccpsgoogletrack_eventdisabled'] = 'Event wy\u0142\u0105czony:'; $_MODULE['&lt;{ccpsgoogletrack}prestashop&gt;ccpsgoogletrack_event'] = 'Event:'; $_MODULE['&lt;{ccpsgoogletrack}prestashop&gt;ccpsgoogletrack_sendingevent'] = 'Wysy\u0142anie'; \/\/ ... wi\u0119cej t\u0142umacze\u0144<\/code><\/pre><\/div><strong>Lista wszystkich kluczy t\u0142umacze\u0144:<\/strong><ul><li>eventDisabled &#8211; &#8222;Event wy\u0142\u0105czony:&#8221;<\/li><li>event &#8211; &#8222;Event:&#8221;<\/li><li>sendingEvent &#8211; &#8222;Wysy\u0142anie&#8221;<\/li><li>receivedData &#8211; &#8222;Otrzymano dane produktu z PHP dla&#8221;<\/li><li>gettingProductData &#8211; &#8222;Pobieranie danych produktu przez AJAX dla&#8221;<\/li><li>ajaxError &#8211; &#8222;B\u0142\u0105d AJAX&#8221;<\/li><li>parsingError &#8211; &#8222;B\u0142\u0105d parsowania JSON:&#8221;<\/li><li>dataError &#8211; &#8222;B\u0142\u0105d pobierania danych produktu&#8221;<\/li><li>handlerRegistered &#8211; &#8222;Handler zarejestrowany&#8221;<\/li><li>initialization &#8211; &#8222;CcpsGoogleTrack v2.0 &#8211; inicjalizacja&#8221;<\/li><li>initComplete &#8211; &#8222;CcpsGoogleTrack v2.0 &#8211; inicjalizacja zako\u0144czona&#8221;<\/li><li>prestashopEvent &#8211; &#8222;PrestaShop event&#8221;<\/li><\/ul><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\">Je\u015bli sklep jest wieloj\u0119zyczny, system t\u0142umacze\u0144 automatycznie wybierze odpowiedni j\u0119zyk na podstawie aktualnego j\u0119zyka PrestaShop. Wszystkie komunikaty debug, nazwy event\u00f3w w konfiguracji oraz komunikaty systemowe b\u0119d\u0105 wy\u015bwietlane w j\u0119zyku u\u017cytkownika.<\/div><\/div><h6><br \/>12. Eventy &#8211; szczeg\u00f3\u0142y<\/h6>Szczeg\u00f3\u0142owy opis implementacji ka\u017cdego z 18 event\u00f3w obs\u0142ugiwanych przez modu\u0142.<br \/><br \/><strong>page_view &#8211; Wy\u015bwietlenie strony<\/strong><ul><li><strong>Kiedy:<\/strong> Na ka\u017cdej stronie sklepu<\/li><li><strong>Hook:<\/strong> displayHeader<\/li><li><strong>Dane:<\/strong> page_type, page_url, page_title, language, currency, customer_status<\/li><li><strong>Uwagi:<\/strong> Pierwszy event wysy\u0142any na ka\u017cdej stronie, zawiera pe\u0142ne dane kontekstowe<\/li><\/ul><strong>view_item &#8211; Wy\u015bwietlenie produktu<\/strong><ul><li><strong>Kiedy:<\/strong> Na stronie produktu<\/li><li><strong>Hook:<\/strong> displayProductAdditionalInfo<\/li><li><strong>Dane:<\/strong> currency, value, items[] (item_id, item_name, price, item_brand, item_category, quantity=1)<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> $product = prestashop.page.product lub AJAX<\/li><\/ul><strong>view_item_list &#8211; Wy\u015bwietlenie listy produkt\u00f3w<\/strong><ul><li><strong>Kiedy:<\/strong> Kategorie, strona g\u0142\u00f3wna, wyniki wyszukiwania<\/li><li><strong>Hook:<\/strong> displayFooter (dla kategorii)<\/li><li><strong>Dane:<\/strong> currency, item_list_id, item_list_name, items[] (wszystkie produkty z indeksem)<\/li><li><strong>Uwagi:<\/strong> U\u017cywa prestashop.page.page_name do identyfikacji typu listy<\/li><\/ul><strong>select_item &#8211; Klikni\u0119cie w produkt<\/strong><ul><li><strong>Kiedy:<\/strong> Klikni\u0119cie w link produktu z listy<\/li><li><strong>Mechanizm:<\/strong> JavaScript click listener na <span class=\"cc-highlight\">.product-miniature a<\/span><\/li><li><strong>Dane:<\/strong> currency, item_list_id, item_list_name, items[] (klikni\u0119ty produkt)<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> data-product-gtm attribute lub AJAX<\/li><\/ul><strong>add_to_cart &#8211; Dodanie do koszyka<\/strong><ul><li><strong>Kiedy:<\/strong> Po dodaniu produktu do koszyka<\/li><li><strong>Mechanizm:<\/strong> Przechwytywanie PrestaShop event 'updateCart&#8217;<\/li><li><strong>Dane:<\/strong> currency, value, items[] (dodany produkt z quantity)<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> prestashop.page.product lub AJAX GetProductData<\/li><li><strong>Uwagi:<\/strong> Wykrywa quantity z r\u00f3\u017cnych \u017ar\u00f3de\u0142 (#quantity_wanted, event.reason.qty, event.resp.quantity)<\/li><\/ul><strong>remove_from_cart &#8211; Usuni\u0119cie z koszyka<\/strong><ul><li><strong>Kiedy:<\/strong> Po usuni\u0119ciu produktu z koszyka<\/li><li><strong>Mechanizm:<\/strong> Click listener na <span class=\"cc-highlight\">.remove-from-cart<\/span><\/li><li><strong>Dane:<\/strong> currency, value, items[] (usuni\u0119ty produkt)<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> Atrybuty data-id-product, data-price, data-name<\/li><\/ul><strong>view_cart &#8211; Wy\u015bwietlenie koszyka<\/strong><ul><li><strong>Kiedy:<\/strong> Na stronie koszyka<\/li><li><strong>Hook:<\/strong> displayShoppingCart<\/li><li><strong>Dane:<\/strong> currency, value, items[] (wszystkie produkty w koszyku)<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> $cart-&gt;getProducts()<\/li><\/ul><strong>begin_checkout &#8211; Rozpocz\u0119cie zam\u00f3wienia<\/strong><ul><li><strong>Kiedy:<\/strong> Pierwszy krok realizacji zam\u00f3wienia<\/li><li><strong>Mechanizm:<\/strong> JavaScript na stronie checkout<\/li><li><strong>Dane:<\/strong> currency, value, items[], coupon (je\u015bli jest)<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> window.prestashop.cart<\/li><\/ul><strong>add_shipping_info &#8211; Wyb\u00f3r dostawy<\/strong><ul><li><strong>Kiedy:<\/strong> Po wyborze metody dostawy<\/li><li><strong>Hook:<\/strong> actionCarrierProcess<\/li><li><strong>Dane:<\/strong> currency, value, items[], shipping_tier (nazwa przewo\u017anika)<\/li><li><strong>Mechanizm:<\/strong> R\u00f3wnie\u017c JavaScript listener na zmian\u0119 .delivery-option input<\/li><\/ul><strong>add_payment_info &#8211; Wyb\u00f3r p\u0142atno\u015bci<\/strong><ul><li><strong>Kiedy:<\/strong> Po wyborze metody p\u0142atno\u015bci<\/li><li><strong>Mechanizm:<\/strong> JavaScript listener na <span class=\"cc-highlight\">.payment-option input<\/span><\/li><li><strong>Dane:<\/strong> currency, value, items[], payment_type (nazwa modu\u0142u p\u0142atno\u015bci)<\/li><\/ul><strong>purchase &#8211; Zakup<\/strong><ul><li><strong>Kiedy:<\/strong> Strona potwierdzenia zam\u00f3wienia<\/li><li><strong>Hook:<\/strong> displayOrderConfirmation<\/li><li><strong>Dane:<\/strong> currency, transaction_id, value, tax, shipping, coupon, items[]<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> $order = new Order($id_order)<\/li><li><strong>Uwagi:<\/strong> Najwa\u017cniejszy event dla konwersji<\/li><\/ul><strong>search &#8211; Wyszukiwanie<\/strong><ul><li><strong>Kiedy:<\/strong> U\u017cycie wyszukiwarki<\/li><li><strong>Hook:<\/strong> actionSearch<\/li><li><strong>Dane:<\/strong> search_term (fraza wyszukiwania)<\/li><li><strong>Fallback:<\/strong> JavaScript sprawdza URL params (s=, search_query=)<\/li><\/ul><strong>login &#8211; Logowanie<\/strong><ul><li><strong>Kiedy:<\/strong> Po zalogowaniu u\u017cytkownika<\/li><li><strong>Hook:<\/strong> actionAuthentication<\/li><li><strong>Mechanizm:<\/strong> R\u00f3wnie\u017c JavaScript wykrywa zmian\u0119 ccpsUserLogged w sessionStorage<\/li><li><strong>Dane:<\/strong> method: &#8217;email&#8217;<\/li><\/ul><strong>sign_up &#8211; Rejestracja<\/strong><ul><li><strong>Kiedy:<\/strong> Po rejestracji nowego klienta<\/li><li><strong>Hook:<\/strong> actionCustomerAccountAdd<\/li><li><strong>Mechanizm:<\/strong> Cookie ccps_just_registered przenoszony do sessionStorage<\/li><li><strong>Dane:<\/strong> method: &#8217;email&#8217;<\/li><\/ul><strong>add_to_wishlist &#8211; Lista \u017cycze\u0144<\/strong><ul><li><strong>Kiedy:<\/strong> Dodanie produktu do wishlist<\/li><li><strong>Mechanizm:<\/strong> Przechwytywanie fetch i XMLHttpRequest do blockwishlist<\/li><li><strong>Dane:<\/strong> currency, value, items[] (dodany produkt)<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> AJAX GetProductData<\/li><li><strong>Uwagi:<\/strong> Dzia\u0142a z modu\u0142em blockwishlist<\/li><\/ul><strong>share &#8211; Udost\u0119pnianie<\/strong><ul><li><strong>Kiedy:<\/strong> Klikni\u0119cie w przycisk social share<\/li><li><strong>Mechanizm:<\/strong> Click listener na <span class=\"cc-highlight\">.social-sharing a<\/span><\/li><li><strong>Dane:<\/strong> method (facebook\/twitter\/pinterest\/linkedin\/email), content_type, item_id, items[]<\/li><li><strong>\u0179r\u00f3d\u0142o:<\/strong> prestashop.page.product lub AJAX<\/li><\/ul><strong>select_promotion &#8211; Klikni\u0119cie w promocj\u0119<\/strong><ul><li><strong>Kiedy:<\/strong> Automatycznie je\u015bli produkt ma rabat<\/li><li><strong>Hook:<\/strong> displayProductAdditionalInfo (razem z view_item)<\/li><li><strong>Dane:<\/strong> currency, value, items[], promotion_id, promotion_name<\/li><li><strong>Uwagi:<\/strong> U\u017cywa specific_prices dla danych promocji<\/li><\/ul><div class=\"cc-alert cc-alert-success\"><div class=\"cc-alert-title\">Sukces<\/div><div class=\"cc-alert-content\">Wszystkie eventy s\u0105 zgodne z oficjaln\u0105 specyfikacj\u0105 Google Analytics 4 Enhanced Ecommerce. Struktura danych items[] zawiera wszystkie wymagane i rekomendowane pola (item_id, item_name, price, quantity, item_brand, item_category). Modu\u0142 automatycznie normalizuje nazwy kategorii (pierwsza litera wielka) i obs\u0142uguje do 5 poziom\u00f3w hierarchii kategorii.<\/div><\/div><h6><br \/>13. Kalendarz event\u00f3w<\/h6>Poni\u017cej przedstawiamy kalendarz pokazuj\u0105cy kiedy i na kt\u00f3rych stronach s\u0105 wysy\u0142ane poszczeg\u00f3lne eventy.<br \/><br \/><strong>Eventy na r\u00f3\u017cnych typach stron:<\/strong><table class=\"woocommerce-table shop_table\"><thead><tr><td><strong>Strona<\/strong><\/td><td><strong>Eventy automatyczne<\/strong><\/td><td><strong>Eventy interakcyjne<\/strong><\/td><\/tr><\/thead><tbody><tr><td>Strona g\u0142\u00f3wna<\/td><td>page_view, view_item_list<\/td><td>select_item<\/td><\/tr><tr><td>Kategoria<\/td><td>page_view, view_item_list<\/td><td>select_item<\/td><\/tr><tr><td>Wyszukiwanie<\/td><td>page_view, search, view_item_list<\/td><td>select_item<\/td><\/tr><tr><td>Produkt<\/td><td>page_view, view_item, select_promotion (je\u015bli rabat)<\/td><td>add_to_cart, add_to_wishlist, share<\/td><\/tr><tr><td>Koszyk<\/td><td>page_view, view_cart<\/td><td>remove_from_cart, begin_checkout<\/td><\/tr><tr><td>Checkout<\/td><td>page_view, begin_checkout<\/td><td>add_shipping_info, add_payment_info<\/td><\/tr><tr><td>Potwierdzenie<\/td><td>page_view, purchase<\/td><td>&#8211;<\/td><\/tr><tr><td>Logowanie<\/td><td>page_view, login<\/td><td>&#8211;<\/td><\/tr><tr><td>Rejestracja<\/td><td>page_view, sign_up<\/td><td>&#8211;<\/td><\/tr><\/tbody><\/table><strong>\u015acie\u017cka klienta (customer journey) z eventami:<\/strong><ol><li><strong>Strona g\u0142\u00f3wna<\/strong> \u2192 page_view, view_item_list<\/li><li><strong>Klikni\u0119cie w produkt<\/strong> \u2192 select_item<\/li><li><strong>Strona produktu<\/strong> \u2192 page_view, view_item, (select_promotion)<\/li><li><strong>Dodanie do koszyka<\/strong> \u2192 add_to_cart<\/li><li><strong>Strona koszyka<\/strong> \u2192 page_view, view_cart<\/li><li><strong>Rozpocz\u0119cie zam\u00f3wienia<\/strong> \u2192 begin_checkout<\/li><li><strong>Wyb\u00f3r dostawy<\/strong> \u2192 add_shipping_info<\/li><li><strong>Wyb\u00f3r p\u0142atno\u015bci<\/strong> \u2192 add_payment_info<\/li><li><strong>Potwierdzenie<\/strong> \u2192 page_view, purchase<\/li><\/ol><div class=\"cc-alert cc-alert-info\"><div class=\"cc-alert-title\">Info<\/div><div class=\"cc-alert-content\">Ka\u017cdy event automatyczny jest wysy\u0142any przy za\u0142adowaniu strony (Hook PHP), natomiast eventy interakcyjne s\u0105 wysy\u0142ane w odpowiedzi na dzia\u0142ania u\u017cytkownika (JavaScript). Modu\u0142 inteligentnie wykrywa duplikaty i nie wysy\u0142a tego samego eventu dwukrotnie dla tej samej akcji.<\/div><\/div><h6><br \/>14. Test Tag Assistant<\/h6>Google Tag Assistant to oficjalne narz\u0119dzie Google do testowania i debugowania implementacji Google Tag Manager.<br \/><br \/><strong>Testowanie z Tag Assistant:<\/strong><ol><li>Zainstaluj rozszerzenie <strong>Tag Assistant Legacy by Google<\/strong> do Chrome<\/li><li>Lub u\u017cyj nowego narz\u0119dzia <strong>Google Tag Assistant<\/strong> w Chrome DevTools<\/li><li>Przejd\u017a do strony sklepu<\/li><li>Kliknij ikon\u0119 Tag Assistant w pasku narz\u0119dzi<\/li><li>Kliknij &#8222;Enable&#8221; aby rozpocz\u0105\u0107 nagrywanie<\/li><li>Od\u015bwie\u017c stron\u0119<\/li><li>Wykonaj testowe akcje (dodaj do koszyka, przejd\u017a do checkout, itp.)<\/li><li>Przejrzyj raport Tag Assistant<\/li><\/ol><strong>Co sprawdzi\u0107 w Tag Assistant:<\/strong><ul><li><strong>GTM Tag Found<\/strong> &#8211; zielony znacznik oznacza poprawn\u0105 instalacj\u0119<\/li><li><strong>DataLayer<\/strong> &#8211; sprawd\u017a czy zawiera prawid\u0142owe dane event\u00f3w<\/li><li><strong>Fired Tags<\/strong> &#8211; lista tag\u00f3w kt\u00f3re zosta\u0142y uruchomione<\/li><li><strong>Variables<\/strong> &#8211; zmienne przesy\u0142ane do GTM<\/li><li><strong>Errors<\/strong> &#8211; czerwone znaczniki wskazuj\u0105 na problemy<\/li><\/ul><strong>Konfiguracja tag\u00f3w w GTM (przyk\u0142ad GA4):<\/strong><ol><li>Zaloguj si\u0119 do Google Tag Manager<\/li><li>Przejd\u017a do zak\u0142adki &#8222;Tagi&#8221;<\/li><li>Kliknij &#8222;Nowy&#8221;<\/li><li>Wybierz typ tagu: &#8222;Google Analytics: zdarzenie GA4&#8221;<\/li><li>Wpisz ID Measurement (G-XXXXXXXXXX z GA4)<\/li><li>Nazwa zdarzenia: <span class=\"cc-highlight\">{{Event}}<\/span> (zmienna wbudowana)<\/li><li>Wyzwalacz: &#8222;Custom Event&#8221; z nazwami event\u00f3w (add_to_cart, purchase, etc.)<\/li><li>Lub wyzwalacz uniwersalny dla wszystkich event\u00f3w z dataLayer<\/li><li>Zapisz i opublikuj kontener<\/li><\/ol><strong>Tryb podgl\u0105du GTM (Preview Mode):<\/strong><ol><li>W GTM kliknij &#8222;Podgl\u0105d&#8221; w prawym g\u00f3rnym rogu<\/li><li>Wpisz URL sklepu<\/li><li>Kliknij &#8222;Connect&#8221;<\/li><li>Otworzy si\u0119 nowe okno z debuggerem GTM<\/li><li>Wykonuj akcje w sklepie<\/li><li>W debuggerze wida\u0107 wszystkie eventy dataLayer w czasie rzeczywistym<\/li><li>Sprawd\u017a kt\u00f3re tagi zosta\u0142y uruchomione dla ka\u017cdego eventu<\/li><\/ol><strong>Link do Tag Assistant:<\/strong><div class=\"cc-alert cc-alert-tip\"><div class=\"cc-alert-title\">Wskaz\u00f3wka<\/div><div class=\"cc-alert-content\">Oficjalne narz\u0119dzie Google do testowania znajduje si\u0119 pod adresem: <a class=\"button\" href=\"https:\/\/tagassistant.google.com\" title=\"Tagassistant.google.com\" target=\"_blank\" rel=\"noopener\">tagassistant.google.com<\/a><br \/><br \/>Mo\u017cemy tam przetestowa\u0107 czy wszystko dzia\u0142a poprawnie, czy GTM jest zainstalowany i czy eventy s\u0105 prawid\u0142owo wysy\u0142ane do Google Analytics.<\/div><\/div><h6><br \/>15. Rozwi\u0105zywanie problem\u00f3w<\/h6><strong>GTM nie \u0142aduje si\u0119 na stronie<\/strong><ol><li>Sprawd\u017a czy GTM jest w\u0142\u0105czony w ustawieniach modu\u0142u<\/li><li>Zweryfikuj poprawno\u015b\u0107 GTM Container ID (format: GTM-XXXXXX)<\/li><li>Wyczy\u015b\u0107 cache PrestaShop (Zaawansowane parametry \u2192 Wydajno\u015b\u0107 \u2192 Wyczy\u015b\u0107 cache)<\/li><li>Sprawd\u017a \u017ar\u00f3d\u0142o strony czy zawiera gtm.js i noscript iframe<\/li><li>Wy\u0142\u0105cz inne modu\u0142y kt\u00f3re mog\u0105 modyfikowa\u0107 header<\/li><li>Sprawd\u017a czy nie ma b\u0142\u0119d\u00f3w JavaScript w konsoli<\/li><\/ol><strong>Eventy nie s\u0105 wysy\u0142ane<\/strong><ol><li>W\u0142\u0105cz tryb debug i sprawd\u017a konsol\u0119 przegl\u0105darki<\/li><li>Sprawd\u017a czy eventy s\u0105 w\u0142\u0105czone w konfiguracji modu\u0142u<\/li><li>Zweryfikuj czy dataLayer jest zdefiniowany (console.log(window.dataLayer))<\/li><li>Sprawd\u017a czy nie ma konflikt\u00f3w z innymi modu\u0142ami GTM<\/li><li>Upewnij si\u0119 \u017ce JavaScript modu\u0142u si\u0119 za\u0142adowa\u0142 (ccpsgoogletrack.js)<\/li><li>Sprawd\u017a czy hookDisplayHeader jest wykonywany przez motyw<\/li><\/ol><strong>add_to_cart nie dzia\u0142a<\/strong><ol><li>W\u0142\u0105cz tryb debug i obserwuj logi w konsoli<\/li><li>Sprawd\u017a czy event 'updateCart&#8217; PrestaShop jest wywo\u0142ywany<\/li><li>Zweryfikuj czy prestashop.on() jest dost\u0119pny<\/li><li>Sprawd\u017a czy produkty maj\u0105 przypisane dane (id_product, cena, nazwa)<\/li><li>Upewnij si\u0119 \u017ce AJAX controller dzia\u0142a (\/module\/ccpsgoogletrack\/ajax)<\/li><li>Sprawd\u017a czy nie ma b\u0142\u0119d\u00f3w AJAX w zak\u0142adce Network<\/li><\/ol><strong>purchase nie rejestruje konwersji<\/strong><ol><li>Sprawd\u017a czy event purchase jest w\u0142\u0105czony<\/li><li>Zweryfikuj czy jeste\u015b na stronie order-confirmation<\/li><li>Upewnij si\u0119 \u017ce hookDisplayOrderConfirmation jest wykonywany<\/li><li>Sprawd\u017a czy zam\u00f3wienie jest prawid\u0142owo za\u0142adowane ($order)<\/li><li>W\u0142\u0105cz logowanie event\u00f3w i sprawd\u017a czy purchase jest zapisywany<\/li><li>W GTM sprawd\u017a czy masz skonfigurowany tag GA4 dla eventu purchase<\/li><\/ol><strong>T\u0142umaczenia nie dzia\u0142aj\u0105<\/strong><ol><li>Sprawd\u017a czy plik translations\/XX.php istnieje dla Twojego j\u0119zyka<\/li><li>Zweryfikuj format pliku (kodowanie UTF-8, poprawna sk\u0142adnia PHP)<\/li><li>Wyczy\u015b\u0107 cache PrestaShop<\/li><li>Sprawd\u017a czy window.ccpsTranslations jest zdefiniowany w \u017ar\u00f3dle strony<\/li><li>Upewnij si\u0119 \u017ce funkcja t() jest dost\u0119pna w JavaScript<\/li><\/ol><strong>Logowanie event\u00f3w nie dzia\u0142a<\/strong><ol><li>Sprawd\u017a czy funkcja jest w\u0142\u0105czona w ustawieniach<\/li><li>Zweryfikuj czy tabela ps_ccpsgoogletrack_logs istnieje w bazie<\/li><li>Sprawd\u017a uprawnienia zapisu do bazy danych<\/li><li>Upewnij si\u0119 \u017ce AJAX controller przyjmuje requesty (action=LogEvent)<\/li><li>W\u0142\u0105cz WP_DEBUG i sprawd\u017a logi b\u0142\u0119d\u00f3w<\/li><li>Sprawd\u017a czy nie przekroczy\u0142e\u015b limitu rozmiaru tabeli<\/li><\/ol><strong>W\u0142asny kod nie wykonuje si\u0119<\/strong><ol><li>Sprawd\u017a czy funkcja jest w\u0142\u0105czona w ustawieniach<\/li><li>Zweryfikuj czy kod jest poprawny JavaScript (sprawd\u017a konsol\u0119)<\/li><li>Upewnij si\u0119 \u017ce nie u\u017cywasz tag\u00f3w &lt;script&gt; w kodzie<\/li><li>Sprawd\u017a czy kod znajduje si\u0119 w \u017ar\u00f3dle strony (sekcja HEAD)<\/li><li>Testuj kod kawa\u0142ek po kawa\u0142ku aby znale\u017a\u0107 b\u0142\u0105d<\/li><\/ol><div class=\"cc-alert cc-alert-error\"><div class=\"cc-alert-title\">B\u0142\u0105d<\/div><div class=\"cc-alert-content\">Je\u015bli problemy nadal wyst\u0119puj\u0105, w\u0142\u0105cz tryb debug w ustawieniach modu\u0142u i logowanie event\u00f3w. Zbierz wszystkie informacje z konsoli przegl\u0105darki, zak\u0142adki Network oraz log\u00f3w event\u00f3w. Skontaktuj si\u0119 ze wsparciem COCOS przez <a class=\"button\" href=\"https:\/\/iarina029.supserv.cozmoslabs.com\/wsparcie\/\" title=\"Cocos.codes\/wsparcie\">cocos.codes\/wsparcie<\/a> do\u0142\u0105czaj\u0105c zebrane informacje.<\/div><\/div><h6><br \/>16. FAQ<\/h6><strong>Czy modu\u0142 jest kompatybilny z PrestaShop 9.0?<\/strong><br \/>Tak, modu\u0142 zosta\u0142 przetestowany i jest w pe\u0142ni kompatybilny z PrestaShop 1.7.x, 8.x oraz najnowsz\u0105 wersj\u0105 9.0.<br \/><br \/><strong>Czy mog\u0119 u\u017cywa\u0107 modu\u0142u bez konta Google Analytics?<\/strong><br \/>Tak, modu\u0142 przesy\u0142a dane do Google Tag Manager. GTM mo\u017ce przekazywa\u0107 dane do wielu r\u00f3\u017cnych system\u00f3w, nie tylko do Google Analytics. Mo\u017cemy wysy\u0142a\u0107 dane do Facebook Pixel, TikTok Pixel, w\u0142asnych system\u00f3w analitycznych itp.<br \/><br \/><strong>Czy modu\u0142 zwalnia sklep?<\/strong><br \/>Nie, modu\u0142 jest zoptymalizowany pod k\u0105tem wydajno\u015bci. Kod GTM \u0142aduje si\u0119 asynchronicznie, a wszystkie skrypty s\u0105 zminifikowane. Wp\u0142yw na wydajno\u015b\u0107 jest minimalny (&lt; 0.1s czasu \u0142adowania).<br \/><br \/><strong>Czy mog\u0119 wy\u0142\u0105czy\u0107 niekt\u00f3re eventy?<\/strong><br \/>Tak, w konfiguracji modu\u0142u mo\u017cemy w\u0142\u0105czy\u0107 lub wy\u0142\u0105czy\u0107 ka\u017cdy z 18 event\u00f3w osobno. Wy\u0142\u0105czone eventy nie s\u0105 w og\u00f3le wysy\u0142ane do dataLayer.<br \/><br \/><strong>Jak dzia\u0142a wykrywanie add_to_cart?<\/strong><br \/>Modu\u0142 przechwytuje event 'updateCart&#8217; PrestaShop oraz nas\u0142uchuje klikni\u0119\u0107 w przyciski dodawania do koszyka. Automatycznie wykrywa quantity z r\u00f3\u017cnych \u017ar\u00f3de\u0142 i pobiera dane produktu przez AJAX je\u015bli potrzeba.<br \/><br \/><strong>Czy modu\u0142 obs\u0142uguje wieloj\u0119zyczno\u015b\u0107?<\/strong><br \/>Tak, modu\u0142 posiada pe\u0142ne t\u0142umaczenia dla j\u0119zyka polskiego i angielskiego. Mo\u017cemy \u0142atwo doda\u0107 w\u0142asne j\u0119zyki kopiuj\u0105c i t\u0142umacz\u0105c pliki z katalogu translations\/.<br \/><br \/><strong>Co to jest Enhanced Conversions?<\/strong><br \/>Enhanced Conversions to funkcja Google Ads kt\u00f3ra poprawia dok\u0142adno\u015b\u0107 pomiaru konwersji poprzez przesy\u0142anie hashowanych danych u\u017cytkownik\u00f3w (email, telefon, adres). Wymaga zgody RODO.<br \/><br \/><strong>Czy modu\u0142 jest zgodny z RODO?<\/strong><br \/>Modu\u0142 sam w sobie jest zgodny z RODO &#8211; hashuje wszystkie dane osobowe algorytmem SHA-256. Jednak aby by\u0107 w pe\u0142ni zgodnym, musimy mie\u0107 aktualn\u0105 polityk\u0119 prywatno\u015bci i zgod\u0119 u\u017cytkownik\u00f3w na cookies. Zalecamy integracj\u0119 z modu\u0142em zarz\u0105dzania cookies.<br \/><br \/><strong>Jak sprawdzi\u0107 czy modu\u0142 dzia\u0142a poprawnie?<\/strong><br \/>W\u0142\u0105cz tryb debug w ustawieniach, otw\u00f3rz konsol\u0119 przegl\u0105darki (F12) i obserwuj logi. Mo\u017cesz te\u017c u\u017cy\u0107 Google Tag Assistant lub trybu podgl\u0105du GTM aby zobaczy\u0107 wszystkie eventy w czasie rzeczywistym.<br \/><br \/><strong>Czy mog\u0119 doda\u0107 w\u0142asne eventy?<\/strong><br \/>Tak, mo\u017cesz u\u017cy\u0107 funkcji &#8222;W\u0142asny kod \u015bledz\u0105cy&#8221; w ustawieniach aby doda\u0107 dowolny JavaScript, kt\u00f3ry b\u0119dzie wysy\u0142a\u0142 w\u0142asne eventy do dataLayer.<br \/><br \/><strong>Jak d\u0142ugo s\u0105 przechowywane logi event\u00f3w?<\/strong><br \/>Logi s\u0105 przechowywane w bazie danych do momentu r\u0119cznego wyczyszczenia. Zalecamy regularne czyszczenie log\u00f3w (np. co miesi\u0105c) aby nie zape\u0142nia\u0107 bazy danych.<br \/><br \/><strong>Czy modu\u0142 dzia\u0142a z modu\u0142em cookies\/GDPR?<\/strong><br \/>Tak, modu\u0142 jest kompatybilny z wi\u0119kszo\u015bci\u0105 modu\u0142\u00f3w zarz\u0105dzania zgodami cookies. Mo\u017cemy zintegrowa\u0107 go z Google Consent Mode 2.0 przez w\u0142asny kod \u015bledz\u0105cy.<br \/><br \/><strong>Co si\u0119 dzieje przy deinstalacji?<\/strong><br \/>Modu\u0142 usuwa wszystkie swoje ustawienia z bazy danych (opcje, tabela log\u00f3w). Nie usuwa natomiast plik\u00f3w modu\u0142u &#8211; te nale\u017cy usun\u0105\u0107 r\u0119cznie z katalogu modules\/ccpsgoogletrack\/.<br \/><br \/><strong>Czy mog\u0119 eksportowa\u0107 logi event\u00f3w?<\/strong><br \/>Obecnie modu\u0142 nie posiada funkcji eksportu log\u00f3w. Mo\u017cemy jednak bezpo\u015brednio zapyta\u0107 baz\u0119 danych (tabela ps_ccpsgoogletrack_logs) lub doda\u0107 w\u0142asn\u0105 funkcj\u0119 eksportu.<br \/><br \/><strong>Jak cz\u0119sto s\u0105 aktualizowane t\u0142umaczenia?<\/strong><br \/>T\u0142umaczenia s\u0105 aktualizowane przy ka\u017cdej nowej wersji modu\u0142u. Je\u015bli brakuje t\u0142umaczenia dla jakiego\u015b j\u0119zyka, mo\u017cemy je doda\u0107 samodzielnie lub zg\u0142osi\u0107 do COCOS.","protected":false},"excerpt":{"rendered":"Presta Shop Google Tag Manager Documentation Comprehensive documentation for the Presta Shop module for advanced integration with Google Tag Manager (cc_ps_googletrack) with support for Enhanced Ecommerce, Enhanced Conversions, and full event configuration. Table of Contents","protected":false},"author":1,"featured_media":5672,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"powered_cache_disable_cache":false,"powered_cache_disable_css_optimization":false,"powered_cache_disable_js_optimization":false,"footnotes":""},"categories":[236],"tags":[218,326,327,217,216,143],"class_list":["post-5665","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dokumentacje-prestashop","tag-ga4","tag-google-tag-manager","tag-gtag","tag-gtm","tag-integracja-google","tag-prestashop"],"_links":{"self":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/posts\/5665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/comments?post=5665"}],"version-history":[{"count":0,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/posts\/5665\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/media\/5672"}],"wp:attachment":[{"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/media?parent=5665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/categories?post=5665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iarina029.supserv.cozmoslabs.com\/en\/wp-json\/wp\/v2\/tags?post=5665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}