{"id":140,"date":"2026-07-22T09:21:00","date_gmt":"2026-07-22T07:21:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=140"},"modified":"2026-08-19T11:11:49","modified_gmt":"2026-08-19T09:11:49","slug":"ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/","title":{"rendered":"GA4 &amp; Server-Side GTM: The &#8220;Migrate from JavaScript Managed Client ID&#8221; Feature Explained"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Moving Google Analytics 4 (GA4) tracking to Server-Side Google Tag Manager (ssGTM) unlocks a new level of data control, privacy, and cookie durability. One of the most powerful\u2014yet misunderstood\u2014features in the GA4 Client configuration is the <strong>&#8220;Migrate from JavaScript Managed Client ID&#8221;<\/strong> setting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To understand why this checkbox is critical, we first need to understand how GA4 identifies users and the fundamental shift from Client-Side to Server-Side cookies.<\/p><figure class=\"lw-diagram\">\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/hand-fpid-en.png\" width=\"1120\" height=\"580\" alt=\"Comparison of the JavaScript-managed _ga cookie and the server-managed FPID, with the mapping in server-side GTM\">\n<figcaption>The setting decides who issues the identifier: JavaScript or the server container. That is the whole benefit \u2014 and the whole risk, because switching without preparation resets every existing ID.<\/figcaption>\n<\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">The Cookie Battle: <code>_ga<\/code> vs. <code>FPID<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Historically, standard web analytics relied on JavaScript. When a user visits the site, the GA4 script drops a cookie named <code>_ga<\/code>. This cookie contains the <strong>Client ID<\/strong> (e.g., <code>GA1.1.123456789.1680000000<\/code>), which identifies the browser. Because this cookie is created by JavaScript in the browser, it is highly vulnerable to Intelligent Tracking Prevention (ITP) in Safari, which artificially limits its lifespan (sometimes to just 7 days or 24 hours). Firefox restricts such cookies through Enhanced Tracking Protection (ETP) and Total Cookie Protection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Server-Side GTM offers a solution: <strong>Server Managed Client IDs<\/strong>. Instead of the browser generating the <code>_ga<\/code> cookie, the ssGTM server generates a secure, <strong>HTTP-only<\/strong> cookie named <strong><code>FPID<\/code><\/strong> (First Party Identifier).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Security:<\/strong> HTTP-only cookies cannot be accessed by client-side JavaScript, making them immune to cross-site scripting (XSS) attacks.<\/li>\n\n\n\n<li><strong>Durability:<\/strong> Because they are set directly by the server&#8217;s HTTP response, browsers like Safari treat them as true first-party data, bypassing ITP restrictions and preserving the user&#8217;s identity for much longer (up to 2 years).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">What does &#8220;Migrate from JavaScript Managed Client ID&#8221; actually do?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Switching from the standard <code>_ga<\/code> cookie to the HTTP-only <code>FPID<\/code> cookie in the GA4 Client settings raises a transition problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With the setting <strong>&#8220;Migrate from JavaScript Managed Client ID&#8221;<\/strong> enabled, the ssGTM server performs a smart handshake. When a returning user visits the site, the server checks whether they already have an old <code>_ga<\/code> cookie. If they do, the server reads the existing Client ID from the <code>_ga<\/code> cookie, translates it into the new <code>FPID<\/code> format, and sets the new HTTP-only <code>FPID<\/code> cookie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From that moment on, GA4 recognizes the user through the <code>FPID<\/code>, but the underlying identity remains the same as it was under the <code>_ga<\/code> cookie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The &#8220;Reset&#8221; Apocalypse: What happens without migration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Switching to the <code>FPID<\/code> (Server Managed) cookie <strong>without enabling the migration option<\/strong> triggers an analytics catastrophe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Without migration, the server ignores all existing <code>_ga<\/code> cookies. When a loyal, returning customer visits the site, the server says: <em>&#8220;No FPID cookie here. The _ga cookie is irrelevant. A brand new FPID it is.&#8221;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The consequences in the GA4 reports:<\/strong><\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Massive Spike in New Users:<\/strong> Every single returning user will be classified as a &#8220;New User.&#8221;<\/li>\n\n\n\n<li><strong>Broken Attribution:<\/strong> If a user clicked a Google Ads campaign yesterday (tracked via <code>_ga<\/code>) and buys today (tracked via the newly forced <code>FPID<\/code>), GA4 cannot connect the two sessions. The conversion will be attributed to &#8220;Direct,&#8221; and the ad campaigns lose their ROI credit.<\/li>\n\n\n\n<li><strong>Fragmented User Journeys:<\/strong> The historical data for returning users is completely severed from their future actions.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">When to select this option, and when not to?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>When to ENABLE it:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Almost always.<\/strong> Whenever a live website moves an existing GA4 setup to Server-Side GTM using the <code>FPID<\/code> cookie, migration is <em>mandatory<\/em> to preserve user continuity, attribution, and audience targeting.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>When to DISABLE it:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Brand new websites:<\/strong> On a site launched from scratch with zero historical traffic, there are no <code>_ga<\/code> cookies to migrate.<\/li>\n\n\n\n<li><strong>Strict Compliance Mandates:<\/strong> In extremely rare edge cases, a company&#8217;s legal department might dictate that moving to a new tracking infrastructure requires &#8220;forgetting&#8221; old identifiers to enforce a hard reset on user profiling.<\/li>\n\n\n\n<li><strong>Without FPID:<\/strong> Where the GA4 Client in ssGTM keeps using the JavaScript Managed Client ID (<code>_ga<\/code> cookie passed through the server) and the server-managed FPID feature stays off, this setting is irrelevant.<\/li>\n<\/ul>\n\n\n<div class=\"lw-quellen\">\n<h2>Sources<\/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>Moving Google Analytics 4 (GA4) tracking to Server-Side Google Tag Manager (ssGTM) unlocks a new level of data control, privacy, and cookie durability. One of the most powerful\u2014yet misunderstood\u2014features in the GA4 Client configuration is the &#8220;Migrate from JavaScript Managed Client ID&#8221; setting. To understand why this checkbox is critical, we first need to understand [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13656,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[91276,91285,91258,91267,91350,91061],"class_list":["post-140","post","type-post","status-publish","format-standard","hentry","category-digital-analytics","tag-cookies","tag-first-party-data","tag-google-analytics-4","tag-google-tag-manager","tag-safari-itp","tag-server-side-gtm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>GA4 &amp; Server-Side GTM: The &quot;Migrate from JavaScript Managed Client ID&quot; Feature Explained - 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\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GA4 &amp; Server-Side GTM: The &quot;Migrate from JavaScript Managed Client ID&quot; Feature Explained - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Moving Google Analytics 4 (GA4) tracking to Server-Side Google Tag Manager (ssGTM) unlocks a new level of data control, privacy, and cookie durability. One of the most powerful\u2014yet misunderstood\u2014features in the GA4 Client configuration is the &#8220;Migrate from JavaScript Managed Client ID&#8221; setting. To understand why this checkbox is critical, we first need to understand [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-22T07:21:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-19T09:11:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-140-ga4-server-side-gtm-the-migrate-from-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\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/\"},\"author\":{\"name\":\"luky\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"GA4 &amp; Server-Side GTM: The &#8220;Migrate from JavaScript Managed Client ID&#8221; Feature Explained\",\"datePublished\":\"2026-07-22T07:21:00+00:00\",\"dateModified\":\"2026-08-19T09:11:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/\"},\"wordCount\":657,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-140-ga4-server-side-gtm-the-migrate-from-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\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/\",\"name\":\"GA4 &amp; Server-Side GTM: The \\\"Migrate from JavaScript Managed Client ID\\\" Feature Explained - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-140-ga4-server-side-gtm-the-migrate-from-g.png\",\"datePublished\":\"2026-07-22T07:21:00+00:00\",\"dateModified\":\"2026-08-19T09:11:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-140-ga4-server-side-gtm-the-migrate-from-g.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/hero-140-ga4-server-side-gtm-the-migrate-from-g.png\",\"width\":1200,\"height\":630,\"caption\":\"GA4 & Server-Side GTM: The \\\"Migrate from JavaScript Managed Client ID\\\" Feature Explained\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-analytics\\\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GA4 &amp; Server-Side GTM: The &#8220;Migrate from JavaScript Managed Client ID&#8221; Feature Explained\"}]},{\"@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 &amp; Server-Side GTM: The \"Migrate from JavaScript Managed Client ID\" Feature Explained - 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\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/","og_locale":"en_US","og_type":"article","og_title":"GA4 &amp; Server-Side GTM: The \"Migrate from JavaScript Managed Client ID\" Feature Explained - Lukas Wojcik - Blog","og_description":"Moving Google Analytics 4 (GA4) tracking to Server-Side Google Tag Manager (ssGTM) unlocks a new level of data control, privacy, and cookie durability. One of the most powerful\u2014yet misunderstood\u2014features in the GA4 Client configuration is the &#8220;Migrate from JavaScript Managed Client ID&#8221; setting. To understand why this checkbox is critical, we first need to understand [&hellip;]","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-07-22T07:21:00+00:00","article_modified_time":"2026-08-19T09:11:49+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-140-ga4-server-side-gtm-the-migrate-from-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\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/"},"author":{"name":"luky","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"GA4 &amp; Server-Side GTM: The &#8220;Migrate from JavaScript Managed Client ID&#8221; Feature Explained","datePublished":"2026-07-22T07:21:00+00:00","dateModified":"2026-08-19T09:11:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/"},"wordCount":657,"commentCount":2,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-140-ga4-server-side-gtm-the-migrate-from-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\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/","name":"GA4 &amp; Server-Side GTM: The \"Migrate from JavaScript Managed Client ID\" Feature Explained - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-140-ga4-server-side-gtm-the-migrate-from-g.png","datePublished":"2026-07-22T07:21:00+00:00","dateModified":"2026-08-19T09:11:49+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-140-ga4-server-side-gtm-the-migrate-from-g.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/09\/hero-140-ga4-server-side-gtm-the-migrate-from-g.png","width":1200,"height":630,"caption":"GA4 & Server-Side GTM: The \"Migrate from JavaScript Managed Client ID\" Feature Explained"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-analytics\/ga4-server-side-gtm-the-migrate-from-javascript-managed-client-id-feature-explained\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GA4 &amp; Server-Side GTM: The &#8220;Migrate from JavaScript Managed Client ID&#8221; Feature Explained"}]},{"@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\/140","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=140"}],"version-history":[{"count":6,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":12218,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/140\/revisions\/12218"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/13656"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}