{"id":22,"date":"2026-07-08T19:15:00","date_gmt":"2026-07-08T17:15:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=22"},"modified":"2026-07-05T23:13:06","modified_gmt":"2026-07-05T21:13:06","slug":"architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/","title":{"rendered":"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel &#038; CAPI)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wdra\u017canie analityki po stronie serwera (Server-Side GTM) to pot\u0119\u017cny krok w stron\u0119 niezawodno\u015bci danych. \u015arodowisko serwerowe ma jednak jedn\u0105 fundamentaln\u0105 &#8220;wad\u0119&#8221; architektoniczn\u0105: <strong>nie ma bezpo\u015bredniego dost\u0119pu do przegl\u0105darki u\u017cytkownika, jego plik\u00f3w cookie, ani banera zg\u00f3d (CMP)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je\u015bli u\u017cytkownik odrzuci \u015bledzenie w banerze Usercentrics, Tw\u00f3j serwer sam z siebie si\u0119 o tym nie dowie. Je\u015bli prze\u015blesz mu dane bez statusu zgody, Meta Conversions API (CAPI) wy\u015ble payload do Facebooka, \u0142ami\u0105c tym samym RODO i przepisy DMA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jako analitycy musimy zbudowa\u0107 &#8220;most&#8221;, kt\u00f3ry przetransportuje decyzj\u0119 o zgodzie (Consent State) z przegl\u0105darki (Client GTM) prosto do kontenera serwerowego (Server GTM). Oto techniczny przewodnik, jak to zrobi\u0107 krok po kroku na przyk\u0142adzie Usercentrics, Meta Pixela oraz Meta CAPI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Logika: Jak dzia\u0142a ten &#8220;most&#8221;?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zamiast polega\u0107 wy\u0142\u0105cznie na wbudowanym Google Consent Mode (kt\u00f3ry czasem bywa trudny do zdebugowania po stronie serwera przy tagach non-Google), u\u017cyjemy najpewniejszej metody \u2013 jawnego przekazania decyzji u\u017cytkownika jako <strong>Parametru Zdarzenia (Event Parameter)<\/strong> w tagu transportowym (np. GA4).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Zgoda:<\/strong> Usercentrics zapisuje wyb\u00f3r.<\/li>\n\n\n\n<li><strong>Client GTM:<\/strong> Blokujemy klasycznego Meta Pixela, je\u015bli brak zgody. Nast\u0119pnie chwytamy status zgody i do\u0142\u0105czamy go jako parametr do tagu wysy\u0142aj\u0105cego dane na nasz serwer (ssGTM).<\/li>\n\n\n\n<li><strong>Server GTM:<\/strong> Odbieramy parametr jako <em>Event Data<\/em>. Budujemy Trigger, kt\u00f3ry warunkuje odpalenie Meta CAPI tylko wtedy, gdy parametr zgody ma warto\u015b\u0107 <code>true<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Konfiguracja w Client GTM (Przegl\u0105darka)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zaczynamy od kontenera przegl\u0105darkowego. Zak\u0142adam, \u017ce masz ju\u017c wdro\u017cony tag Usercentrics CMP, kt\u00f3ry wypycha zdarzenia do DataLayer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Krok A: Zmienna sprawdzaj\u0105ca zgod\u0119<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usercentrics domy\u015blnie posiada w\u0142asne zmienne lub pozwala na sprawdzenie statusu danej us\u0142ugi (tzw. Data Processing Service).<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Utw\u00f3rz Zmienn\u0105 (Variable) typu <strong>Data Layer Variable<\/strong>.<\/li>\n\n\n\n<li>Wprowad\u017a nazw\u0119 klucza, pod kt\u00f3rym Usercentrics trzyma zgod\u0119 dla Meta. (Je\u015bli u\u017cywasz oficjalnego szablonu Usercentrics, cz\u0119sto jest to zmienna dostarczana przez ich DataLayer, np. stworzona z u\u017cyciem niestandardowego kodu JS sprawdzaj\u0105cego obiekt <code>Usercentrics<\/code>). Na potrzeby poradnika nazwijmy t\u0119 zmienn\u0105: <code>{{UC - Meta Consent}}<\/code>. Zmienna ta powinna zwraca\u0107 warto\u015b\u0107 <code>true<\/code> lub <code>false<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Krok B: Zabezpieczenie Meta Pixela (Client-Side)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Meta Pixel operuj\u0105cy w przegl\u0105darce musi respektowa\u0107 decyzj\u0119 u\u017cytkownika.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Otw\u00f3rz sw\u00f3j tag <strong>Meta Pixel<\/strong>.<\/li>\n\n\n\n<li>Przejd\u017a do sekcji <strong>Wyzwalanie (Triggers)<\/strong>.<\/li>\n\n\n\n<li>Utw\u00f3rz nowy Trigger typu <strong>Niestandardowe zdarzenie (Custom Event)<\/strong>.<\/li>\n\n\n\n<li>Ustaw nazw\u0119 zdarzenia na <code>consent_status<\/code> (lub inne zdarzenie, na kt\u00f3rym odpalasz pageview po za\u0142adowaniu Usercentrics).<\/li>\n\n\n\n<li>Zaznacz &#8220;Niekt\u00f3re zdarzenia niestandardowe&#8221; i dodaj warunek: <code>{{UC - Meta Consent}}<\/code> <strong>r\u00f3wna si\u0119<\/strong> <code>true<\/code>.<\/li>\n\n\n\n<li><em>(Opcjonalnie)<\/em> Je\u015bli korzystasz z Google Consent Mode v2, mo\u017cesz dodatkowo w sekcji <strong>Advanced Settings > Consent Settings<\/strong> tagu Meta Pixel wymaga\u0107 zg\u00f3d <code>ad_storage<\/code> oraz <code>ad_user_data<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Krok C: Przekazanie zgody do serwera (Tag Transportowy)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Najcz\u0119\u015bciej dane do ssGTM przesy\u0142a si\u0119 za pomoc\u0105 tagu GA4. Musimy &#8220;doczepi\u0107&#8221; nasz\u0105 zgod\u0119 do tego requestu.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Otw\u00f3rz sw\u00f3j g\u0142\u00f3wny tag transportowy (np. <strong>Google Tag<\/strong> lub <strong>GA4 Configuration\/Event<\/strong>), kt\u00f3ry ma ustawiony Routing na Tw\u00f3j serwer (np. <code>sgtm.twojadomena.pl<\/code>).<\/li>\n\n\n\n<li>Przejd\u017a do sekcji <strong>Event Parameters<\/strong> (Parametry Zdarzenia).<\/li>\n\n\n\n<li>Dodaj nowy parametr. Nazwij go <code>meta_consent_state<\/code>.<\/li>\n\n\n\n<li>Jako warto\u015b\u0107 przypisz nasz\u0105 zmienn\u0105: <code>{{UC - Meta Consent}}<\/code>.<\/li>\n\n\n\n<li>Zapisz i opublikuj Client GTM. Od teraz ka\u017cdy request lec\u0105cy na Tw\u00f3j serwer niesie w sobie flag\u0119 m\u00f3wi\u0105c\u0105, czy u\u017cytkownik zezwoli\u0142 na tracking Meta.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">3. Konfiguracja w Server-Side GTM (Serwer)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Przechodzimy do kontenera serwerowego. Tutaj musimy odebra\u0107 przesy\u0142any parametr i u\u017cy\u0107 go do zablokowania tagu Meta CAPI.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Krok A: Odebranie parametru (Event Data Variable)<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>W kontenerze ssGTM przejd\u017a do zak\u0142adki <strong>Variables<\/strong> (Zmienne).<\/li>\n\n\n\n<li>Utw\u00f3rz now\u0105 Zmienn\u0105 typu <strong>Event Data<\/strong> (Dane Zdarzenia).<\/li>\n\n\n\n<li>W polu <em>Key Path<\/em> (\u015acie\u017cka klucza) wpisz dok\u0142adnie t\u0119 sam\u0105 nazw\u0119, kt\u00f3r\u0105 wys\u0142a\u0142e\u015b z Client GTM: <code>meta_consent_state<\/code>.<\/li>\n\n\n\n<li>Zapisz zmienn\u0105 jako <code>{{EventData - Meta Consent}}<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Krok B: Budowa Triggera blokuj\u0105cego dla Meta CAPI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nie chcemy, aby tag Meta CAPI odpala\u0142 si\u0119 za ka\u017cdym razem. Musi zosta\u0107 wysterowany przez nasz\u0105 zmienn\u0105.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Przejd\u017a do zak\u0142adki <strong>Triggers<\/strong> (Wyzwalacze).<\/li>\n\n\n\n<li>Utw\u00f3rz nowy Trigger typu <strong>Custom Event<\/strong> (Niestandardowe zdarzenie).<\/li>\n\n\n\n<li>Jako nazw\u0119 zdarzenia wpisz <code>.*<\/code> i zaznacz opcj\u0119 <strong>Use regex matching<\/strong> (je\u015bli chcesz odpala\u0107 to dla ka\u017cdego eventu e-commerce) LUB wpisz konkretne zdarzenie, np. <code>page_view<\/code>.<\/li>\n\n\n\n<li>Zaznacz opcj\u0119 odpylania dla <strong>Some Custom Events<\/strong> (Niekt\u00f3re zdarzenia).<\/li>\n\n\n\n<li>Dodaj bezwzgl\u0119dny warunek: <code>{{EventData - Meta Consent}}<\/code> <strong>r\u00f3wna si\u0119<\/strong> <code>true<\/code>.<\/li>\n\n\n\n<li>Je\u015bli chcesz wymaga\u0107 tak\u017ce konkretnego klienta (Client Name), dodaj warunek: <code>Client Name<\/code> r\u00f3wna si\u0119 <code>GA4<\/code>.<\/li>\n\n\n\n<li>Zapisz Trigger jako <code>Trigger - Meta CAPI - Consent Granted<\/code>.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Krok C: Podpi\u0119cie Triggera do Tagu Meta CAPI<\/h3>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Otw\u00f3rz sw\u00f3j tag <strong>Meta Conversions API<\/strong> w ssGTM.<\/li>\n\n\n\n<li>W sekcji Wyzwalanie usu\u0144 domy\u015blny wyzwalacz (np. &#8220;All Events&#8221;).<\/li>\n\n\n\n<li>Dodaj sw\u00f3j nowo utworzony wyzwalacz: <code>Trigger - Meta CAPI - Consent Granted<\/code>.<\/li>\n\n\n\n<li>Zapisz tag i uruchom tryb Preview, aby przetestowa\u0107 wdro\u017cenie.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">4. Weryfikacja wdro\u017cenia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aby mie\u0107 100% pewno\u015bci, \u017ce nie \u0142amiesz prawa, wykonaj poni\u017cszy test:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wejd\u017a na swoj\u0105 stron\u0119 w trybie Incognito. W banerze Usercentrics <strong>odrzu\u0107 wszystkie zgody<\/strong>.<\/li>\n\n\n\n<li>Sprawd\u017a w Debuggerze Client GTM, czy Meta Pixel powstrzyma\u0142 si\u0119 od odpalenia (Trigger powinien pokaza\u0107 krzy\u017cyk przy warunku <code>{{UC - Meta Consent}} == true<\/code>).<\/li>\n\n\n\n<li>Sprawd\u017a request wysy\u0142any do ssGTM. W podgl\u0105dzie zdarzenia w Server GTM zobaczysz, \u017ce parametr <code>meta_consent_state<\/code> przyj\u0105\u0142 warto\u015b\u0107 <code>false<\/code>.<\/li>\n\n\n\n<li>Tag Meta CAPI na serwerze nie powinien si\u0119 odpali\u0107. Twoje \u015brodowisko jest szczelne i w pe\u0142ni legalne.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Przekazywanie statusu zgody pomi\u0119dzy przegl\u0105dark\u0105 a serwerem to podstawa dzisiejszej in\u017cynierii danych. Jawne definiowanie parametru <code>meta_consent_state<\/code> w tagu transportowym daje pe\u0142n\u0105 kontrol\u0119 i przejrzysto\u015b\u0107 nad tym, co i kiedy wysy\u0142asz do zewn\u0119trznych vendor\u00f3w. To gwarancja, \u017ce Twoja architektura jest nie tylko technicznie bezb\u0142\u0119dna, ale r\u00f3wnie\u017c w pe\u0142ni zgodna z polityk\u0105 prywatno\u015bci Usercentrics i RODO.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wdra\u017canie analityki po stronie serwera (Server-Side GTM) to pot\u0119\u017cny krok w stron\u0119 niezawodno\u015bci danych. \u015arodowisko serwerowe ma jednak jedn\u0105 fundamentaln\u0105 &#8220;wad\u0119&#8221; architektoniczn\u0105: nie ma bezpo\u015bredniego dost\u0119pu do przegl\u0105darki u\u017cytkownika, jego plik\u00f3w cookie, ani banera zg\u00f3d (CMP). Je\u015bli u\u017cytkownik odrzuci \u015bledzenie w banerze Usercentrics, Tw\u00f3j serwer sam z siebie si\u0119 o tym nie dowie. Je\u015bli prze\u015blesz [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-22","post","type-post","status-publish","format-standard","hentry","category-digital-marketing-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel &amp; CAPI) - Lukas Wojcik - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel &amp; CAPI) - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Wdra\u017canie analityki po stronie serwera (Server-Side GTM) to pot\u0119\u017cny krok w stron\u0119 niezawodno\u015bci danych. \u015arodowisko serwerowe ma jednak jedn\u0105 fundamentaln\u0105 &#8220;wad\u0119&#8221; architektoniczn\u0105: nie ma bezpo\u015bredniego dost\u0119pu do przegl\u0105darki u\u017cytkownika, jego plik\u00f3w cookie, ani banera zg\u00f3d (CMP). Je\u015bli u\u017cytkownik odrzuci \u015bledzenie w banerze Usercentrics, Tw\u00f3j serwer sam z siebie si\u0119 o tym nie dowie. Je\u015bli prze\u015blesz [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-08T17:15:00+00:00\" \/>\n<meta name=\"author\" content=\"luky\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"luky\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel &#038; CAPI)\",\"datePublished\":\"2026-07-08T17:15:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/\"},\"wordCount\":923,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"articleSection\":[\"Digital Marketing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/\",\"name\":\"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel & CAPI) - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-07-08T17:15:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-marketing-pl\\\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel &#038; CAPI)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"],\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/author\\\/luky\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel & CAPI) - Lukas Wojcik - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/","og_locale":"en_US","og_type":"article","og_title":"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel & CAPI) - Lukas Wojcik - Blog","og_description":"Wdra\u017canie analityki po stronie serwera (Server-Side GTM) to pot\u0119\u017cny krok w stron\u0119 niezawodno\u015bci danych. \u015arodowisko serwerowe ma jednak jedn\u0105 fundamentaln\u0105 &#8220;wad\u0119&#8221; architektoniczn\u0105: nie ma bezpo\u015bredniego dost\u0119pu do przegl\u0105darki u\u017cytkownika, jego plik\u00f3w cookie, ani banera zg\u00f3d (CMP). Je\u015bli u\u017cytkownik odrzuci \u015bledzenie w banerze Usercentrics, Tw\u00f3j serwer sam z siebie si\u0119 o tym nie dowie. Je\u015bli prze\u015blesz [&hellip;]","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-07-08T17:15:00+00:00","author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel &#038; CAPI)","datePublished":"2026-07-08T17:15:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/"},"wordCount":923,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"articleSection":["Digital Marketing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/","name":"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel & CAPI) - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-07-08T17:15:00+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-marketing-pl\/architektura-prywatnosci-jak-przekazac-consent-state-z-client-gtm-do-server-side-gtm-usercentrics-meta-pixel-capi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Architektura Prywatno\u015bci: Jak przekaza\u0107 Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel &#038; CAPI)"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"],"url":"https:\/\/www.lukaswojcik.com\/blog\/author\/luky\/"}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":23,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/22\/revisions\/23"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}