How to set up server-side conversion tracking
Symptom: Client-side tracking is losing conversions to ad-blockers and privacy browsers
Client-side tracking silently loses a fifth or more of conversions to ad-blockers and privacy browsers, and every loss starves bidding. This workflow deploys a server-side GTM container on your own subdomain, moves conversions server-side, wires deduplication, and validates that Google Ads and Meta receive clean events. Plan a day or two and expect to recover measurable conversion signal.
A 47-point written audit of your Google, Meta or Shopping account, back in five business days.
Get your auditBook a call- Google Tag Manager access with edit rights
- A Google Cloud project with billing enabled, or another host for the server container
- Access to add a subdomain and DNS record on your domain
- Developer support for data-layer and validation work
- 1
Provision the server container
Create a server-side container in Google Tag Manager and deploy it to Cloud Run or your chosen host. Map it to a first-party subdomain of your site, such as a metrics subdomain, so requests are first-party rather than third-party.
Using your own subdomain is what gives the setup its durability, because first-party requests survive the browser restrictions that block third-party scripts.
- 2
Route the web container through the server
Point your existing web GTM container to send events to the server container's URL rather than directly to each vendor. The browser now makes one first-party request to your endpoint, and the server decides what to forward.
Confirm events arrive in the server container's preview mode before going further.
- 3
Configure the conversion tags server-side
In the server container, add the Google Ads conversion tag and, for Meta, the Conversions API tag. Forward purchase and lead events with their values, currency, and identifiers.
Ensure each event carries a stable event ID that also exists on the browser side, because that ID is what enables deduplication.
- 4
Wire deduplication
For platforms receiving both a browser event and a server event, use the shared event ID so they merge into one conversion. Without this, you double-count, and bidding learns from inflated numbers.
Verify in each platform's event tools that duplicates are being collapsed correctly.
- 5
Add Enhanced Conversions and first-party parameters
Pass hashed first-party data, email and phone where consented, from the server so Enhanced Conversions and Meta advanced matching can improve attribution. Respect Consent Mode signals so declined users are handled correctly.
This is where server-side tracking recovers the most additional signal beyond simply surviving blockers.
- 6
Validate and reconcile
Test the full path with real transactions, confirm conversions appear with correct values in Google Ads and Meta, and reconcile counts against your backend or GA4 over a week.
Only once the numbers reconcile should you adjust bidding, because bidding is only as trustworthy as the signal underneath it.
- Deploying the server container on a vendor domain instead of your own subdomain, losing the first-party benefit
- Forgetting the shared event ID, which causes double-counting between browser and server
- Ignoring Consent Mode, so declined users are tracked when they should not be
- Changing bid strategies the same day tracking changes, making it impossible to isolate the effect
- Not reconciling against a source of truth before trusting the new numbers
Common questions
Want this checked on your own account?
A 47-point written audit of your Google, Meta, or Shopping account. Five business days, no sales call.

