Skip to content

Glossary Server-Side Tracking

What is server-side tracking?

Definition

Server-side tracking, also called server-side tagging, is a data collection model in which the browser sends the information to a server under a domain the brand owns, and that server decides what gets passed on to each analytics or advertising tool.

On this page 5
  1. What server-side measurement means
  2. How it works
  3. Why it matters
  4. Best practices
  5. Common mistakes
In brief

A measurement model in which the browser sends a single event to a server you own, and that server decides which data reaches which tool.

What server-side measurement means

In a classic setup, the visitor's browser loads each vendor's scripts and talks to them directly. Every tool receives the request on its own domain, runs its code inside the page and writes its cookies from there. Actual control over what leaves the page is spread across vendors that never consult each other.

The server-side model moves the distribution point. The browser sends a single event to infrastructure you control, hosted under a subdomain of your own website. From there the tagging logic lives outside the browser: that is where you decide which fields are kept, which are trimmed and which destinations they go to.

Two things that often get confused deserve to be kept apart. Collection still starts in the browser, because something has to observe the click or the page view. What moves is the processing and the distribution. Talking about measurement without a browser is therefore inaccurate: the browser stays in the circuit, only with less third-party code and with a single counterpart.

The practical consequence is one of governance. With distribution on the server you can audit in a single place what goes to each vendor, which is very hard to prove when every script decides on its own.

How it works

The setup has three pieces. First, a subdomain of your website pointing at the tagging infrastructure, with its own certificate. Second, a server container using the same model of tags, triggers and variables you already know from the client side. Third, a component called a client, which listens for incoming requests, claims them and turns them into events the container can read.

A visit then travels like this. The tag in the browser stops calling the vendor's domain and calls your subdomain instead. The container's client claims that request and builds an event out of its parameters. Triggers decide which tags fire, and each tag opens a server-to-server call to the matching destination. In between you can rewrite, mask or discard parameters before they leave.

Hosting is the part most often underestimated. It is not a setting inside the tool but a service running in your cloud account that has to be sized, watched and paid for. The App Engine setup documentation recommends a minimum of three servers in production to reduce the risk of data loss during an outage, and puts each server at roughly 40 dollars a month, on an instance with 1 vCPU, 0.5 GB of memory and 10 GB of disk. There is also a testing configuration that in most cases incurs no cost, meant for test traffic and preview rather than production. Managed providers rent the server at a fixed rate as well.

Why it matters

The decision that hangs on this is not technical, it is operational. Standing up a tagging server means taking on one more production service, with its monthly bill, its monitoring and someone accountable when it stops responding. Anyone who cannot carry that will end up with a worse system than before, because an outage of the tagging server takes down all measurement, not just one tool.

In return you gain two concrete things. One is control over the outgoing data: you can truncate IP addresses, strip identifiers from the query string or stop a vendor from receiving fields it never should have seen. That is nearly impossible to demonstrate in a setup where every script makes its own call. The other is page weight, because much of the third-party code stops loading in the browser.

It also changes the conversation with the business. If leadership expects to recover a hundred percent of the data lost today, lower the expectation before the budget is signed. The improvement is usually real and measurable, but it is partial and depends on the visitor's browser, on the consent they gave and on the quality of the setup.

Best practices

  • Keep consent collection on the client side and make sure its state travels through to the server container. Consent mode is configured in the web container, and the state reaches the server as request parameters.
  • Size production before you migrate: at least three instances, availability alerts and a written rollback plan.
  • Use a subdomain of your own website with a valid certificate, and document how DNS resolves it.
  • Keep a table of which parameter goes to which vendor, and review it every quarter with whoever owns privacy.
  • Migrate in stages: run one event in parallel, compare figures against existing measurement for two or three weeks, and only then switch off the old tag.
  • Record the real monthly cost in the project file, maintenance time included.

Common mistakes

  • Selling it as a compliance solution. Moving the processing does not remove the duty to ask permission before reading or writing information on the user's device.
  • Promising that loss to blockers disappears. The effect varies by blocker and by how the path is built, and it has to be measured in your own data.
  • Taking cookie lifetime for granted. Safari caps at seven days the expiry of cookies set in responses it identifies as CNAME cloaked.
  • Leaving the container unmonitored. Without an availability alert, an outage surfaces in the following Monday's report.
  • Promoting the testing configuration to production, when it is meant for test traffic and will not hold real load.
Manuel Riveiro Rodriguez CEO & Digital Strategist

A technical audit covers this and everything else in one pass.

Request an audit

Frequently asked

Does server-side tracking remove the need to ask for consent?

No. The duty depends on what is done with the information on the visitor's device, not on where it is processed afterwards. Reading or writing a cookie still requires prior permission where the rules demand it. Consent mode itself assumes the notice lives in the web container and that its state travels to the server.

What does a tagging server cost?

It depends on the hosting model. In your own cloud you pay for running instances: the App Engine documentation recommends a minimum of three servers in production and puts each at roughly 40 dollars a month. Managed providers offer a fixed rate. Always add maintenance time, which almost never appears in the budget.

Does it help against ad blockers?

Partly, and it is not what solves the underlying problem. Many blockers filter by known domain, so a call to your own subdomain is not always on their lists. Others filter by path pattern or by request behaviour, and those keep working. Measure it in your data before promising a figure.

Does it extend cookie lifetime?

Sometimes. A cookie set by the server through the HTTP header can last longer than one written by JavaScript from the page. Safari caps cookies from responses it detects as CNAME cloaked at seven days, so the margin depends on the browser and on the setup. It is never a fixed value you can assume by default.

Does it replace the web container?

No. The web container is still needed: it collects consent, observes the page's events and sends the request to the server. The server container replaces each vendor's direct calls, not the browser layer. Running both side by side for a long time is the norm.

Sources

  1. Official App Engine setup documentation: recommends a minimum of three servers in production to reduce the risk of data loss, puts each server at roughly 40 dollars a month on 1 vCPU, 0.5 GB of memory and 10 GB of disk, and describes the testing configuration that in most cases incurs no cost.
  2. Official documentation on consent mode in the server container: the notice on the website captures the user's choices, the Google tag sends them to the server container as parameters of the HTTP request, and consent mode is configured in the web container.
  3. WebKit announcement on the defence against CNAME cloaking: tracking prevention detects those requests and caps the expiry of any cookie set in the HTTP response at seven days. The post is from November 2020 and describes browser behaviour still in force in 2026, so it supplies the mechanism rather than an updated figure on version share.