- Server-side tracking means your conversion events reach GA4 and ad platforms from a server instead of (only) from the visitor’s browser. There are three ways to get there: self-hosted server-side GTM, hosted server-side GTM, or a plugin/API service that forwards events for you.
- Google’s own Cloud Run guide puts one tagging server at about $45 a month and recommends at least two, so a self-hosted floor of roughly $90 a month before traffic grows.
- Hosted sGTM plans start free (10K to 100K requests) and run from $17 to €360 a month in the tiers we checked in October 2026. You trade server work for a request cap.
- A plugin is enough when the job is sending standard conversions from a WordPress site to GA4 and ad platforms. sGTM is the right call when you need custom clients, data transformation or your own cloud.
- Whichever route you choose, you still need a shared event ID so the browser and the server do not double count.
Most guides to server-side tracking start with Google Tag Manager and never leave it. That makes sense if you live in GTM all day. It makes less sense if you run a WordPress site, you want purchases and leads to show up in GA4, Meta and Google Ads, and nobody on your team wants to babysit a cloud server.
This guide is the map. It explains what server-side tracking actually requires, lays out the three ways to do it with real prices, and ends with a decision tree. It is the hub of our series on server-side tracking for WordPress, and yes, we make one of the three options. We will say plainly where the other two win.
What server-side tracking actually requires
Strip away the vendor language and every server-side setup has the same four parts.
- Something that notices the event. A purchase, a form submission, a signup. In WordPress this can be the browser, or the WordPress backend that processes the order or form.
- An endpoint that receives it. Google’s documentation describes the minimum for server-side tagging as a server container, a tagging server to host it, and clients that send data to it. A plugin service replaces “your tagging server” with “the vendor’s servers”, but the idea is the same.
-
Identifiers that join the dots. A server call with no context is an orphan. GA4 needs a
client_idto link a server event to the visit it belongs to, and Meta needs matching parameters such asfbpor anexternal_id. Without them, you get a conversion, but not the story of how it happened. - A way to avoid counting twice. If the browser and the server both report the purchase, the platform must be able to tell they are the same event.
Two details trip up beginners. First, GA4’s Measurement Protocol, the HTTP interface most server-side GA4 setups use, is documented as an addition to browser tagging, not a replacement. Google states that you must use tagging (gtag, Tag Manager or Firebase) to use the protocol. Server-side is a second path, not an off switch for the first.
Second, Meta only deduplicates events received within 48 hours of each other, and the recommended method is to send the same event_id from the Pixel (as eventID) and from the Conversions API, with matching event names. In practice that looks like this:
// Browser (Meta Pixel)
fbq('track', 'Purchase', {value: 89.00, currency: 'EUR'}, {eventID: 'order_1042'});
// Server (Conversions API event, abbreviated)
{ "event_name": "Purchase", "event_id": "order_1042", "event_time": 1760000000, ... }
We cover this in depth in Meta CAPI deduplication and event_id explained, and the full platform walkthrough is in Meta Conversions API for WordPress.
Why bother? What server-side can and cannot fix
Google lists three benefits of server-side tagging: page performance, privacy controls and data quality. In plain terms, fewer third-party scripts in the page, more control over what leaves your infrastructure, and a collection path you own.
What it does not do is make privacy or consent questions disappear. A server request still sends personal data to an ad platform, and consent rules apply to it. We will go through that in the privacy cluster; for the browser-side differences, start with client-side vs server-side tracking in WordPress and why your WordPress analytics data goes missing. If sGTM itself is new to you, what sGTM means is the short primer.
Option 1: Self-hosted server-side GTM on Cloud Run
This is the setup Google documents most thoroughly. You create a server container in Tag Manager, deploy Google’s tagging server image to Google Cloud Run in your own project, and point a domain at it. You then configure clients and tags in the container.
What it costs
Google’s Cloud Run setup guide says each server costs approximately $45 a month, with one vCPU and 0.5 GB of memory and always-allocated CPU. It recommends at least two instances to reduce the risk of data loss during an outage, and says autoscaling between 2 and 10 servers is expected to handle 35 to 350 requests per second, with performance varying by the number of tags. Two servers is therefore about $90 a month before a single visitor arrives, and the guide advises setting a billing alert to avoid surprises.
What it demands
- A Google Cloud project with billing, a Tag Manager server container, and DNS changes.
- A custom domain on the same origin as your site if you want the cookie benefits: Google’s custom domain guide calls same-origin serving a best practice for server-set cookies, and notes the default domain can only set JavaScript cookies.
- Someone who owns it afterwards: watching costs, updating the image, reading logs when events vanish.
What you get
Maximum flexibility and full ownership. You can build custom clients, transform payloads, route events to vendors nobody has built a template for, and keep every log in your own cloud account. For a team with DevOps capacity this is hard to beat.
Option 2: Managed sGTM hosting
Hosting companies run the tagging server for you and charge by request volume. You still work in a GTM server container, so the tag logic stays the same; what changes is that you are not deploying or scaling anything. Here is what three of them list, as of October 2026.
| Host | Free tier | Paid tiers (monthly price, included requests) |
|---|---|---|
| Stape | 10K requests | Pro $17, 500K; Business $83, 5M; Enterprise $167, 20M |
| TAGGRS | 10K requests | Basic €22, 750K; Pro €57, 3M; Ultimate €127, 10M |
| Addingwell | 100K requests | €90, 1M; €120, 5M; €210, 12M; €360, 25M (more tiers above) |
Each also has larger or custom plans we have left out. Details differ in ways that matter:
- Overage. Addingwell lists per-100K overage rates (for example €2.30 per 100K on its €90 plan) that are added to the invoice. TAGGRS says that when a limit is exceeded, data can no longer be sent to the platforms, and offers automatic upgrades. Stape’s page mentions no overage charges. Read the current terms before you pick a tier.
- Extras. Addingwell lists extra containers (€30), domains (€10) and regions (€20) as monthly add-ons. Stape’s higher tiers add things like multi-zone infrastructure and more custom domains.
- What a “request” is. TAGGRS counts every event on your site. Vendors may count differently, so a 500K tier on one is not automatically the same as 500K on another.
The honest summary: hosting removes the server work but not the container work. You still design triggers, clients and tags, and you still need to understand why a Meta tag fired twice. Our full cost breakdown of sGTM hosting vs a plugin goes tier by tier.
Option 3: A WordPress plugin or API that forwards events
The third approach skips the GTM container. A plugin on your WordPress site sends events, with an API key, to a service whose servers format them and forward them to the platforms. Traculo works this way: the WordPress plugin plus a domain API key sends events to Traculo, which forwards them to Google Analytics 4 (Measurement Protocol), Meta Conversions API, Google Ads (offline conversions), LinkedIn Conversions API, TikTok, Snapchat, Pinterest and Plausible.
What it costs and demands
Setup is installing the plugin, adding the key and switching on the platforms you use. There is no server to deploy or patch, and no container to maintain. On Traculo’s pricing, there is a free plan with 10,000 events a month, and paid plans start at $12 a month for 10K events, with every plan including unlimited domains and integrations. Other plugin-style tools price differently, so compare on events, not marketing copy.
What you give up
- Flexibility. You can send to the platforms the service supports and no others. You cannot write a custom client or run arbitrary tag logic. Traculo is not a GTM server container host and does not replace Google Tag Manager for every use.
- Your own infrastructure. The forwarding runs on the vendor’s servers. In return you get a delivery log: in Traculo, every event shows the response from each integration, with success or error status, and you can export up to 5,000 events as CSV or JSON.
- Vendor dependence. If the service changes pricing or disappears, you need a Plan B. Self-hosting does not have that risk, though it has others.
Who owns the data in each setup?
Ownership has three layers, and people tend to blur them.
- The pipeline. With Cloud Run, the pipeline sits in your cloud account and you can read every log. With hosted sGTM it sits on the host’s infrastructure, configured by you. With a plugin service it sits on the vendor’s servers, and your visibility is the delivery log they give you.
- The accounts. In all three, your GA4 property, Meta pixel and Google Ads account remain yours. The pipeline is replaceable; your ad accounts are not tied to it.
- The legal side. Whoever processes personal data on your behalf is a processor, and you need the right agreement in place. Traculo includes a built-in data processing agreement; for any host, check what they offer. A server also does not remove the need for consent where the law requires it, which we cover in the privacy series.
When sGTM is the right call
We are the plugin option, so here is the fair case for the others. Choose sGTM, self-hosted or hosted, if:
- You already run a rich GTM web container with many vendors and want to move them behind a server container without rewriting them.
- You need custom clients, data transformations, enrichment or routing to vendors that a plugin service does not support.
- You must keep processing in your own cloud account, or you want your own logs and infrastructure for compliance or policy reasons.
- You have people who can own it. A tagging server that nobody watches is worse than none, because it silently drops conversions.
Self-hosted wins on control. Hosted wins on speed to a working container with no cloud work. Either beats a plugin once your needs outgrow a fixed list of destinations.
When a plugin is enough for WordPress
For a lot of WordPress sites the real requirement is narrow: tell GA4, Meta, Google Ads and maybe LinkedIn or TikTok that a purchase or lead happened, with decent matching data and without duplicates. If that is you, then:
- You do not need a container to do it, and a $90-a-month floor for a site with a few hundred conversions would be hard to justify.
- Maintenance is close to zero, which matters for agencies running many small sites.
- The delivery log answers the question that causes the most support tickets: did the platform actually accept the event?
E-commerce is the common case. If you run a shop, read WooCommerce server-side tracking: purchases, refunds and subscriptions, and if you manage client sites, client reporting for WordPress agencies covers the reporting side of the same setup.
How to check that any setup works
Whichever route you take, test it the same way.
- Fire one real test conversion and find it in the platform’s own diagnostics (GA4 realtime or DebugView, Meta Events Manager test events), not just in your tool.
-
Confirm deduplication. Browser and server events should share an
event_idand event name. Check the platform shows one event, not two. - Read the response. Success from your own server is not success from the platform. A delivery log with the platform’s response, whether in sGTM logs or a plugin’s event detail, shows the difference.
- Compare totals after a week. Expect differences between your shop, GA4 and the ad platforms because of attribution windows, not just tracking. If the gap is large, start with why ad platforms report more conversions than WooCommerce.
Frequently asked questions
Is server-side tracking possible without Google Tag Manager?
Yes. GTM is one way to build the pipeline, not the only one. A plugin or API service can capture events on WordPress and forward them to GA4, Meta and other platforms from its servers. You trade GTM’s flexibility for far less setup.
How much does server-side GTM cost?
Self-hosted on Cloud Run, Google’s guide says about $45 a month per server and recommends at least two. Hosted plans in October 2026 range from free tiers to a few hundred dollars or euros a month depending on request volume, as in the table above.
Does server-side tracking replace the browser pixel?
Usually not. Google describes the GA4 Measurement Protocol as an addition to tagging, and Meta’s deduplication is built around the browser and server both sending the same event. The server path adds a second, more reliable route rather than switching off the first.
Can I switch from one approach to another later?
Yes, but plan for a short overlap. Run the new path alongside the old one, check that event IDs deduplicate, and then turn the old one off. Your ad accounts stay the same either way.
Do I still need a cookie banner?
Server-side collection does not change whether consent is required. That depends on what you collect and where. We cover this in our privacy series; do not assume a server path removes the obligation.
Related reading
- What server-side tracking really costs: sGTM hosting vs a plugin
- WooCommerce server-side tracking: purchases, refunds, subscriptions
- Client reporting for WordPress agencies
- Meta CAPI deduplication, event_id explained
- Meta Conversions API for WordPress: the complete guide
- GA4 server-side tracking for WordPress
- Server-side tracking for WordPress: a beginner’s guide
- What is server-side GTM (sGTM meaning)
- Client-side vs server-side tracking in WordPress
- Why is your WordPress analytics data missing?
Want to try the plugin route? See how Traculo’s server-side event tracking works, or start on the free plan with 10,000 events a month.