---
title: "Google tag gateway vs server-side tagging: how to choose | Product Metrics"
description: "Google tag gateway, server-side tagging and Full Signal Tracking compared: what each moves first-party, what it costs and which gets past ad blockers."
canonical: "https://www.productmetrics.io/blog/google-tag-gateway-vs-server-side-tagging"
pageType: article
language: en
publisher: "Product Metrics"
author: "Berend Vrakking"
datePublished: 2026-10-07
dateModified: 2026-10-08
image: "https://www.productmetrics.io/og/blog/google-tag-gateway-vs-server-side-tagging.png"
---

> Content index: https://www.productmetrics.io/llms.txt

# Google tag gateway vs server-side tagging: how to choose

## Key takeaways

- The gateway serves Google's tag from your domain; server-side tagging runs a server container you host; Full Signal Tracking is a managed endpoint sending every purchase to Google Ads.
- The gateway is free on Google Cloud's load balancer (standard usage applies) and on Cloudflare. A Cloud Run server costs about $45 a month and Google recommends at least two.
- Ad blockers block Google tag gateway and server-side Google Tag Manager; Full Signal Tracking gets through. In our 30 September 2026 lab, its endpoint was reached in all 6 setups.
- The options are not either/or: Google documents running the gateway through a tagging server.

Google tag gateway and server-side tagging both make Google Ads tracking more first-party, and a managed endpoint is the third route merchants ask about. The gateway changes where Google's tag is served from, a server container changes where the data is processed, and a managed endpoint hands the whole server to someone else.

Moving Google's tag to your own domain does not get it past ad blockers: they block Google tag gateway and server-side Google Tag Manager setups. Full Signal Tracking gets through. Every Google and Cloudflare claim links to the page it comes from.

## Three routes, three different jobs

Google tag gateway serves Google's own tag from your domain. Google says it "lets you deploy a Google tag using your own first-party infrastructure, hosted on your website's domain" ([Google Tag Platform](https://developers.google.com/tag-platform/tag-manager/gateway)). In its [setup guide](https://developers.google.com/tag-platform/tag-manager/gateway/setup-guide), your site loads the tag from your first-party domain and "some measurement requests will be sent to Google using your first-party domain".

