Skip to main content

Tracking in Walled Gardens: Meta, TikTok and Telegram Traffic

Our write-up of a story first reported by Voluum Blog

Tracking in Walled Gardens: Meta, TikTok and Telegram Traffic

Tracking in Walled Gardens: Meta, TikTok and Telegram

Three platforms, three different approaches to what they hide from advertisers. Meta cuts data through privacy restrictions and its in-app browser. TikTok offers its own analytics, but the numbers it reports rarely match what an external tracker records. Telegram was never built for performance tracking in the conventional sense. Running all three simultaneously and maintaining a single view of the funnel is not a simple problem.

Why Closed Ecosystems Break Standard Tracking

The classic chain — click, redirect, tracker, landing page, conversion — breaks inside a walled garden. The platform blocks external pixels, strips URL parameters, or opens links inside its own browser. When that happens, cookies, referrer data and parts of the UTM string never arrive.

The in-app browser is a distinct issue. Both Meta and TikTok open external links inside a browser isolated from the system browser. Cookies do not carry over between sessions. A user clicks an ad inside the app, lands on the page, and the tracker logs them as a new visitor with no attributed source.

Meta. Privacy restrictions compound: iOS ATT, ad blockers and Meta's own data policy all reduce what the pixel can capture. The Conversions API (CAPI) moves event transmission server-side, bypassing the browser entirely. It supplements the pixel rather than replacing it — both channels together give fuller event coverage. A tracker without CAPI integration leaves conversions invisible to Meta's algorithm, which degrades campaign optimisation. The Meta click ID (fbclid) must be passed to the tracker and stored; without it, user-level attribution breaks whenever the in-app browser interrupts the session.

TikTok. TikTok Ads Manager attributes conversions by its own model. An external tracker uses a different one. The gap between the two figures is normal, not a sign of broken setup — but only if you know which logic each tool applies. TikTok Pixel carries the same in-app browser limitations as Meta Pixel; the Events API covers part of the loss server-side. The TikTok click ID (ttclid) needs to be passed to the tracker the same way fbclid is handled on Meta. TikTok traffic skews heavily mobile with short sessions, and the default attribution window can pull in conversions that happened well after the click. Setting the attribution window correctly in the tracker matters.

Telegram. There is no native pixel, no platform-issued click ID and no built-in campaign analytics. Telegram Ads is a relatively recent product and returns minimal data. Tracking runs through UTM parameters and direct links carrying tracker parameters. Telegram's built-in browser isolates sessions the same way Meta and TikTok do, so server-side attribution is the most reliable path: the tracker records the click, passes an identifier to the landing page via URL parameter, and the landing page returns the conversion to the server. Organic traffic from channels and groups will mix with paid traffic unless each placement gets its own link with unique parameters.

One Collection Point

Managing three platforms across three separate dashboards invites attribution errors. A tracker resolves this by handling all sources in one interface, end to end from click to conversion.

To do that the tracker needs to accept and store click IDs from each platform, support server-side integrations (CAPI for Meta, Events API for TikTok), separate sources through custom tokens rather than UTM alone, and fire a postback to the platform when a conversion is recorded. Without the postback, the platform algorithm receives no conversion signal and cannot optimise delivery — which affects cost per result directly.

The setup logic is the same across all three platforms; the details differ. Create a campaign in the tracker, define the traffic source, configure click ID passing in the link parameter. The click ID is stored on the landing page. On conversion, the tracker sends the postback with that identifier back to the platform.

In-app browsers can be partially bypassed with deep links or by forcing the system browser to open, depending on the vertical and offer type. Server-side attribution is the more consistent solution because it does not depend on browser behaviour on the user's device. The core point: do not force all three platforms into identical mechanics. Each has its own constraints, and the tracking setup should be built around those constraints, not around a single universal template.

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor