Attribution

Server-side vs client-side tracking: what each one sees

Client-side tags run in the browser and miss what they cannot load. Server events come from your server. What each sees, what it costs, and when to use both.

On this page

Client-side tracking means a script in the visitor's browser sends the data: a pixel, a GA4 tag, an analytics script. Server-side tracking means your own server, or a server you control, sends it. The difference sounds technical. In practice it decides which sales your reports and your ad platforms ever hear about.

What client-side tracking sees, and misses

A browser tag sees everything that happens in the browser while it runs: pages, clicks, scroll, time on page, form starts. That is a lot, and no server can see most of it.

It misses whatever it cannot run on:

  • Blocked tags. Ad blockers and privacy browsers block many requests to well-known ad and analytics domains.
  • Declined consent. A visitor who says no should not be tracked by ad pixels, and a correct setup sends nothing.
  • Pages without the tag. Checkout pages on another domain, payment pages, a thank-you page that never loads because the buyer closed the tab after paying.
  • Events that do not happen in a browser. A refund, a renewal, a phone order, a deal marked won in a CRM, a subscription that converts from a free trial three weeks later.

And it is easy to fake or duplicate: a reloaded thank-you page fires "purchase" again.

What server-side tracking sees

Server-side events come from the system that knows the truth: your store, your payment processor, your CRM. When an order is paid, the server sends one event. It is not blocked by ad blockers, it does not depend on a page loading, and it can include things a browser never knows, like profit, refunds and subscription renewals.

What it cannot see on its own is the browsing behind the sale: which ad was clicked, which pages were read. That is why server events carry ids from the browser: the click id, the analytics visitor id, or a hashed email that the platform can match.

Client-side only

BrowserPixel or tag runs
Blocked or cappedAd blocker, consent, Safari limits
Ad platformSees part of the sales

With a server event

Your serverOrder is paid
Server eventSame event id as the browser
Ad platformGets every paid order once
Browser tags miss sales they cannot run on. A server event sent when the order is paid fills the gap, and a shared event id stops it counting twice.

The two kinds of "server-side"

The term covers two different setups, and vendors use it for both.

1. A server-side tag manager or proxy. The browser still runs a tag, but it sends data to a server on your own domain, such as data.yourshop.com, which forwards it to Google, Meta and others. Google Tag Manager's server containers work this way. It helps with blocking (requests go to your domain), lets you remove fields before they leave, and can set cookies from your server. But the data still starts in the browser, so a tag that never ran still sends nothing.

2. Server-to-server events. Your backend sends events directly to a platform's API when something happens: Meta's Conversions API, Google Ads offline conversion uploads, TikTok's Events API, GA4's Measurement Protocol. These see orders the browser never reported. Google is clear that the GA4 Measurement Protocol is meant to supplement tagging, not replace it (Google).

For accurate sales, the second kind is what matters. The first kind mostly improves how much browsing data gets through.

Why ad platforms want server events

Ad platforms optimize delivery on the conversions you report. If a large share of purchases never reaches them, they learn from a biased sample: the buyers who use browsers without blockers and accept every banner. Sending every paid order from your server, with the click id and hashed customer details where you are allowed to, gives the platform a fuller and less biased picture.

The catch is double counting. If the pixel and the server both report the same purchase, the platform must know they are one. Meta merges a browser event and a server event that share the same event name and event_id within 48 hours (Meta). See the Conversions API guide.

Moving a request to a server does not change what the law asks. If an event uses data that needs consent, such as a cookie id or a click id stored on the device, it needs consent whether the browser or the server sends it on. A server setup makes it easier to respect consent precisely: you can drop fields, hash emails and skip platforms for visitors who declined. It does not make the question go away. See cookieless analytics and GDPR.

What it costs

Client-side onlyPlus a server-side proxyPlus server-to-server events
SetupPaste tagsA server, a subdomain, tag changesCode or a connector on your store, CRM or payment system
Running costNoneHosting the serverLittle, often none with a native connector
Fixes blocked browsing dataNoPartlyNo
Fixes missing salesNoNoYes
Needs a developerRarelyUsuallySometimes, unless a connector exists

For most small stores and service businesses the right order is: get the browser tag right, then add server events for the sales and leads that matter, through a native integration if one exists. A full server-side tag manager comes last, if ever.

Common questions

Is server-side tracking more accurate?

For sales and leads, yes, because it reports from the system that records them. For browsing behavior, no: a server cannot see clicks and scrolls unless a browser tag sends them.

Does server-side tracking get around ad blockers?

Server-to-server events are not affected by ad blockers, because the browser is not involved. A server-side proxy on your own domain is blocked less often than third-party tags, but it can still be blocked, and it should still respect consent.

Do I need server-side tracking for Meta ads?

You do not need it, but Meta's pixel alone misses purchases from blocked or declined browsers. The Conversions API, with deduplication, recovers part of them. Many store platforms offer it as a built-in integration.

What is the difference between server-side tagging and the Conversions API?

Server-side tagging forwards browser data through your server. The Conversions API is one destination that accepts server events, from a server-side tag manager or straight from your backend.

Sources

Spotted something wrong or out of date? Email hello@sporetag.com and we will fix it.