In this guide
- Server-to-server (S2S) events come from a backend or partner system, not a browser. They arrive at your tagging server, which forwards them.
- They need the identifiers saved earlier: click IDs, client IDs and hashed customer data.
- Secure them with secrets or signatures and deduplicate with IDs.
Tracking people think of the browser. Many valuable events never happen there: a payment confirmation, a refund, a CRM stage, a phone sale. They happen on servers, and server-to-server tracking is how they reach analytics and ad platforms. This page explains how it differs from the browser route, what you need and how to do it with a server container. See webhook servers, Stripe purchase tracking and offline conversions.
Two routes into a server container
| Client-to-server | Server-to-server | |
|---|---|---|
| Sender | The visitor's browser | A backend, payment provider, CRM or partner |
| Identifiers | Cookies and click IDs available | Must be passed in the request, saved earlier |
| Blocked by browsers? | Can be | No |
| Consent | Collected in the browser | Must be recorded and passed with the data |
| Examples | Page views, add to cart | Refunds, recurring payments, CRM stages |
Connected in minutes
Add your domain, install the pixel, connect your ad platforms and watch the first events land.
What an S2S event needs
- An event name and time.
- A unique ID for deduplication.
- Identifiers: GA4 client ID, click IDs,
fbpandfbc, hashed e-mail and phone, a user ID. - Value and currency where relevant.
- A consent record where required.
How to receive it
Choose a path and method
POST with JSON to a path on your tagging subdomain.
Add a client in the container
To claim the path and build event data.
Verify the sender
Shared secret or signature.
Map fields
To the standard event names.
Send to vendors
With the right tags, such as Meta, Google Ads and GA4 through the Measurement Protocol.
Deduplicate
With the browser event if there is one.
Watch events arrive, live
A sample feed. In Open Tracked you see the same stream for your own store.
GA4 and the Measurement Protocol
For GA4, S2S events use the Measurement Protocol with a measurement ID, an API secret and the client ID from the visitor's session. Events sent without a client ID start new sessions with no source, which shows up as unassigned traffic. See unassigned traffic and lead quality in GA4.
Security
- An obscure path and a verified secret or signature.
- Reject unknown senders.
- Log requests and review failures.
- Keep tokens out of code repositories.
Where Open Tracked helps
Your tagging server on Open Tracked receives S2S requests on your own subdomain, from the free plan. Block Request by IP and Request Delay (Business) help control abusive senders and timing, and the Data Store and Enricher can add stored identifiers to events that arrive without them.
A realistic example
A subscription business sees good purchase tracking for the first payment and nothing for renewals, because renewals happen on the payment provider's servers with no browser. It adds a webhook route for invoice.paid to its tagging server. The container reads the stored click and customer identifiers from the subscription metadata, sends a purchase event with the renewal amount to GA4 through the Measurement Protocol and sends hashed customer data to Meta with a stable event ID. Revenue by source in analytics now includes renewals, which shows that the cheapest channel for first payments is not the best for lifetime revenue. Without server-to-server tracking, that picture would have stayed invisible.
Runs on your domain, anywhere
Your tracking runs on your own domain, so a visit from any country is handled the same way.
Frequently asked questions
What is server-to-server tracking?
Sending events from a backend or partner system to your tagging server, with no browser involved.
What do I need for S2S events?
An event name, time, unique ID, identifiers saved earlier and, where required, a consent record.
How do I secure S2S requests?
Verify a secret or signature, use an obscure path and log requests.
Why do S2S events show as unassigned in GA4?
They were sent without the browser's client ID and session data.
Can a server container receive S2S events?
Yes, through a client that claims the path.
Do I need spreadsheets to read my results?
No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.
Is Open Tracked different from Open Track or Open Space Track?
No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source
Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.
The Open Tracked team
We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?
Comments
Loading comments...
