In this guide
- A server container does one job in a fixed order: a client claims the incoming request, turns it into event data, then triggers decide which tags fire.
- Transformations sit between the client and the tags. They can allow, exclude or add parameters before any tag sees the event.
- Variables are how tags read the event. Most broken server containers are a variable pointing at a field that is not in the event.
A web Google Tag Manager container runs inside the visitor's browser. A server container runs on a server you control and receives HTTP requests. The words are mostly the same (tags, triggers, variables) but there is a new layer in front of them, and that layer is where most people get lost. This page explains every part in the order a request meets it. If you are new to the whole idea, read what server-side tracking is first, then come back.
The path of one request
A visitor opens your site. The page sends a request to your tagging address, for example track.yourstore.com/g/collect. From that moment, the server container does the following, always in this order:
A client claims the request
Each client looks at the incoming request and decides whether it recognises the format. The first one that does "claims" it. No other client sees it.
The client builds event data
The client reads the request and produces a clean event: a name such as purchase and a set of parameters such as value, currency and client_id.
Transformations run
If you set up transformations, they now change the event data: they remove fields, allow only some fields, or add new ones.
Triggers are checked
Each trigger looks at the event data. If its conditions match, every tag attached to it is queued.
Tags run
Each tag reads the event with variables and sends its own request to a vendor, for example the Meta Conversions API or Google Ads.
The client answers the browser
When the tags are done, the client sends the HTTP response, which may also set cookies.
Check your tracking in one pass
This is an example. Run the check on your own site to see where yours stands.
Clients
A client is a translator. The browser speaks one of several formats, and the client is the part that understands that format. The ones you meet most:
- The GA4 client understands requests from the Google tag and GA4. It also serves the Google tag script itself from your domain and sets the first-party ID cookie.
- The Measurement Protocol client understands server-to-server calls, for example from your shop backend.
- A custom client understands anything else, for example a webhook from a payment provider. Custom clients are small JavaScript templates.
If no client claims a request, the server answers with an error and nothing else happens. This is why a wrong path or a missing client shows up as "request received, nothing fired". Compare it with a server container that is not receiving requests.
Event data
Event data is the name for the cleaned-up event that sits in the middle of the container. Tags and triggers never read the raw HTTP request. They read event data. A GA4 purchase has fields such as transaction_id, value, currency and items. Fields you set in the browser tag arrive here as long as the client keeps them.
Raw events in. Clean events out.
Open Tracked collects each event on your own domain, removes the noise and sends what is left to Meta, Google Ads, TikTok.
Transformations
Transformations were added to server containers later than the rest, and many guides skip them. They change event data before triggers and tags see it. There are three kinds:
Allow parameters
Keep only the fields you list. Everything else is dropped. Useful when a tag should never see, say, an e-mail address.
Exclude parameters
Remove the fields you list and keep the rest. Useful for one sensitive field.
Augment event
Add or change a field, for example add a hashed value, set the country or fix a currency code. See transformations in server GTM.
Each transformation has a match condition (which events it applies to) and a scope (which clients or tags it applies to). A transformation scoped to the Meta tag changes what Meta receives and leaves the GA4 tag alone.
Triggers
A trigger is a rule: "when the event name equals purchase", or "when the event name equals page_view and the hostname contains shop.". A trigger does nothing alone. It only matters because tags are attached to it. One trigger can fire many tags, and one tag can have several triggers.
Tags
A tag is the part that sends data out. Tags in a server container call another company's server instead of loading a script. Typical tags: GA4, the Meta Conversions API, the Google Ads conversion tag, TikTok Events API, a Pinterest or Snapchat tag, a webhook to your CRM. Most tags come from the Tag Manager template gallery, so you fill in fields rather than write code.
Variables
A variable is a named value a tag or trigger can read. The server container offers built-in ones such as event name and client ID, and you can add your own:
- Event data variables read a field from the event, for example
value. - Request header and cookie value variables read the raw request, for example the user agent or the
_fbpcookie. - Constant and lookup table variables hold fixed values and mappings, for example your pixel ID.
- Custom variable templates do small jobs such as hashing an e-mail address, formatting a phone number or reading from a database.
Where Open Tracked fits
Open Tracked hosts the container, so the tagging server, the domain and the Google Cloud side are looked after for you. The Setup Wizard downloads ready container files, with the clients, tags, triggers and variables already in place, and the Enrich step adds the variables that read Visitor Location, Device Info, User ID and the Data Store. You import them into your server container instead of building each part by hand. See the power-ups guide for what each of them adds.
A debugging order that works
- Open Preview in the server container and send one event from your site.
- Was a request listed at all? If not, the problem is the domain, the path or the web container tag, not the server container.
- Was the request claimed by the client you expected? If not, check client priority and the path.
- Open the event data. Is the field you need there? If not, fix the web tag or a transformation that removed it.
- Did the trigger match? Look at the trigger tab for the event.
- Did the tag fire, and what did it send? Open the tag, then the outgoing request, and read the response from the vendor.
Works with your stack
Grab a logo and throw it. These are the tools Open Tracked already talks to.

Frequently asked questions
What is the difference between a client and a tag?
A client receives requests from your site and builds event data. A tag sends event data out to another company. Clients are the way in, tags are the way out.
Do I need transformations?
No. Many containers work without them. They are useful when you want to keep a field away from one vendor or add a field to every event without editing each tag.
Can two clients claim the same request?
No. The first client, by priority, that recognises the request claims it and the others never see it. Give custom clients a higher priority than the default ones if they overlap.
Why do I see a request in Preview but no tag fires?
The client claimed it and built event data, but no trigger matched. Check the event name and the trigger conditions.
Are variables the same as in a web container?
The idea is the same, but the types are different. Server variables read the event, the request and the response instead of the page.
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...
