Cookies

We use cookies for analytics and advertising. You can accept all, keep only necessary, or customize your preferences. Cookie Policy

Digital Vantage LogoDigital Vantage Logo
  • About us
  • Offer
    • Websites
    • Web Applications
    • Applications
    • Technology consulting for companies
    • Online marketing and branding
  • Resources
    • Blog & News
    • Tools and calculators
    • Templates and checklists
  • Contact
Let's talk!
Digital Vantage LogoDigital Vantage Logo
  • About us
  • Offer
  • Resources
  • Contact
  • Szukaj w artykułach ⌘K
    • Websites
      Building a professional online presence
    • Web Applications
      Dedicated web applications - automate and grow your business!
    • Applications
      Custom solutions tailored to your business needs
    • Technology consulting for companies
      That support business Technology consulting for companies where technology has stopped keeping up with business
    • Online marketing and branding
      Designing logos, corporate colors and letterheads
    • Blog & News
      News from the digital world.
    • Tools and calculators
      Before you start talking to an agency, check how much your project should cost.
    • Templates and checklists
      Professional checklists for B2B companies
Let's talk!
Digital Vantage LogoDigital Vantage Logo

Digital Vantage
Tel+48 663 877 600,+48 22 152 51 05
Andriollego 34, 05-400 Otwock (Warsaw)
REGON: 540674000
NIP: PL5321813962

ContactAbout usSite MapOffer
  • Websites
  • Web application
  • Web application development
  • Applications
  • Technology consulting for companies
  • Online marketing and branding
Digital Vantage
Tools and calculators
  • Cost of the website
  • The cost of an online store
  • The cost of a web application
Checklists and templates
  • Launching the site
  • Website audit
  • UX checklist for e-commerce
Blog
  • Company
  • Software development
  • Websites
  • Software and tools
  • Security
  • Marketing on the Internet
  • IT and technology
  • IT strategy
Let's talk about your business!
Follow Us
FacebookInstagram
© Digital Vantage - Warsaw, Poland
Cookie PolicyPrivacy PolicyConditions
English|Polski
© 2026 Digital Vantage. © 2024 Digital Vantage. All rights reserved.
Digital Vantage LogoDigital Vantage Logo

Digital Vantage
Tel+48 663 877 600,+48 22 152 51 05
Andriollego 34, 05-400 Otwock (Warsaw)
REGON: 540674000
NIP: PL5321813962

© Digital Vantage - Warsaw, Poland
Cookie PolicyPrivacy PolicyConditions
English|Polski
© 2026 Digital Vantage. © 2024 Digital Vantage. All rights reserved.
  1. GTM Server DV
Web application

GTM Server DV

Our own server-side tracking for six domains

How Digital Vantage moved tagging out of the browser and onto its own server — first-party, adblock-resistant and controlled from one place for every domain

Internal Digital Vantage infrastructure: a self-hosted server-side Google Tag Manager container that tags traffic for six domains across three countries from a single place. There is no client and no interface — the case sells DevOps and analytics competence: tracking that survives adblockers, with Consent Mode and monitoring of our own that catches an outage in five minutes instead of a day. A reference build, live in production.

6 domains / 3 countries / 1 container
Scale of the setup
Client
GTM Server DV
Year
2026
Tech stack
GTM Server-Side · Docker Compose · Coolify + Traefik
Timeline
38 commits, March–June 2026
Location
Poland (domains in PL / EU / CH)

Udostępnij

FacebookXLinkedInEmailWhatsAppDiscord
01|Context

Challenge

Classic tracking (gtag.js plus fbevents.js) has three known weaknesses: adblockers strip third-party scripts, Safari ITP deletes third-party cookies after seven days, and every additional script costs Core Web Vitals. So we moved tagging onto our own server — one light script from a first-party domain and one point of control over tags for six domains at once.

The real challenge arrived after the rollout. On 7 May 2026 tracking died on all six domains: Google rotated the container image tag, and with it came a configuration requirement the containers did not have, so /gtag/destination began returning 400. The outage lasted over a day and nobody noticed — monitoring existed, but it checked whether the container was alive (always 200) rather than whether the tag actually accepted an event; and it had never worked anyway, because it read its host list from a file that did not contain one. A human found the outage by hand, in the browser console.

02|Solution

Approach

Every decision answers something that failed. The health check now hits two endpoints per host — "the container is alive" AND "GA4 genuinely accepts an event" — because it was the second class of failure that went unnoticed. Configuration (hosts, measurement IDs) is read straight from a single README so it cannot drift apart the way it did before.

The image is pinned to a specific SHA instead of a moving tag that Google rotates without warning — and because a pin is a debt, a weekly cron watches for the rotation before it reaches production. Alerts have a lifecycle on GitHub Issues: the first failure opens an issue and pings Discord, subsequent ones only add a comment, recovery closes it — because twelve identical pings in an hour teach a team to ignore them. The whole monitoring layer is ~1,027 lines of bash with 84 tests under CI, because an unverified monitoring script is the same problem all over again.

03|Proof

Results

6 domains / 3 countries / 1 container
Scale of the setup
>24 h → <5 min
Time to detect a tracking outage (MTTD)
10/10
Healthy probes in production
32 / 40
Application events known to the container
84 / 84
Bash tests under CI

Detection time fell from over a day to under five minutes: the synthetic check runs 10 probes every 5 minutes and pings Discord on the first failure. Measured 16 July 2026 — 10 of 10 probes healthy, every one a 200. Six domains across three countries run on one container with 512 MB of RAM and half a core, on an existing VPS, at no extra cost compared with a managed cloud runtime.

We read that as an engineering result and present it as one. We do not claim "99.9% uptime" — there is no run history here to compute it from. A mean time to detection under five minutes is correct by construction, but it is backed by a single outage from before the rollout, not by a series of detections after it. That is exactly the honesty — measure what was measured — that this project is meant to demonstrate.

Self-hosted server-side GTM for 6 domains, with monitoring that cut tracking-outage detection from over a day to 5 minutes.

Tech stack
  • GTM Server-Side
  • Docker Compose
  • Coolify + Traefik
  • Cloudflare
  • GitHub Actions
  • Bash
  • GA4
  • Consent Mode v2
  • Next.js
YOUR DATA

Losing conversions to browser blocking?

I will move tracking onto your own server — first-party, adblock-resistant, controlled from one place.

Let us talk about measurement