Opens in a new tab
Home/Blog/Server-side tracking without GTM: the WordPress plugin approach

Server-side tracking without GTM: the WordPress plugin approach

Server-Side Tracking ExplainedPhillip StemannOctober 5, 2026

Last updated: October 12, 2026

Title card: Server-side tracking without GTM, the WordPress plugin approach, on a dark slate background
In this article
Key takeaways
  • 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.

  1. 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.
  2. 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.
  3. Identifiers that join the dots. A server call with no context is an orphan. GA4 needs a client_id to link a server event to the visit it belongs to, and Meta needs matching parameters such as fbp or an external_id. Without them, you get a conversion, but not the story of how it happened.
  4. 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.

Diagram of three server-side tracking setups showing which box you operate: your own Cloud Run server, a host's tagging server, or a plugin vendor's servers.
Who does what in each setup. The outlined box is the one somebody has to run.

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.

Bar chart of monthly list prices: two Cloud Run servers about 90 dollars, Stape 17 to 167 dollars, TAGGRS 22 to 127 euros, Addingwell 90 to 360 euros.
Monthly list prices as of October 2026. Dollars and euros are not converted. Sources: Google, Stape, TAGGRS and Addingwell pages.

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.
Table comparing self-hosted sGTM, hosted sGTM and a plugin or API on setup effort, maintenance, cost, ownership, limits and best fit.
The three options side by side. Pricing and limits as of October 2026.

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.

Decision tree with three questions leading to a plugin or API approach, hosted sGTM, or self-hosted sGTM on Cloud Run.
A three-question decision guide. Thresholds are judgement calls, not rules.

How to check that any setup works

Whichever route you take, test it the same way.

  1. 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.
  2. Confirm deduplication. Browser and server events should share an event_id and event name. Check the platform shows one event, not two.
  3. 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.
  4. 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

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.

ShareLinkedInXEmail

About the author

Track what matters, without the guesswork

Traculo gives WordPress sites analytics, funnels and server-side event forwarding in one dashboard. Start on the free plan with 10,000 events a month.

Try Traculo free

Related articles

Title card reading GCLID, GBRAID and WBRAID: what they are and when each appears, on a dark slate background with an orange glow

GCLID, GBRAID and WBRAID: what they are and when each appears

What Google's click IDs are, when gclid, gbraid and wbraid appear, the upload rules, how WordPress loses them and how to capture them reliably.

Read more
Title card reading Google Ads offline conversions for WordPress leads on a dark slate background with an orange glow

Google Ads offline conversions for WordPress leads

Capture GCLIDs on WordPress, store them with each lead and upload qualified leads to Google Ads. Formats, limits, hashing and common errors explained.

Read more
Title card reading GA4 Measurement Protocol limits: the cheat sheet, on a dark slate background with an orange glow
Data Accuracy & AttributionOctober 19, 2026

GA4 Measurement Protocol limits: the cheat sheet

Every GA4 Measurement Protocol limit on one page: 25 events, 130 kB, 72 hours, reserved names, sessions, consent, validation and how to debug missing events.

Read more