The leak your pixel report does not show you
Google Analytics and your Meta pixel both report the traffic they see. They do not report what they miss. And what they miss is substantial.
Stack those three together and it is not hard to reach a 30 to 40% gap between your real audience and the one your remarketing campaigns can actually reach. For B2B accounts and premium ecommerce products with longer consideration cycles, the gap is typically at the higher end of that range.
The three things draining your remarketing lists
Ad blockers removing your pixel entirely
uBlock Origin, Brave browser, Privacy Badger, and dozens of others block the GTM container script before it ever loads. When the container does not load, no page view fires, no audience membership updates, and the visitor is completely invisible to every platform. The uncomfortable fact: ad blocker adoption is highest among tech workers, developers, and senior professionals — exactly the demographic most B2B companies are targeting.
Safari ITP expiring your cookies in 7 days
Safari's Intelligent Tracking Prevention, introduced in 2017 and tightened every year since, limits first-party cookies set via JavaScript to a 7-day lifespan. Anyone who visits your site on Safari and returns after a week is a stranger to your remarketing pixel. They are back on your site. They remember you. Your ad platform does not know them. Apple holds roughly 55% of mobile browser market share in most Western markets.
Cross-device gaps breaking the identity thread
A prospect researches on their work laptop, reads a case study on their phone during lunch, and then visits your pricing page from their home MacBook that evening. To a client-side pixel, those are three different people. None of them is connected. None of them gets added to your "pricing page visitor" remarketing list because no single device completed the full journey in one session chain. The person is interested. Your platform does not know it.
What server-side tracking does differently
Server-side tracking moves the event collection from the visitor's browser to your own server. Instead of a JavaScript tag running in the browser and trying to reach Google's or Meta's servers, your server collects the event and sends it directly. The browser is only responsible for triggering the initial event — everything after that happens server-to-server.
Here is how that changes each of the three leak points:
| Problem | Client-Side | Server-Side |
|---|---|---|
| Ad blockers | Blocked. Event never fires. | Bypassed. Server calls your domain, not Google's. |
| Safari ITP (7-day cookie) | Cookie deleted after 7 days. | First-party server cookie lasts 1–2 years. |
| Cross-device identity | Each device is a stranger. | User ID connects all devices after login. |
| Data enrichment | Only what the browser knows. | Append CRM data, LTV, segment info to every event. |
| Audience based on CRM stage | Impossible. Event is not on the website. | CRM webhook fires event directly to the platform. |
What your remarketing lists actually look like
Here is a realistic example. A B2B SaaS company with 10,000 monthly website visitors looks at who is actually in their Google Ads remarketing list for "all site visitors last 30 days":
That 4,400-person gap is not just a tracking number. It is 4,400 people who saw your product, considered it, and are now unreachable by your remarketing campaigns. They are seeing your competitors' remarketing ads. They are not seeing yours.
The B2B bonus: audiences that do not exist at all
For ecommerce, server-side tracking is mostly about recovering the audience you already had. For B2B, it also creates entirely new audience segments that are impossible to build with client-side tracking alone.
Client-side only
- Visited pricing page (60-70% of actual visitors)
- Started trial (60-70% of actual trials)
- Visited blog 3+ times (60-70% of actual visits)
- Viewed demo page
With server-side
- Visited pricing page (94%+ of actual visitors)
- Started trial (94%+ of actual trials)
- Visited blog 3+ times (94%+ of actual visits)
- Viewed demo page
- Attended demo (from CRM, no website visit needed)
- Reached SQL stage in pipeline
- In trial for 14+ days without upgrading
- Deal in negotiation stage
- Churned customer (re-engagement)
The starred segments above are the highest-intent audiences in any B2B ad account. A person who attended your demo is not the same as a person who visited your homepage. You should be serving them completely different ads. Without server-side, those segments are empty.
The math on what this means for your ad spend
Take a remarketing budget of $3,000 per month. With a 60% audience capture rate, that $3,000 is reaching 60% of the people it should reach. The effective cost to reach your full potential audience is $5,000 because you are doing the same work at reduced efficiency.
The actual number: Server-side tracking typically costs $25 to $50 per month to run (hosting), plus a one-time developer setup of 2 to 4 days. If your remarketing budget is $2,000 per month or more, recovering 30 to 40% of a lost audience pays back the setup cost in the first month.
The other way to think about it: remarketing converts at higher rates than prospecting because these people already know you. If your prospecting CPL is $200 and your remarketing CPL is $80, every additional person you add to your remarketing list is worth the difference in efficiency. 4,400 additional people at $120 in efficiency difference is a significant number.
Who should prioritize this and who can wait
Prioritize server-side if your remarketing spend is $1,500 per month or more, you target a technical or high-income audience (higher ad blocker rates), your buying cycle exceeds 30 days, or you are a B2B company using a CRM with deal stages.
You can wait if your total ad spend is under $3,000 per month, your product sells in a single session with no comparison shopping, or you are on Shopify running only Meta and Google with native integrations — Shopify already handles much of this at the platform level.
Quick check before you start: Install uBlock Origin in Chrome and visit your own site. Open GA4 real-time and check if your session appears. If it does not, that is exactly what every ad-blocker user experiences on your site today. That session gap is the audience you are not reaching.
What to do next
The setup involves three things: a server-side GTM container hosted on your domain, persistent first-party cookies set from that server, and (for B2B) CRM webhooks sending stage-change events to your container. None of it is weekend-project territory, but it is also not a multi-month engagement. A backend developer and a GTM specialist can have this running in a week.
The practical starting point: pick your one most valuable remarketing audience — usually "trial started" or "visited pricing page in last 14 days" — and migrate that single event to server-side first. Measure the list size difference over 30 days. The gap between what you had before and what you have after is the number you use to justify the broader setup.
If you want to see how this works for your specific account, reach out and we can look at the numbers together.