{"id":32337,"date":"2025-01-17T02:22:24","date_gmt":"2025-01-17T02:22:24","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/first-party-mode-for-google-tags\/"},"modified":"2025-01-17T02:22:24","modified_gmt":"2025-01-17T02:22:24","slug":"first-party-mode-for-google-tags","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=32337","title":{"rendered":"First-Party Mode For Google Tags"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>Google <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/first-party\/setup-guide.md\">has released<\/a> a new feature, <strong>First-Party Mode<\/strong> (FPM), into public beta.<\/p>\n<div style=\"aspect-ratio: 3016 \/ 1344;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/first-party-mode-diagram.jpg\" title=\"First-party mode\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1344\" width=\"3016\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/first-party-mode-diagram.jpg#ZgotmplZ\" alt=\"First-party mode\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p><a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/first-party\/setup-guide.md\"><em>Image source<\/em><\/a><\/p>\n<p>First-Party Mode seeks to make it easier to wrap Google\u2019s measurement and advertising technologies in a first-party, <em>same-origin<\/em> context.<\/p>\n<p>This means that the user\u2019s browser, when visiting a website running FPM, would no longer communicate directly with Google\u2019s domains when fetching measurement libraries such as <strong>Google Tag<\/strong> or <strong>Google Tag Manager<\/strong>.<\/p>\n<p>Instead, the requests would be sent to a <strong>subfolder<\/strong> of the website itself. A server process would then take these requests, forward them to Google\u2019s servers, and finally return the response (typically a JavaScript file) back to the web browser.<\/p>\n<p>This would also apply to analytics and advertising pings.<\/p>\n<p>Here\u2019s the distinction:<\/p>\n<ol>\n<li><strong>Regular setup (cross-site)<\/strong>: User navigates to <code>https:\/\/www.simoahava.com\/<\/code>; requests are sent to <code>https:\/\/www.googletagmanager.com\/<\/code>.<\/li>\n<li><strong>First-party serving (same-site, cross-origin)<\/strong> with subdomain: User navigates to <code>https:\/\/www.simoahava.com\/<\/code>; requests are sent to <code>https:\/\/sst.simoahava.com\/<\/code>.<\/li>\n<li><strong>First-Party Mode (same-site, same-origin)<\/strong> with subfolder: User navigates to <code>https:\/\/www.simoahava.com\/<\/code>; requests are sent to <code>https:\/\/www.simoahava.com\/metrics\/<\/code>.<\/li>\n<\/ol>\n<p>With First-Party Mode services, (3) above, the browser only ever communicates with the domain of the website. Read on to understand why this can be significant.<\/p>\n<p>This article is an overview of First-Party Mode, as well as a discussion starter on the (relative) benefits and (potential) risks involved.<\/p>\n<p>If you want to jump over the technical stuff and go straight to my thoughts on the matter, follow <a href=\"#so-whats-the-point\">this link<\/a>.<\/p>\n<p>                <span class=\"simmer\"><br \/>\n  <span class=\"close\">X<\/span><\/p>\n<p>\n    <span class=\"fa fa-md fa-bell\"\/><br \/>\n    <strong>The Simmer Newsletter<\/strong>\n  <\/p>\n<p>\n    Subscribe to the <a href=\"https:\/\/www.simoahava.com\/newsletter\/\">Simmer newsletter<\/a> to get the latest news and content from Simo Ahava into your email inbox!\n  <\/p>\n<p>  <\/span><\/p>\n<h2 id=\"how-does-it-work\">How does it work?<\/h2>\n<p>With First-Party Mode, the website reserves a <strong>subfolder<\/strong> like <code>\/metrics<\/code> that is <em>not used for any other purpose<\/em> (this is important!).<\/p>\n<p>For FPM to work, the website infrastructure itself should support rerouting specific requests and modifying their request headers.<\/p>\n<p>This infrastructure could comprise a <a href=\"https:\/\/cloud.google.com\/load-balancing\/docs\/application-load-balancer\">load balancer<\/a>, a <a href=\"https:\/\/cloud.google.com\/cdn?hl=en\">CDN<\/a>, an <a href=\"https:\/\/developers.cloudflare.com\/rules\/origin-rules\/\">edge service<\/a>, or a <a href=\"https:\/\/docs.nginx.com\/nginx\/admin-guide\/web-server\/reverse-proxy\/\">proxy server<\/a>, for example.<\/p>\n<div style=\"aspect-ratio: 1946 \/ 340;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/routing-rules.jpg\" title=\"Routing rules\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"340\" width=\"1946\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/routing-rules.jpg#ZgotmplZ\" alt=\"Routing rules\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This technology is then configured to route requests collected at a specific path (e.g. <code>\/metrics<\/code>) to a Google host reserved for the tagging container of the website.<\/p>\n<p>Google receives the request, processes it, and finally returns a response back to the browser using the same channel.<\/p>\n<h3 id=\"server-side-google-tag-manager\">Server-side Google Tag Manager<\/h3>\n<p>If you\u2019ve been using <a href=\"https:\/\/www.simoahava.com\/analytics\/server-side-tagging-google-tag-manager\/\">server-side Google Tag Manager<\/a>, you\u2019ll know that you have already had the capability to do something like this.<\/p>\n<p>Loading <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/dependency-serving\">Google dependencies<\/a> from your own server is baked into the application, and if you\u2019ve deployed with a <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/custom-domain?option=same-origin\">same-origin setup<\/a>, you already have \u201cfirst-party mode\u201d in use.<\/p>\n<div style=\"aspect-ratio: 1764 \/ 502;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/gtm-client.jpg\" title=\"GTM client\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"502\" width=\"1764\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/gtm-client.jpg#ZgotmplZ\" alt=\"GTM client\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>However, server-side GTM is a fully-fledged <strong>application service<\/strong> that is designed to do powerful data pipeline tasks. It\u2019s not necessarily best suited for transporting potentially large scripts and files. That\u2019s what a dedicated content distribution network (CDN) service is for.<\/p>\n<p>You can actually <strong>combine<\/strong> First-Party Mode and server-side Google Tag Manager. Set up FPM for library requests, and use the <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/send-data?option=gtag#1_send_data_from_a_website_to_your_server-side_container_\"><code>server_container_url<\/code> field in Google Tag<\/a> to collect analytics and measurement pings to server-side GTM.<\/p>\n<div style=\"aspect-ratio: 1920 \/ 1080;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/s-gtm-setup.jpg\" title=\"SGTM setup\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1080\" width=\"1920\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/s-gtm-setup.jpg#ZgotmplZ\" alt=\"SGTM setup\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>It\u2019s a pretty smooth setup. If you configure the Google Tag Manager <strong>web container<\/strong> to load through FPM, then any subsequent Google Tag library loads (Google Analytics 4, Google Ads, for example), will <strong>automatically<\/strong> load through FPM, too.<\/p>\n<h3 id=\"how-to-set-it-up\">How to set it up<\/h3>\n<p>Google has detailed instructions for setting up FPM using <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/first-party\/setup-guide#google-cloud\">Google Cloud load balancing<\/a> or <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/first-party\/setup-guide#cloudflare\">Cloudflare<\/a>.<\/p>\n<blockquote>\n<p><strong>Note!<\/strong> If you want to use Cloudflare, you need an expensive <strong>Enterprise<\/strong> subscription to manage this setup.<\/p>\n<\/blockquote>\n<p>Remember that the main requirement is that your <strong>website domain<\/strong> points to this service, too.<\/p>\n<p>It\u2019s not enough to set up a load balancer <em>just<\/em> for First-Party Mode. All of your website traffic needs to flow through this entry point \u2013\u00a0the routing rules then redirect the subfolder traffic to the Google host.<\/p>\n<p>If your site uses some other CDN or load balancer than Google Cloud or Cloudflare, you can follow the steps outlined in <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/first-party\/setup-guide#other\">the documentation<\/a>.<\/p>\n<ol>\n<li>You need to add an origin or backend to your setup that points to <code><tag id=\"\">.fps.goog<\/tag><\/code>.<\/li>\n<li>For requests to this backend, override the <code>Host<\/code> header to be equal to <code><tag id=\"\">.fps.goog<\/tag><\/code>. Allow all cookies and query strings to be forwarded (this is usually the default).<\/li>\n<li>Add a route rule that forwards <code>\/metrics<\/code> traffic to this backend.<\/li>\n<li>Configure this route rule to have the highest priority.<\/li>\n<li><strong>Important!<\/strong> Update your tag snippet(s) to load the respective library from <code>https:\/\/www.yoursite.com\/metrics\/<\/code> rather than from Google\u2019s domain.<\/li>\n<\/ol>\n<p>To test the setup, browse to <code>https:\/\/www.yoursite.com\/metrics\/healthy<\/code>. If the page shows the text <code>ok<\/code>, it means that First-Party Mode is working.<\/p>\n<div style=\"aspect-ratio: 1016 \/ 242;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/healthy-response.jpg\" title=\"Healthy response\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"242\" width=\"1016\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/healthy-response.jpg#ZgotmplZ\" alt=\"Healthy response\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<h2 id=\"so-whats-the-point\">So, what\u2019s the point?<\/h2>\n<p>Advertisers, businesses, data companies, brokers, publishers, and hobby websites alike are facing data loss and quality degradation like never before.<\/p>\n<p><a href=\"https:\/\/content-security-policy.com\/\">Content Security Policies<\/a>, <a href=\"https:\/\/www.cookiestatus.com\/\">browser tracking protections<\/a>, and ad (and content) blockers all target <em>third-party<\/em> services in an attempt to squash the data collection free-for-all that\u2019s been rampant over the past decades.<\/p>\n<p>This is why First-Party Mode (and similar technologies) might sound tempting.<\/p>\n<h3 id=\"additional-layer-of-control\">Additional layer of control<\/h3>\n<p>First of all, routing traffic through an upstream service point that <strong>you control<\/strong> is potentially a huge net positive for your compliance and data validation practices.<\/p>\n<p>This is <em>my<\/em> main justification for <strong>server-side tagging<\/strong> \u2013 it gives you an incredible amount of control to prevent data-hungry vendors from leeching data from the user without restriction.<\/p>\n<p>FPM gives control, too, but not to this extent. Many CDNs and Load Balancers allow you to remove information from the forwarded request, such as the <a href=\"https:\/\/developers.cloudflare.com\/rules\/transform\/managed-transforms\/reference\/#remove-visitor-ip-headers\">user\u2019s original IP address<\/a>.<\/p>\n<p>Dropping the user\u2019s IP address is particularly important if using Google\u2019s <a href=\"https:\/\/support.google.com\/google-ads\/answer\/10000067\">Advanced Consent Mode<\/a>, as the IP address is considered personal data in the European Union.<\/p>\n<div style=\"aspect-ratio: 2042 \/ 520;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/cloudflare-transform.jpg\" title=\"Cloudflare transform\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"520\" width=\"2042\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/cloudflare-transform.jpg#ZgotmplZ\" alt=\"Cloudflare transform\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>But that\u2019s about it \u2013 they don\u2019t let you selectively strip personal data from the request, and doing conditional blocking when the request lacks consent signals might be difficult to do.<\/p>\n<p>So while FPM does give you <em>some<\/em> control, it\u2019s not the same as a fully-fledged application service like server-side Google Tag Manager.<\/p>\n<p>There\u2019s also a <strong>big risk<\/strong> involved with forwarding <em>all<\/em> cookies to the Google host. There\u2019s a <em>lot<\/em> of information stored in browser cookies that a third party should not have access to, ranging from the innocuous but privacy-sensitive (e.g. vendor IDs) to data security risks (e.g. incorrectly stored authentication tokens).<\/p>\n<blockquote>\n<p>I received word from Google that they already have internal filters in place, automatically dropping non-Google cookies from the data that is processed. They are working on making this more transparent to users and audit trails.<\/p>\n<\/blockquote>\n<h3 id=\"circumvent-ad-blockers\">Circumvent ad blockers<\/h3>\n<p>First-Party Mode addresses the \u201cproblem\u201d (<a href=\"#ad-blocker-heuristics\">see below<\/a> why I put this word in quotes) of <strong>data loss<\/strong> due to <strong>ad blockers<\/strong>. Many ad blockers still rely on blocklists that have <strong>domain-matching<\/strong> patterns as their main heuristic.<\/p>\n<p>Google\u2019s domains are <em>invariably<\/em> in these blocklists, as they are so deeply entrenched in the world of advertising technologies.<\/p>\n<p>Since the browser no longer communicates with Google\u2019s domains directly, ad blockers have a tougher time blocking these requests.<\/p>\n<p><em>However<\/em>, ad blockers aren\u2019t stupid. Some lists evolve at a glacial pace, but others are quicker to make a note of <em>domain masking<\/em> as a blocker workaround.<\/p>\n<p>For example, <a href=\"https:\/\/easylist.to\/\">EasyPrivacy<\/a> looks at paths (<em>\/gtm.js<\/em>) and even query parameters (<em>.js?id=GTM-<\/em>) to determine blockable requests.<\/p>\n<div style=\"aspect-ratio: 862 \/ 284;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/easyprivacy.jpg\" title=\"EasyPrivacy\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"284\" width=\"862\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/easyprivacy.jpg#ZgotmplZ\" alt=\"EasyPrivacy\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In this case, just switching the domain from <code>https:\/\/www.googletagmanager.com\/<\/code> to <code>https:\/\/www.yoursite.com\/<\/code> isn\u2019t enough, because the request <em>path<\/em> and <em>query string<\/em> is still matched by the blocklist.<\/p>\n<p>Unless your first-party serving completely obfuscates the request path and query parameters so that they no longer resemble the original, ad blockers <em>will<\/em> catch up sooner rather than later.<\/p>\n<h3 id=\"webkits-first-party-cookie-expiration\">WebKit\u2019s first-party cookie expiration<\/h3>\n<p>Another \u201cbenefit\u201d that FPM introduces is a lifeline for <em>first-party cookies<\/em> whose expiration the WebKit browser engine <a href=\"https:\/\/webkit.org\/tracking-prevention\/#intelligent-tracking-prevention-itp\">has tried to cap<\/a>. WebKit runs the Safari browser and (still) many iOS and iPadOS browser apps.<\/p>\n<div style=\"aspect-ratio: 1562 \/ 418;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/webkit-protections.jpg\" title=\"WebKit tracking preventions\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"418\" width=\"1562\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/webkit-protections.jpg#ZgotmplZ\" alt=\"WebKit tracking preventions\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>With First-Party Mode, the tracking requests share the <strong>exact same domain<\/strong> as the website itself. They are, in fact, <strong>same-origin<\/strong> requests relative to the website. This means that WebKit\u2019s tracking protections <em>do not apply<\/em>, as they require at least a <em>whiff<\/em> of third-party in the request chain.<\/p>\n<p>FPM moves the logic of data transfer (between the user and Google) from the browser to the web server, and web browsers do not have visibility to what goes on in the server.<\/p>\n<h3 id=\"content-security-policy\">Content Security Policy<\/h3>\n<p>Yet another benefit of First-Party Mode: by communicating with the website instead of with Google\u2019s domains, the Content Security Policy (CSP) of the website can be made stricter.<\/p>\n<p>This is because origins like <code>https:\/\/www.googletagmanager.com<\/code> can now be added to the CSP, as the browser no longer needs to send data to them.<\/p>\n<p>While a stricter CSP is definitely a good thing, this benefit can be considered largely superficial.<\/p>\n<p>Even though the browser no longer communicates with Google\u2019s services directly, it still ends up loading them \u2013\u00a0just via the website\u2019s domain rather than Google\u2019s CDN. So while <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/Cross-site_scripting\">cross-site scripting (XSS)<\/a> risks are mitigated, the issue of loading unreliable content is largely left unaddressed.<\/p>\n<p>This means that if the purpose of the CSP is to prevent potentially harmful scripts from being loaded in the browser, FPM doesn\u2019t really change this risk profile at all. The scripts are still loaded, just through a more obscure pathway than before.<\/p>\n<p>Many discussions around First-Party Mode revolve around misunderstandings and knee-jerk reactions. I\u2019m often guilty of these, too.<\/p>\n<p>Here\u2019s my attempt to address some of these comments that have been <a href=\"https:\/\/www.linkedin.com\/posts\/simoahava_google-has-released-first-party-mode-into-activity-7219234622721671169-sUFz\">circulating online<\/a>.<\/p>\n<h3 id=\"same-site-vs-same-origin\">Same-site vs. same-origin<\/h3>\n<p>A <strong>subdomain<\/strong> setup such as that often used with server-side Google Tag Manager is much easier to configure than a <strong>subfolder<\/strong> setup.<\/p>\n<p>This is because a subdomain can be mapped with just DNS \u2013 the website itself can use a completely different technology stack.<\/p>\n<p>A <em>subfolder<\/em> needs the website itself to be running through the same service that does the routing. You can\u2019t configure DNS for a subfolder \u2013 the \u201cD\u201d in DNS stands for \u201cDomain\u201d.<\/p>\n<p>A subdomain is <em>same-site<\/em> and <em>cross-origin<\/em>. A subfolder is <em>same-site<\/em> and <em>same-origin<\/em>. This is the main distinction.<\/p>\n<h3 id=\"this-has-been-done-before\">This has been done before<\/h3>\n<p>This is not new technology. Reverse proxies have existed for ages, and the aforementioned <strong>server-side Google Tag Manager<\/strong> has supported first-party serving for years.<\/p>\n<p>Similarly, it\u2019s been trivial to configure transparent request forwarding with <a href=\"https:\/\/developers.cloudflare.com\/workers\/\">Cloudflare Workers<\/a>.<\/p>\n<p>First-Party Mode wasn\u2019t introduced as a <strong>novelty<\/strong> or a <strong>game-changing technology paradigm<\/strong>. Google released FPM to make it <strong>easier<\/strong> to configure first-party serving without having to invest in more complicated (and expensive) tech like server-side Google Tag Manager.<\/p>\n<p>Google\u2019s goal is to level the playing field for all their customers, not just those who have the resources to build complicated machinery for data pipelines.<\/p>\n<p>Even though FPM is out of reach for many of Google\u2019s customers due to lack of access to the kind of technology that request routing requires, it\u2019s likely that they will add even more support for different hosting and CMS systems in the future.<\/p>\n<h3 id=\"cat-and-mouse-game\">Cat and mouse game<\/h3>\n<p>Using FPM to get longer cookie lifetimes in WebKit browsers is, for lack of a better expression, <strong>totally lame<\/strong>. It\u2019s boring. It\u2019s unreliable. It lacks vision. It\u2019s a waste of time and money. It can even be downright risky.<\/p>\n<p>Why unreliable? Well, WebKit has been known to make <a href=\"https:\/\/webkit.org\/blog\/8613\/intelligent-tracking-prevention-2-1\/\">bold moves<\/a>. If WebKit notices that a significant number of sites are circumventing their CNAME cloaking mitigation with a same-origin workaround, they\u2019ll do something about this.<\/p>\n<p>However, <em>what<\/em> they can do about it remains unclear. As it\u2019s same-origin, the browser can\u2019t distinguish between tracking requests and \u201cnormal\u201d website requests, at least on the DNS level.<\/p>\n<p>WebKit would need to start doing pattern matching against a list of known tracking patterns, perhaps using <a href=\"https:\/\/www.simoahava.com\/privacy\/intelligent-tracking-prevention-ios-14-ipados-14-safari-14\/\">Tracker Radar<\/a> as they already do in private browsing mode.<\/p>\n<div style=\"aspect-ratio: 1190 \/ 854;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2024\/07\/privacy-report.jpg\" title=\"Privacy report in Safari\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"854\" width=\"1190\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2024\/07\/privacy-report.jpg#ZgotmplZ\" alt=\"Privacy report in Safari\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>But this would be trivial to circumvent by encoding the path and query string patterns and decoding them before the request is routed.<\/p>\n<p>If I had to place my bets on a <em>bold<\/em> move, I\u2019d imagine WebKit would shift towards capping <strong>all<\/strong> first-party storage access <strong>without exception<\/strong>. This would certainly prevent workarounds.<\/p>\n<p>Or perhaps as a compromise they\u2019ll revitalize the discussion around the <a href=\"https:\/\/github.com\/privacycg\/is-logged-in\">isLoggedIn API<\/a>, allowing <em>some<\/em> first-party storage access, if it can be proved that the user is logged in to the website.<\/p>\n<h3 id=\"ad-blocker-heuristics\">Ad blocker heuristics<\/h3>\n<p>If using FPM to circumvent WebKit\u2019s protections is lame, then using first-party setups to circumvent ad blockers is even more so. It\u2019s also ethically questionable.<\/p>\n<p><strong>Users have the right to block whatever resources they like<\/strong>. It\u2019s their browser. It\u2019s their agency. Some users might use ad blockers to prevent data harvesting, some might use them for data security, and some might use blockers to enjoy a faster browsing experience. It\u2019s their right, and you can never know what the user\u2019s motivation for using a blocker was.<\/p>\n<blockquote>\n<p>If you want to start a debate with me about an advertising-fuelled open web being at risk, then take it elsewhere. Recalibrate your argument to be about the <strong>broken state of ad tech<\/strong> rather than about users taking back control.<\/p>\n<\/blockquote>\n<p>There\u2019s also a tangible risk with a same-origin setup. Ad blockers might flag your <strong>website domain<\/strong> as a tracking domain if it\u2019s prominent enough and if it clearly and visibly circumvents ad blockers with a same-origin workaround.<\/p>\n<p>It wouldn\u2019t be nice to have your website blocked globally.<\/p>\n<h3 id=\"legal-and-regulatory-context\">Legal and regulatory context<\/h3>\n<p>From a legal or regulatory point-of-view, at least in the European Union, FPM doesn\u2019t really change anything.<\/p>\n<p>You <em>still<\/em> need a legal basis to process the user\u2019s personal data (GDPR). You <em>still<\/em> need consent to access storage on the user\u2019s device (ePrivacy Directive).<\/p>\n<p>First-Party Mode is about organizing the technology stack of the website to act as an upstream router for marketing signals. Vendors still end up receiving the same data they would receive without FPM in use. The compliance requirements, the applicable legal frameworks, the responsibilities of involved parties \u2013\u00a0they all remain the same.<\/p>\n<h2 id=\"my-summary-review-of-first-party-mode\">My summary review of First-Party Mode<\/h2>\n<p>First-Party Mode is quite obviously a first step in a more comprehensive collection pipeline overhaul that Google is planning. What the next steps are remains uncertain, but it\u2019s clear this isn\u2019t the last we\u2019ll hear about FPM.<\/p>\n<p>In its current shape, it\u2019s still out of reach for many of Google\u2019s customers. Same as a <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/server-side\/custom-domain?option=same-origin\">same-origin setup for server-side Google Tag Manager<\/a>, it requires a certain type of website infrastructure to already be in place.<\/p>\n<p>Not all websites are hosted on (or behind) a service that allows you to create additional routing and origin rules.<\/p>\n<p>As such, it\u2019s an interesting proposition by Google. It\u2019s also quite a bit of work (and potentially expensive) for just a few benefits.<\/p>\n<p>Circumventing ad blockers and getting longer cookie lifetimes on WebKit\u2019s browsers isn\u2019t worth the investment <em>in my opinion<\/em>.<\/p>\n<p>This is also one of the reasons I\u2019m a strong proponent of a <em>subdomain<\/em> setup over a <em>subfolder<\/em> setup for server-side GTM. It\u2019s just common sense to separate the volatile and potentially risky marketing data flow from the website\u2019s network routes.<\/p>\n<p>So there has to be more to this. What\u2019s Google\u2019s big plan with FPM? What\u2019s so special about it that incentivizes Google to push their customers to it instead of towards server-side Google Tag Manager?<\/p>\n<p>Will Google soon offer a setup similar to <a href=\"https:\/\/developers.facebook.com\/docs\/marketing-api\/conversions-api\/guides\/gateway\/\">Meta\u2019s Conversions API Gateway<\/a>, where they\u2019ll allow customers to make use of first-party serving at scale and at low cost?<\/p>\n<p>Time will tell.<\/p>\n<p>Right now, if your website infrastructure supports the type of routing that First-Party Mode requires, maybe it\u2019s worth giving it a spin. Perhaps you\u2019ll recover enough data to make it worth the investment.<\/p>\n<p>If your website is hosted in a way that does <em>not<\/em> support a same-origin setup for your marketing data, I\u2019m not sure if you should migrate given that the benefits of First-Party Mode are as few as they seem to be.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Google has released a new feature, First-Party Mode (FPM), into public beta. Image source First-Party Mode seeks to make it easier to wrap Google\u2019s measurement and advertising technologies in a first-party, same-origin context. This means that the user\u2019s browser, when visiting a website running FPM, would no longer communicate directly with Google\u2019s domains when fetching [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":32338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[21681,1531,1430,1725],"dealstore":[],"offerexpiration":[],"class_list":["post-32337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-firstparty","tag-google","tag-mode","tag-tags"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>First-Party Mode For Google Tags - Som2ny Network<\/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:\/\/fivemor.com\/?p=32337\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"First-Party Mode For Google Tags - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"Google has released a new feature, First-Party Mode (FPM), into public beta. Image source First-Party Mode seeks to make it easier to wrap Google\u2019s measurement and advertising technologies in a first-party, same-origin context. This means that the user\u2019s browser, when visiting a website running FPM, would no longer communicate directly with Google\u2019s domains when fetching [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=32337\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-17T02:22:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=32337#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=32337\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"First-Party Mode For Google Tags\",\"datePublished\":\"2025-01-17T02:22:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=32337\"},\"wordCount\":2670,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=32337#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg\",\"keywords\":[\"FirstParty\",\"Google\",\"Mode\",\"TAGS\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=32337#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=32337\",\"url\":\"https:\/\/fivemor.com\/?p=32337\",\"name\":\"First-Party Mode For Google Tags - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=32337#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=32337#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg\",\"datePublished\":\"2025-01-17T02:22:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=32337#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=32337\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=32337#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=32337#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"First-Party Mode For Google Tags\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"First-Party Mode For Google Tags - Som2ny Network","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:\/\/fivemor.com\/?p=32337","og_locale":"en_US","og_type":"article","og_title":"First-Party Mode For Google Tags - Som2ny Network","og_description":"Google has released a new feature, First-Party Mode (FPM), into public beta. Image source First-Party Mode seeks to make it easier to wrap Google\u2019s measurement and advertising technologies in a first-party, same-origin context. This means that the user\u2019s browser, when visiting a website running FPM, would no longer communicate directly with Google\u2019s domains when fetching [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=32337","og_site_name":"Som2ny Network","article_published_time":"2025-01-17T02:22:24+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=32337#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=32337"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"First-Party Mode For Google Tags","datePublished":"2025-01-17T02:22:24+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=32337"},"wordCount":2670,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=32337#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg","keywords":["FirstParty","Google","Mode","TAGS"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=32337#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=32337","url":"https:\/\/fivemor.com\/?p=32337","name":"First-Party Mode For Google Tags - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=32337#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=32337#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg","datePublished":"2025-01-17T02:22:24+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=32337#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=32337"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=32337#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/01\/first-party-mode-google-tags.jpg","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=32337#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"First-Party Mode For Google Tags"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/32337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32337"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/32337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/32338"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32337"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=32337"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=32337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}