TSTrackStack
HomeDocsPricingBlogChangelogSign inGet started
Back to blog
EngineeringFebruary 18, 2026·4 min read·TrackStack Team

Why client-side pixels miss conversions

Ad blockers, ITP, consent banners, and SPA routing gaps silently drop browser-side events. Here is the full failure stack — and why server-side delivery is no longer optional.

  • pixels
  • ITP
  • consent
  • SPA

On this page

  1. The failure stack
  2. Consent and SPA pitfalls
  3. The first-party proxy
  4. Keep the pixel, add the server path
  5. Build vs buy the edge layer

Problem: Ad spend is up but reported ROAS is down. Stripe shows more completed checkouts than Meta and Google attribute. The marketing team insists the pixel is installed correctly — and they are right. It is still losing data.

The failure stack

Client-side tracking fails for multiple independent reasons: ad blockers stop requests to tracker domains, Safari ITP caps cookie lifetime, iOS ATT limits app-to-web attribution, and consent frameworks block firing until users accept marketing cookies.

Any one of these reduces signal. Together they create systematic undercount that varies by audience — especially technical and B2B traffic.

This article covers the full stack. For blocker-specific mechanics, see Why ad blockers break third-party pixels.

Consent and SPA pitfalls

Consent Mode and CMP banners delay or suppress marketing tags until users opt in. Server-side delivery still requires lawful basis for hashed PII — see Google Consent Mode before shipping.

Next.js and other SPAs often fire pageviews before navigation settles, or miss route-change events entirely when pixels only hook load. Colocate conversion events with business logic instead.

trackstack.capture("Purchase", {
  email: customer.email,
  value: 89.0,
  currency: "USD",
  transactionId: order.id,
  eventId: `purchase_${order.id}`,
});

The first-party proxy

Server-side tracking via a first-party endpoint fixes the delivery path. Your app sends events to your edge domain instead of facebook.net. Block lists and ITP treat first-party requests differently than third-party beacons.

The edge worker forwards to Meta CAPI, Google, or TikTok with hashed user data and click IDs from the client payload.

Keep the pixel, add the server path

Removing the pixel entirely loses click ID capture in the browser. The recommended pattern is dual delivery with shared eventId deduplication.

Meta Event Match Quality improves when both paths are active with consistent identifiers.

Build vs buy the edge layer

Building a reliable proxy requires per-platform hashing, retries, DLQ, credential rotation, and API versioning. Teams that need delivery logs today use an edge SDK rather than bespoke workers per platform.

Start with quickstart, verify in Logs, then expand destinations in Configure.

Key takeaways

  • Pixels fail from blockers, ITP, consent, and SPA issues — not just misconfiguration.
  • First-party edge routing restores delivery without abandoning browser click ID capture.
  • Run browser + server with shared event IDs; deduplication prevents double-counting.

Sources

Official documentation and references cited in this article.

  • WebKit — Intelligent Tracking Prevention
  • Google — Consent mode
  • Meta — Event Match Quality
  • Meta — Deduplicate pixel and server events

More in Engineering

Engineering4 min read

First-party conversion tracking vs third-party pixels

Browser pixels and server-side CAPI solve different problems. Here is when to use each, how they complement each other, and what breaks when you rely on scripts alone.

Read post
Engineering4 min read

Event deduplication between client and server

Sending the same conversion from browser and server without a shared event ID double-counts in ad platforms. Here is how dedup works at Meta, Google, and TikTok — and how to implement it in your app.

Read post
Engineering4 min read

Why ad blockers break third-party pixels

uBlock Origin and filter lists like EasyList block requests to `facebook.net` and `google-analytics.com` by default. Understand the mechanism so you can design tracking that actually delivers.

Read post

Ready to fix your conversion pipeline?

Install the TrackStack SDK, route events to Meta and Google, and verify delivery from one dashboard.

Get started freeView quickstart

© 2026 TrackStack. First-party conversion infrastructure.

DocsPricingBlogChangelog