Server-side tracking
Server-side tracking sends conversion events from your server to ad and analytics platforms, instead of relying only on scripts in the visitor's browser.
What is server-side tracking?
Server-side tracking means a conversion event is sent to a platform like Meta, Google Ads, GA4 or TikTok from a server you control, rather than only from a pixel running in the visitor's browser. The browser may still record the visit, but the event that matters (a purchase, a booking, a signup) travels server to server.
Most platforms offer a dedicated endpoint for this: Meta has the Conversions API, Google Ads accepts offline conversion uploads, GA4 has the Measurement Protocol, and TikTok has the Events API.
Why browser-only tracking loses data
A browser pixel only reports what it can see. Ad blockers can stop the script from loading, browser privacy features can shorten cookie lifetimes, and the visitor can close the tab before the request finishes. Some conversions never happen in the browser at all: a Stripe payment confirmed later, a Calendly booking, or a deal closed in your CRM.
A server already knows about these events because it processed them. Sending them directly avoids the browser as a point of failure.
What server-side tracking needs to work well
A server event is only useful if the platform can tie it back to an ad click or a person. That means capturing click ids (such as gclid, fbc or ttclid) when the visitor lands, and sending hashed identifiers like email and phone with the event.
If you run a browser pixel and a server event for the same conversion, both need to carry the same event id so the platform can count it once. Without that, server-side tracking can inflate your numbers instead of fixing them.
How TracerKit handles it
TracerKit forwards conversions server-side to Meta Conversions API, Google Ads offline conversion upload, GA4 Measurement Protocol and TikTok Events API. It captures click ids on the landing hit, hashes email and phone with SHA-256 before storage, and shares an event id with the browser pixel so the pair dedupes. Conversions can also arrive by webhook from Calendly, Typeform, Stripe or any tool that can POST JSON.
See how TracerKit handles this: Server-side forwarding
Take a look →