Server-side tagging is a server container you run. Google describes it as processing data "on a server you control, rather than in the user's browser" ([Google Tag Platform](https://developers.google.com/tag-platform/tag-manager/server-side/intro)). It runs in your own Google Cloud project or another environment, and Google strongly recommends putting it on your first-party domain.

A managed endpoint is the same idea with someone else running it. Full Signal Tracking runs a unique endpoint on your own domain and sends every purchase from there into Google Ads, with no server container for you to host. If an endpoint is ever blocked, it auto-rotates to a fresh one.

## What happens when a visitor runs an ad blocker?

Ad blockers block Google tag gateway and server-side Google Tag Manager setups. Full Signal Tracking gets through, and if an endpoint is ever blocked it auto-rotates to a fresh one.

**What gets through an ad blocker.** Ad blockers: Brave Shields, uBlock Origin, AdGuard, AdBlock, VPN / DNS blockers.

| Route | How it sends | With an ad blocker on |
| --- | --- | --- |
| Standard Google tag | Google Tag Manager, GA4 and the Google Ads tag: stopped or replaced by stubs in Brave Shields, uBlock Origin Lite and AdGuard in our lab | Blocked |
| Google tag gateway | Google’s tag served from your own domain | Blocked |
| Server-side Google Tag Manager | A server container you host on your own domain | Blocked |
| Product Metrics: Full Signal Server-side Tracking | Every purchase sent from a unique endpoint on your domain; reached in all 6 lab setups | Gets through, auto-rotates if ever blocked |

Our lab ran real browsers with real extensions on 30 September 2026. The standard Google Tag Manager, GA4 and Google Ads tags were stopped or replaced by stubs in Brave Shields, uBlock Origin Lite and AdGuard with Tracking Protection. AdGuard on its default filters and AdBlock did not block the Google Ads tag. A Full Signal-style first-party endpoint was reached in all 6 setups.

**Figure: In how many of 6 blocker setups did each request get through?.** Each bar is the number of the 6 lab setups in which that request got through. The standard Google Ads tag got through in 3; a Full Signal-style first-party endpoint was reached in all 6.

| Request tested | Setups where it got through (of 6) |
| --- | --- |
| Standard Google Ads tag | 3 |
| Full Signal-style first-party endpoint | 6 |

_Source: Product Metrics ad blocker lab, 30 September 2026 (real browsers, throwaway profiles, example.com origin; AdGuard DNS checked with dig)_

Safari lets tags load but cuts their cookies to 7 days; Full Signal's first-party cookie lasts 30 days.

> **Get every purchase past ad blockers** Full Signal Tracking sends every purchase from a unique endpoint on your domain into Google Ads, with no server container to host. It is included in Pro. [See how Full Signal Tracking works](https://www.productmetrics.io/server-side-tracking)

To see what a request carries, decode it in the [SDK debugger](https://www.productmetrics.io/sdk-debugger).

[Test what your own browser blocks →](https://www.productmetrics.io/ad-blocker-conversion-tracking)

## Side by side

| | Google tag gateway | Server-side GTM | Full Signal Tracking |
|---|---|---|---|
| Ad blockers | Blocked | Blocked | Gets through; auto-rotates if ever blocked |
| What moves first-party | Google's tag and "some measurement requests", through your own domain | Data processing, on a server you control instead of in the browser | Every purchase, sent from a unique endpoint on your domain into Google Ads |
| Who hosts it | Your CDN, load balancer or web server, with in-UI integrations for Google Cloud (beta), Fastly, Akamai, Webflow, Duda and Cloudflare | You, in your own Google Cloud project (Cloud Run is recommended) or elsewhere | Product Metrics; no server container to host |
| Cost | Free on Google Cloud's load balancer integration plus load balancer usage; free on Cloudflare; other CDNs not documented | About $45 a month per Cloud Run server, two recommended (about $90 calculated) | Included in Pro, not billed separately |
| Setup | Five steps in Google tag settings, or a toggle, tag ID and path on Cloudflare; no changes to tag code | Server container, tagging server, custom server domain and a billing account | Three steps on your platform; no custom dev work |
| What it cannot fix alone | Moves Google's tag and only some requests; no product-level view | Someone has to run it; a processing layer, not a product-level view | Google Ads only; consent still decides |

Sources: the Google and Cloudflare pages linked in this post, and Product Metrics' own product facts.

You don't have to pick one. Google documents the gateway running through a [tagging server](https://developers.google.com/tag-platform/tag-manager/server-side/dependency-serving), so the first two overlap.

## Cost and setup

Google documents the gateway as free on its Google Cloud load balancer integration: "The Google tag gateway for advertisers integration is free. You'll only pay for your standard Google Cloud Load Balancer usage, such as data processing and network traffic" ([Google Ads Help](https://support.google.com/google-ads/answer/16816376?hl=en)). Cloudflare says it "is free to use" ([Cloudflare docs](https://developers.cloudflare.com/google-tag-gateway/), updated 17 April 2026). We found no cost statement for other CDNs.

A server container comes with a stated price. Google says "Each server costs approximately $45 /month (USD)" and recommends a minimum of two instances in case of an outage ([Cloud Run setup guide](https://developers.google.com/tag-platform/tag-manager/server-side/cloud-run-setup-guide)).

**Figure: What does Google say a server container costs, in US dollars a month?.** Each bar is Google's stated monthly cost. Google puts one Cloud Run server at about $45 a month and recommends at least two, which is about $90 a month before the load on them grows.

| Number of Cloud Run servers | Cost in US dollars a month |
| --- | --- |
| One server | 45 |
| Two servers (recommended minimum) | 90 |

_Source: Google Tag Manager Cloud Run setup guide (last updated 12 May 2026, read 7 October 2026); two servers calculated as 2 × $45_

Setup differs too, as the table shows, and a server container is also a server: someone has to keep it patched, paid for and awake. Full Signal Tracking has no container to look after and is included in the Pro subscription.

## What none of them fixes alone

The gateway changes where Google's tag is served from, and only "some" requests move. Google describes it as a way to serve the tag, not to add customer data. Enhanced conversions are a separate feature, covered in [enhanced conversions vs server-side tracking](https://www.productmetrics.io/blog/enhanced-conversions-vs-server-side-tracking).

Server-side tagging is a routing and processing layer. Google lists screening and modifying incoming requests, validating and normalising data, and removing personally identifiable information before passing it on ([Google Tag Manager Help](https://support.google.com/tagmanager/answer/13387731?hl=en)). It gives no product-level view.

Full Signal Tracking covers Google Ads only. Every purchase is sent marked NEW or RETURNING, and Product Metrics delivers new-customer, profit and LTV conversions to Google Ads.

None of the three replaces consent. What you need depends on your region and your consent setup; this isn't legal advice.

## Which should you set up first?

Measure your own gap first, then choose the lightest route that closes it, changing one thing at a time.

**Decide which to set up first**

1. **Measure the gap.** Compare your shop's orders with the conversions in Google Ads for the same days, allowing for conversion lag, and run the ad blocker test in your own browser.
2. **Serve Google's tag from your domain, if that is all you need.** If your CDN or load balancer has an integration, Google documents a short setup with no changes to your tag code. Ad blockers still block it.
3. **Run a server container to filter or enrich data.** Server-side tagging fits if you want to screen, modify or route data before it goes on, and you can look after a server. Ad blockers block it too.
4. **Use a managed endpoint if purchases are missing from Google Ads.** If the gap is purchases that never arrive and you don't want to host anything, Full Signal Tracking runs the endpoint on your domain for you, and it gets through ad blockers.
5. **Re-check after your usual conversion delay.** Compare orders and conversions again over the same kind of period, then decide whether you need a second route.

## Lost purchases skew product verdicts

Smart Bidding and your per-product decisions learn from the conversions that arrive. A product that loses purchases on the way looks worse than it is, and can end up with its priority lowered because of it.

**Figure: One product's ROAS, actual and as reported when 20% of its purchases never reach Google Ads.** Each bar is the product's ROAS. The dashed line is the ROAS of 4 it needs to break even at a 25% margin. Green is profit beyond it, red the shortfall: with every purchase it earns a ROAS of 4.8, but missing purchases make it report 3.84 and look unprofitable.

| Purchases counted | ROAS: revenue ÷ ad spend |
| --- | --- |
| Actual ROAS | 4.8 |
| Reported ROAS | 3.84 |

Reference line: ROAS needed to break even (4).

_Source: Calculated as 4.8 × (1 − 0.20), with break-even ROAS as 1 ÷ a 25% contribution margin. Illustrative data_

Break-even ROAS is 1 ÷ contribution margin and POAS equals ROAS × contribution margin, so break-even POAS is 1.0 ([POAS vs ROAS](https://www.productmetrics.io/blog/poas-vs-roas)). The maths is in [break-even ROAS per product](https://www.productmetrics.io/blog/break-even-roas-per-product), the [break-even ROAS calculator](https://www.productmetrics.io/break-even-roas-calculator) gives each product's floor, and [Product Segmentation](https://www.productmetrics.io/product-segmentation) then segments your products by clicks and return, using ROAS straight away and POAS once margins are connected.

## Measure your own gap this week

Run the [ad blocker test](https://www.productmetrics.io/ad-blocker-conversion-tracking) and compare your orders with your Google Ads conversions. If purchases are missing and you don't want to host a server, read how [Full Signal Tracking](https://www.productmetrics.io/server-side-tracking) works per platform; it is included in Pro and not billed separately (see [pricing](https://www.productmetrics.io/pricing)). Google's pages change, so check them again in a few months.

## Frequently asked questions

### Is Google tag gateway free?

Google documents the Google Cloud load balancer integration as free: you only pay for your standard Google Cloud Load Balancer usage, such as data processing and network traffic, and Google Ads covers any extra processing the integration causes. Cloudflare documents Google tag gateway for advertisers as free to use. We found no cost statement for other CDNs such as Akamai or Fastly, so check with your provider.

### How do I install Google tag gateway?

You need a Google tag or Tag Manager container already on your site and a CDN or load balancer that can forward requests to external endpoints. On Google Cloud, open Google tag settings, choose Google tag gateway for advertisers, check site compatibility, select your project and domains and complete the setup; this needs a Global External Application Load Balancer (the classic one is not supported) and the Google Tag Gateway Admin role. On Cloudflare, select your domain, turn on Google tag gateway, enter your Google tag ID, choose an unused measurement path and save.

### How is Google tag gateway different from Google Tag Manager?

Google Tag Manager is where you manage tags, and its server-side option processes data on a server you control. Google tag gateway serves the Google tag from your own first-party infrastructure instead of from Google's servers, and Google's setup guide assumes you already have a Google tag or a Tag Manager container. They are not alternatives, and Google documents running the gateway through a tagging server.

### Does Google tag gateway work with ad blockers?

No. Ad blockers block Google tag gateway, and server-side Google Tag Manager setups too. Full Signal Tracking gets through: it sends every purchase from a unique endpoint on your domain and auto-rotates to a fresh one if an endpoint is ever blocked. The ad blocker test on this site shows what your own browser blocks.

### How much does server-side tagging cost?

Google states that each Cloud Run server costs approximately $45 a month and recommends at least two instances, which is about $90 a month by our calculation, and you need a Google Cloud billing account. That excludes the time to look after the server. Full Signal Tracking has no container to host and is included in the Pro subscription, not billed separately.

---

Written by Berend Vrakking, founder of Product Metrics. Last updated 2026-10-08.

HTML version: https://www.productmetrics.io/blog/google-tag-gateway-vs-server-side-tagging
