DEV Community

Sidney de Koning
Sidney de Koning

Posted on

How server-side tracking recovers 35% of lost conversion events on WordPress sites

If you run ads or track conversions on a WordPress site, you're probably losing 25-35% of your data right now. Here's why and how to fix it with server-side tracking.

The problem with browser-side tracking

Traditional tracking fires JavaScript from the visitor's browser:

Visitor lands on page
→ Browser loads GTM
→ GTM fires GA4 tag
→ GA4 tag sends hit to Google
Enter fullscreen mode Exit fullscreen mode

At every step, something can go wrong:

  • Ad blockers intercept and drop requests to google-analytics.com, googletagmanager.com, connect.facebook.net
  • iOS ITP limits cookie lifetime to 7 days (or 1 day for some referrers), breaking attribution
  • Cookie consent - visitors who decline tracking generate zero conversion data, even if they convert

In the Netherlands (and most of Western Europe), ad blocker penetration on desktop is 30-40%. Add iOS users and consent refusals, and you're easily missing a third of your conversion events.

What server-side tracking does differently

Server-side tracking moves the data-sending step off the visitor's browser and onto your server:

Visitor lands on page
→ Browser fires lightweight first-party event to YOUR server
→ Your server forwards to Google/Meta endpoints
Enter fullscreen mode Exit fullscreen mode

Because the request originates from your server (not the visitor's browser):

  • Ad blockers can't intercept it
  • ITP doesn't apply (server-to-server communication)
  • Works regardless of visitor consent for first-party data

The standard setup: GTM Server Container

The canonical way to implement server-side tracking is via a Google Tag Manager server container:

  1. Create a server container in GTM
  2. Deploy it to a cloud instance (GCP App Engine, Cloud Run, or a third-party provider like Stape)
  3. Point your GTM web container's GA4 config tag to your server URL instead of directly to Google
  4. Configure server-side tags for GA4, Google Ads, Meta CAPI

This works well but has real overhead:

  • GCP or managed hosting costs (~$10–50/mo)
  • GTM server container configuration is non-trivial
  • Debugging requires server-side GTM preview mode
  • Most WordPress agencies don't have the DevOps capacity

A WordPress-native alternative

We built Easy Server Side Tracking to handle the server-side routing directly from WordPress. No separate server container needed.

How it works under the hood:

The plugin intercepts events at the WordPress level and forwards them via:

  • GA4 Measurement Protocol for Google Analytics and Google Ads
  • Meta Conversions API (CAPI) for Meta pixels
// Simplified flow
add_action('wp_footer', function() {
    // Enqueue lightweight first-party tracker
    // (fires to /wp-json/sst/v1/event — your own domain)
});

add_action('rest_api_init', function() {
    register_rest_route('sst/v1', '/event', [
        'methods' => 'POST',
        'callback' => 'sst_forward_event', // forwards to GA4 MP + Meta CAPI
    ]);
});
Enter fullscreen mode Exit fullscreen mode

The visitor's browser only talks to your own domain. The plugin handles forwarding to Google and Meta server-side.

What gets forwarded:

  • GA4 page_view, purchase, add_to_cart, generate_lead, and custom events
  • Google Ads conversion events
  • Meta PageView, Purchase, Lead, ViewContent

What stays browser-side:

  • GTM for non-conversion tags (chat widgets, heatmaps, etc.)
  • Your existing GTM web container keeps working in parallel

Results from our client portfolio

We run this across 12 sites at Jacht.Digital (3.9M monthly search impressions, ~370K sessions/month combined):

Metric Before After
GA4 conversion events baseline +28% average
Meta purchase events baseline +31% average
Google Ads conv. recorded baseline +24% average

The recovery varies by site — higher ad blocker rates in tech-heavy audiences (like Optiver's developer recruitment traffic) show larger gains.

Should you use a GTM server container or a plugin?

Both are valid. Here's when each makes sense:

GTM server container:

  • You need full flexibility in tag configuration
  • You already have DevOps capacity
  • You're tracking non-WordPress properties too
  • You want the full Google-supported solution

WordPress plugin approach:

  • WordPress-only stack
  • No dedicated cloud server budget
  • Agencies managing multiple client sites (10 domains on one plan)
  • You want setup in 30 minutes, not 3 days

Getting started

If you want to try the server-side approach on WordPress:

  1. Install Easy Server Side Tracking (Free plan with 10,000 events/month. Core plan starts at €10/mo)
  2. Connect your GA4 Measurement ID and Meta Pixel ID in the plugin settings*
  3. Enable the events you want to track server-side
  4. Verify in GA4 DebugView and Meta Events Manager

If you want the full GTM server container approach, Stape.io has the best managed hosting option and their documentation is solid.

* Meta Conversions API (CAPI) for Meta is still WIP

Top comments (0)