{"id":142,"date":"2026-07-22T15:12:00","date_gmt":"2026-07-22T13:12:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=142"},"modified":"2026-08-31T14:49:14","modified_gmt":"2026-08-31T12:49:14","slug":"ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/","title":{"rendered":"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji &#8220;Migrate from JavaScript Managed Client ID&#8221; w GA4"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Przenosz\u0105c \u015bledzenie Google Analytics 4 (GA4) do Server-Side Google Tag Managera (ssGTM), otwiera si\u0119 nowy poziom kontroli nad danymi, prywatno\u015bci oraz trwa\u0142o\u015bci plik\u00f3w cookie. Jedn\u0105 z najpot\u0119\u017cniejszych \u2013 a zarazem najcz\u0119\u015bciej \u017ale rozumianych \u2013 funkcji w konfiguracji Klienta GA4 (GA4 Client) jest opcja <strong>&#8220;Migrate from JavaScript Managed Client ID&#8221;<\/strong> (Migruj z Client ID zarz\u0105dzanego przez JavaScript).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aby zrozumie\u0107, dlaczego ten &#8220;ptaszek&#8221; (checkbox) jest tak krytyczny, musimy najpierw poj\u0105\u0107, jak GA4 identyfikuje u\u017cytkownik\u00f3w oraz na czym polega zmiana z ciasteczek po stronie przegl\u0105darki na ciasteczka po stronie serwera.<\/p><figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/hand-fpid-pl.png\" width=\"1120\" height=\"580\" alt=\"Por\u00f3wnanie cookie _ga zarz\u0105dzanego przez JavaScript z FPID ustawianym serwerowo, wraz z mapowaniem w server-side GTM\">\n<figcaption>Ustawienie decyduje, kto wystawia identyfikator: JavaScript czy kontener serwerowy. Na tym polega korzy\u015b\u0107 \u2014 i ryzyko, bo prze\u0142\u0105czenie bez przygotowania resetuje ka\u017cdy istniej\u0105cy identyfikator.<\/figcaption>\n<\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">Bitwa na ciasteczka: <code>_ga<\/code> vs. <code>FPID<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Historycznie, analityka internetowa opiera\u0142a si\u0119 na j\u0119zyku JavaScript. Kiedy u\u017cytkownik odwiedza stron\u0119, skrypt GA4 tworzy ciasteczko o nazwie <code>_ga<\/code>. Zawiera ono <strong>Client ID<\/strong> (np. <code>GA1.1.123456789.1680000000<\/code>), kt\u00f3re identyfikuje przegl\u0105dark\u0119. Poniewa\u017c ciasteczko to jest tworzone przez JavaScript, jest ono bardzo podatne na mechanizmy ochrony prywatno\u015bci: Intelligent Tracking Prevention (ITP) w Safari sztucznie ogranicza jego \u017cywotno\u015b\u0107 (czasem do 7 dni, a nawet 24 godzin), a Firefox ogranicza takie ciasteczka poprzez Enhanced Tracking Protection (ETP) i Total Cookie Protection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Server-Side GTM oferuje rozwi\u0105zanie: <strong>Server Managed Client IDs<\/strong> (Identyfikatory zarz\u0105dzane przez serwer). Zamiast pozwala\u0107 przegl\u0105darce na generowanie ciasteczka <code>_ga<\/code>, serwer ssGTM generuje bezpieczne ciasteczko <strong>HTTP-only<\/strong> o nazwie <strong><code>FPID<\/code><\/strong> (First Party Identifier).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bezpiecze\u0144stwo:<\/strong> Ciasteczka HTTP-only nie s\u0105 dost\u0119pne dla skrypt\u00f3w JavaScript, co czyni je odpornymi na ataki XSS (Cross-Site Scripting).<\/li>\n\n\n\n<li><strong>Trwa\u0142o\u015b\u0107:<\/strong> Poniewa\u017c s\u0105 one ustawiane bezpo\u015brednio przez odpowied\u017a HTTP serwera, przegl\u0105darki takie jak Safari traktuj\u0105 je jako prawdziwe dane first-party, omijaj\u0105c restrykcje ITP i zachowuj\u0105c to\u017csamo\u015b\u0107 u\u017cytkownika na znacznie d\u0142u\u017cej (nawet do 2 lat).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Co dok\u0142adnie robi opcja &#8220;Migrate from JavaScript Managed Client ID&#8221;?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Przej\u015bcie ze standardowego ciasteczka <code>_ga<\/code> na ciasteczko <code>FPID<\/code> (HTTP-only) w ustawieniach Klienta GA4 stawia przed problemem okresu przej\u015bciowego.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Przy w\u0142\u0105czonej opcji <strong>&#8220;Migrate from JavaScript Managed Client ID&#8221;<\/strong> serwer ssGTM wykonuje sprytny manewr. Kiedy powracaj\u0105cy u\u017cytkownik odwiedza stron\u0119, serwer sprawdza, czy ma on ju\u017c stare ciasteczko <code>_ga<\/code>. Je\u015bli tak, serwer odczytuje z niego stary Client ID, t\u0142umaczy go na nowy format <code>FPID<\/code> i ustawia nowe ciasteczko HTTP-only.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Od tego momentu GA4 rozpoznaje u\u017cytkownika poprzez <code>FPID<\/code>, ale jego podstawowa to\u017csamo\u015b\u0107 w systemie pozostaje dok\u0142adnie taka sama, jak za czas\u00f3w ciasteczka <code>_ga<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apokalipsa &#8220;Resetu&#8221;: co si\u0119 stanie bez migracji danych<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prze\u0142\u0105czenie na ciasteczko <code>FPID<\/code> (Server Managed) <strong>bez w\u0142\u0105czonej opcji migracji<\/strong> wywo\u0142uje analityczn\u0105 katastrof\u0119.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bez migracji serwer zignoruje wszystkie istniej\u0105ce ciasteczka <code>_ga<\/code>. Kiedy lojalny, powracaj\u0105cy klient wejdzie na stron\u0119, serwer stwierdzi: <em>&#8220;Nie widz\u0119 ciasteczka FPID. Stare ciasteczko _ga jest bez znaczenia. Powstaje zupe\u0142nie nowy identyfikator FPID&#8221;<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Konsekwencje w raportach GA4:<\/strong><\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Ogromny skok &#8220;Nowych U\u017cytkownik\u00f3w&#8221;:<\/strong> Ka\u017cdy powracaj\u0105cy u\u017cytkownik zostanie sklasyfikowany jako zupe\u0142nie nowy (New User).<\/li>\n\n\n\n<li><strong>Zepsuta Atrybucja:<\/strong> Je\u015bli u\u017cytkownik klikn\u0105\u0142 w reklam\u0119 Google Ads wczoraj (\u015bledzony przez <code>_ga<\/code>), a dokona\u0142 zakupu dzisiaj (\u015bledzony przez nowo wymuszone <code>FPID<\/code>), GA4 nie po\u0142\u0105czy tych dw\u00f3ch sesji. Konwersja wpadnie do koszyka &#8220;Direct \/ None&#8221;, a kampanie reklamowe strac\u0105 przypisany im zwrot z inwestycji (ROI).<\/li>\n\n\n\n<li><strong>Pofragmentowane \u015bcie\u017cki u\u017cytkownik\u00f3w:<\/strong> Historyczne dane o zachowaniu u\u017cytkownik\u00f3w zostan\u0105 bezpowrotnie odci\u0119te od ich przysz\u0142ych dzia\u0142a\u0144.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Kiedy w\u0142\u0105czy\u0107 t\u0119 opcj\u0119, a kiedy nie?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kiedy W\u0141\u0104CZY\u0106 (Enable):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Prawie zawsze.<\/strong> Gdy strona ju\u017c dzia\u0142a, a istniej\u0105cy setup GA4 przenosi si\u0119 do Server-Side GTM z zamiarem wykorzystania ciasteczek <code>FPID<\/code>. Migracja jest wtedy <em>konieczna<\/em>, aby zachowa\u0107 ci\u0105g\u0142o\u015b\u0107 danych u\u017cytkownik\u00f3w, atrybucj\u0119 i listy remarketingowe.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kiedy WY\u0141\u0104CZY\u0106 (Disable):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Zupe\u0142nie nowe strony internetowe:<\/strong> Gdy strona startuje od zera i nie ma \u017cadnego historycznego ruchu, nie ma \u017cadnych ciasteczek <code>_ga<\/code>, kt\u00f3re da\u0142oby si\u0119 zmigrowa\u0107.<\/li>\n\n\n\n<li><strong>Restrykcyjne wymogi prawne:<\/strong> W skrajnie rzadkich przypadkach dzia\u0142 prawny firmy mo\u017ce uzna\u0107, \u017ce przej\u015bcie na now\u0105 infrastruktur\u0119 \u015bledz\u0105c\u0105 wymaga &#8220;zapomnienia&#8221; starych identyfikator\u00f3w, celowo wymuszaj\u0105c twardy reset profilowania u\u017cytkownik\u00f3w.<\/li>\n\n\n\n<li><strong>Bez FPID:<\/strong> Gdy klient GA4 w ssGTM jest skonfigurowany tak, aby nadal u\u017cywa\u0107 Client ID zarz\u0105dzanego przez JavaScript (ciasteczko <code>_ga<\/code> po prostu przechodzi przez serwer), a funkcja server-managed FPID pozostaje wy\u0142\u0105czona, ta opcja jest po prostu nieistotna.<\/li>\n<\/ul>\n\n\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/webkit.org\/blog\/10218\/full-third-party-cookie-blocking-and-more\/\" target=\"_blank\" rel=\"noopener noreferrer\">Full Third-Party Cookie Blocking (WebKit)<\/a><\/li>\n<li><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\" target=\"_blank\" rel=\"noopener noreferrer\">Server-side tagging overview<\/a><\/li>\n<\/ul>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Przenosz\u0105c \u015bledzenie Google Analytics 4 (GA4) do Server-Side Google Tag Managera (ssGTM), otwiera si\u0119 nowy poziom kontroli nad danymi, prywatno\u015bci oraz trwa\u0142o\u015bci plik\u00f3w cookie. Jedn\u0105 z najpot\u0119\u017cniejszych \u2013 a zarazem najcz\u0119\u015bciej \u017ale rozumianych \u2013 funkcji w konfiguracji Klienta GA4 (GA4 Client) jest opcja &#8220;Migrate from JavaScript Managed Client ID&#8221; (Migruj z Client ID zarz\u0105dzanego przez [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13658,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[92166,92041,92100,92133,92169,92136],"class_list":["post-142","post","type-post","status-publish","format-standard","hentry","category-digital-analytics-pl","tag-cookies-pl","tag-first-party-data-pl","tag-google-analytics-4-pl","tag-google-tag-manager-pl","tag-safari-itp-pl","tag-server-side-gtm-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GA4 i Server-Side GTM: Wyja\u015bnienie funkcji &quot;Migrate from JavaScript Managed Client ID&quot; w GA4 - 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-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji &quot;Migrate from JavaScript Managed Client ID&quot; w GA4 - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Przenosz\u0105c \u015bledzenie Google Analytics 4 (GA4) do Server-Side Google Tag Managera (ssGTM), otwiera si\u0119 nowy poziom kontroli nad danymi, prywatno\u015bci oraz trwa\u0142o\u015bci plik\u00f3w cookie. Jedn\u0105 z najpot\u0119\u017cniejszych \u2013 a zarazem najcz\u0119\u015bciej \u017ale rozumianych \u2013 funkcji w konfiguracji Klienta GA4 (GA4 Client) jest opcja &#8220;Migrate from JavaScript Managed Client ID&#8221; (Migruj z Client ID zarz\u0105dzanego przez [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-22T13:12:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-31T12:49:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"3 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-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji &#8220;Migrate from JavaScript Managed Client ID&#8221; w GA4\",\"datePublished\":\"2026-07-22T13:12:00+00:00\",\"dateModified\":\"2026-08-31T12:49:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/\"},\"wordCount\":732,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png\",\"keywords\":[\"Cookies\",\"First-Party Data\",\"Google Analytics 4\",\"Google Tag Manager\",\"Safari ITP\",\"Server-Side GTM\"],\"articleSection\":[\"Digital Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/\",\"name\":\"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji \\\"Migrate from JavaScript Managed Client ID\\\" w GA4 - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png\",\"datePublished\":\"2026-07-22T13:12:00+00:00\",\"dateModified\":\"2026-08-31T12:49:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png\",\"width\":1200,\"height\":630,\"caption\":\"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji \\\"Migrate from JavaScript Managed Client ID\\\" w GA4\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/digital-analytics-pl\\\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji &#8220;Migrate from JavaScript Managed Client ID&#8221; w GA4\"}]},{\"@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":"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji \"Migrate from JavaScript Managed Client ID\" w GA4 - 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-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/","og_locale":"en_US","og_type":"article","og_title":"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji \"Migrate from JavaScript Managed Client ID\" w GA4 - Lukas Wojcik - Blog","og_description":"Przenosz\u0105c \u015bledzenie Google Analytics 4 (GA4) do Server-Side Google Tag Managera (ssGTM), otwiera si\u0119 nowy poziom kontroli nad danymi, prywatno\u015bci oraz trwa\u0142o\u015bci plik\u00f3w cookie. Jedn\u0105 z najpot\u0119\u017cniejszych \u2013 a zarazem najcz\u0119\u015bciej \u017ale rozumianych \u2013 funkcji w konfiguracji Klienta GA4 (GA4 Client) jest opcja &#8220;Migrate from JavaScript Managed Client ID&#8221; (Migruj z Client ID zarz\u0105dzanego przez [&hellip;]","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-07-22T13:12:00+00:00","article_modified_time":"2026-08-31T12:49:14+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png","type":"image\/png"}],"author":"luky","twitter_card":"summary_large_image","twitter_misc":{"Written by":"luky","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji &#8220;Migrate from JavaScript Managed Client ID&#8221; w GA4","datePublished":"2026-07-22T13:12:00+00:00","dateModified":"2026-08-31T12:49:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/"},"wordCount":732,"commentCount":2,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png","keywords":["Cookies","First-Party Data","Google Analytics 4","Google Tag Manager","Safari ITP","Server-Side GTM"],"articleSection":["Digital Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/","name":"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji \"Migrate from JavaScript Managed Client ID\" w GA4 - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png","datePublished":"2026-07-22T13:12:00+00:00","dateModified":"2026-08-31T12:49:14+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-142-ga4-i-server-side-gtm-wyjasnienie-fu-g.png","width":1200,"height":630,"caption":"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji \"Migrate from JavaScript Managed Client ID\" w GA4"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/digital-analytics-pl\/ga4-i-server-side-gtm-wyjasnienie-funkcji-migrate-from-javascript-managed-client-id-w-ga4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GA4 i Server-Side GTM: Wyja\u015bnienie funkcji &#8220;Migrate from JavaScript Managed Client ID&#8221; w GA4"}]},{"@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\/142","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=142"}],"version-history":[{"count":9,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/142\/revisions"}],"predecessor-version":[{"id":13366,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/142\/revisions\/13366"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/13658"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}