How much does server-side GTM cost in 2026?
Server-side GTM hosting falls into three pricing models in 2026: Google Cloud Run (variable, starts at ~€120/month for 3 minimal servers, scales to €240–€300 for higher traffic, plus optional logging fees), managed providers like Stape (fixed monthly: €20/month for 500k requests, €167/month for 20M requests on the Enterprise plan), and self-hosted Docker (compute cost only, typically €30–€80/month on a VPS but requires DevOps maintenance time).
A controlled October 2025 A/B test on real Shopify stores found Stape was 3x cheaper per request than optimised Cloud Run — €0.083 per 10,000 page_views vs €0.25 on GCR. The variable cost on Cloud Run is the dealbreaker for most stores below £5,000/month sGTM spend.
This post walks the actual numbers, the trade-offs each hosting model creates, and how to pick the right one.
The three hosting models compared
| Model | Pricing | Setup time | Scaling | Maintenance | Best for |
|---|---|---|---|---|---|
| Cloud Run | Variable per-request + per-second compute | 30–90 min | Auto, unlimited | None (managed) | High-volume properties willing to optimise |
| Stape | Fixed monthly tiers | 5–15 min | Auto within plan | None | SMB and mid-market needing cost predictability |
| Self-hosted Docker | Compute cost only | 2–8 hours | Manual | Ongoing DevOps work | Privacy-strict orgs, technical teams, large enterprise |
The split: predictable cost vs flexibility. Cloud Run is flexible but unpredictable; Stape is predictable but less customisable; self-hosted is maximally flexible and predictable but expensive in DevOps time.
Cloud Run pricing in detail
Google Cloud Run charges per request and per second of compute. The recommended minimum sGTM setup:
- 3 server instances minimum (for redundancy and load distribution)
- 512 MB memory per instance (handles standard sGTM workloads)
- 2.5M requests/month at this baseline configuration
Cost at this baseline: ~€40–€50/month per instance × 3 = €120–€150/month.
Above baseline, Google auto-scales:
- 5–6 instances for properties with higher traffic and tag volume → €240–€300/month
- Logging not disabled by default — adds ~€100/month for 500,000 logged requests at default verbosity
Cloud Run includes a free tier (2 million requests/month, 360,000 vCPU-seconds, 180,000 GiB-seconds memory), so very low-traffic properties may stay within free tier permanently.
The optimisation lever: disable detailed request logging in production. Default logging captures every request — for sGTM that's a doubling of effective cost. Configure Cloud Run to log only errors and sampled production traffic.
Stape pricing in detail
Stape uses fixed monthly tiers based on request volume:
| Plan | Price (approx) | Requests included | Best for |
|---|---|---|---|
| Free | €0 | 10,000/month | Testing, dev environments |
| Basic | €20/month | 500,000/month | Small e-commerce, lead gen |
| Business | €100/month | 5M/month | Mid-market e-commerce |
| Enterprise | €167/month (€2,000/year) | 20M/month | High-volume Shopify, multi-store |
| Custom | Negotiated | 50M+ /month | Enterprise multi-property |
Key differentiator: fixed cost regardless of traffic spikes within plan. A Black Friday surge that doubles request volume on Cloud Run doubles your bill; on Stape it's no extra charge as long as you stay within plan capacity.
Stape includes free access logs (Cloud Run charges separately for logging), included database (Cloud Run requires separate Firestore billing), and free global CDN via Cloudflare for JS file delivery. The bundled features narrow Cloud Run's flexibility advantage further when you account for what you'd pay separately.
The October 2025 Shopify benchmark
The most cited 2026 cost comparison is Analyzify's controlled benchmark across two live Shopify stores using GA4 server-side tracking:
Test setup:
- Two stores with similar event volumes (~7.3M requests across the test period)
- One on Cloud Run with default settings, then re-tested after optimisation (scaling and resource tuning)
- One on Stape Enterprise plan (€167/month for 20M requests)
Results:
Want to see which hidden implementation gaps are affecting your GA4 data quality?
- Cloud Run after optimisation: €0.25 per 10,000 page_view requests
- Stape Enterprise: €0.083 per 10,000 page_view requests (effective rate)
- 3x lower cost per request on Stape even after Cloud Run was tuned for cost
- Cost stability: Stape billing was flat regardless of traffic spikes; Cloud Run required daily monitoring to prevent runaway spend
The takeaway: Cloud Run is genuinely flexible but the operational overhead (monitoring, optimisation tuning, logging configuration) is a hidden cost most cost comparisons ignore. Stape eliminates the operational overhead — that's what you're paying for.
Self-hosted Docker option
For technical teams running their own infrastructure, sGTM can be deployed via Docker:
- VPS host (DigitalOcean, Hetzner, Linode, AWS EC2): €30–€80/month for a server with sufficient capacity for 5–10M requests/month
- Docker image: official Google sGTM image
- Domain configuration: custom subdomain pointing to the VPS
- Maintenance: OS updates, Docker version upgrades, sGTM image updates, monitoring
The cash cost is lower than managed alternatives — a €40/month Hetzner VPS handles substantial traffic. But the DevOps time isn't free. Realistic ongoing time investment: 2–4 hours/month for routine maintenance, more for major sGTM version upgrades (the v3.2.0 September 2025 release required configuration changes for many existing setups).
Self-hosted makes economic sense when:
- You have in-house DevOps capability already
- You need infrastructure choices managed providers don't offer (specific regions, custom security configurations, audit-trail requirements)
- You're running sGTM for multiple properties at scale where €167/month × 10 properties is meaningful spend
For single-property SMB, self-hosted's hidden DevOps cost typically outweighs the managed-provider fees.
What hidden costs to budget for
Three line items every sGTM hosting comparison misses:
1. Logging and observability. Cloud Run logging at default verbosity adds ~€100/month for 500k requests. Stape includes free access logs. Self-hosted requires you to configure your own logging stack (free if simple, time-cost if elaborate).
2. Multi-region deployment. EU data residency requires hosting in EU regions, sometimes splitting infrastructure across regions. Cloud Run charges full regional rates per region. Stape includes EU hosting (Scaleway) on Enterprise tier; some plans charge extra. Self-hosted means standing up parallel infrastructure.
3. Staging/preview environments. sGTM testing requires a separate non-production container. Cloud Run requires running a parallel instance set (effectively doubling cost). Stape includes a preview environment in plan. Self-hosted requires standing up a second VPS.
A property "officially" running €100/month on Cloud Run can easily be paying €250–€350/month after logging, EU duplication, and staging are accounted for.
The £5,000/month threshold
There's a cost threshold above which hosting choice becomes a real strategic decision rather than a marginal optimisation:
- Below £200/month spend: Cost is noise. Pick the easiest path (Stape Basic for SMB, Cloud Run for technically-resourced teams).
- £200–£1,500/month spend: Real money. Optimise — choose Stape Business or Enterprise based on request volume, or invest in Cloud Run optimisation.
- £1,500–£5,000/month spend: Strategic decision. Self-hosted may make sense if you have DevOps capability. Multi-property Stape contracts can reduce per-property cost.
- Above £5,000/month spend: Enterprise procurement. Custom Stape contracts, dedicated Cloud Run capacity, or multi-region self-hosted infrastructure all valid options. Get vendor quotes; don't accept list pricing.
The 80/20 rule: 80% of properties should use Stape on the matching tier. The 20% with specific technical or compliance constraints justify the alternative paths.
What you don't get from sGTM regardless of hosting
A reality check that affects all hosting choices: sGTM is not a magic ad-blocker bypass. DataUnlocker's 2025 analysis found roughly 80% of widely used ad-blocker software still detects and blocks custom-domain sGTM traffic via subdomain pattern matching, payload shape, and behavioural signals.
The real wins from sGTM are:
- Conversions API integrations (Meta CAPI, Google Ads Conversion API) which operate server-to-server, independent of blocker lists
- First-party cookie strategy vs third-party cookies
- Page-load speed improvements by removing client-side script weight
- PII filtering and redaction before data reaches Google
- Vendor data isolation — control what each downstream platform receives
If your justification for sGTM is "bypassing ad-blockers", the ROI calculation is weaker than vendors typically present. The CAPI use case is the genuinely strong one.
FAQ: Server-Side GTM Hosting Cost Benchmarks: Cloud Run vs Stape vs Self-Hosted
How close should server-side gtm hosting cost benchmarks: cloud run vs stape vs self-hosted numbers be before I worry?
What should I validate first when server-side gtm hosting cost benchmarks: cloud run vs stape vs self-hosted numbers disagree?
When is a discrepancy a tracking bug instead of a reporting difference?
Related guides for Server-Side GTM Hosting Cost Benchmarks: Cloud Run vs Stape vs Self-Hosted
Server-Side GTM vs Client-Side GTM: A Decision Matrix (2026)
Move to server-side GTM if you (1) need Conversions API integrations with Meta, Google Ads, TikTok, or LinkedIn for offline-conversion match quality (the strongest single justification — typical 9–24% conversion lift)…
Common sGTM Transformation Bugs and How to Catch Them (2026)
The seven recurring sGTM transformation bugs in 2026: (1) Consent Mode V2 signals stripped in server transformations (breaks EU/UK Google Ads measurement), (2) event_id missing on Meta CAPI causing browser-pixel + CAPI conversion duplication…
Run a GA4 audit before server-side gtm hosting cost benchmarks: cloud run vs stape vs self-hosted spreads into reporting decisions
Use GA4 Audits to surface implementation gaps, broken signals, and the next fixes to prioritize before the issue becomes harder to trust or explain.