XTRACKER

Getting started with XTRACKER

What XTRACKER is, how the click-to-deposit funnel works, and the core concepts — spaces, links, canonical events and destinations — you need before you integrate.

XTRACKER is a multi-tenant conversion tracker built for Telegram funnels and affiliate offers. It follows a user from the first ad click all the way to a deposit, records every step, and forwards those steps to whatever you need them in — Facebook CAPI, a webhook, or a server-to-server postback.

This guide explains the moving parts so the rest of the docs make sense.

The funnel

The canonical journey looks like this:

Click to deposit funnel

A Facebook ad sends the user to a landing that mints a unique uid. The deeplink carries that uid into your Telegram bot (t.me/<bot>?start=fb_<uid>). From there your app reports each conversion step against the same uid, and XTRACKER stitches the whole path together.

The setup, at a glance

Four screens get you from zero to sending conversions:

Where to click, in order

Core concepts

Space

A space is one tenant — typically one offer or one funnel. Everything (links, keys, destinations, events) is scoped to a space, so data from different projects never mixes.

A link is a trackable entry point. It can be a bot deeplink, a Telegram channel, or a plain web URL. Each link has a slug and its own landing page; clicks on it mint uids.

Your links, with clicks and revenue per link

Canonical events

Instead of a free-for-all of event names, XTRACKER uses a small, fixed vocabulary. You always send one of these four:

Event Meaning
contact first touch — opened the landing / started the bot
subscribed joined the channel / started the bot
registration registered on the offer
deposit paid — the only event that carries value + currency

Keeping the vocabulary closed is what makes reporting consistent across every destination.

Destination

A destination is where matched events go: Facebook CAPI, a generic webhook, or an S2S postback. You map each canonical event to the name that destination expects (e.g. deposit → Purchase for Meta) once, in the space's event maps — your app never has to know about destinations.

How delivery works

Events don't go straight out. They're written to a durable inbox first, then fanned out and retried until they land:

Delivery pipeline

That means a momentary outage at a destination never loses a conversion — the outbox keeps retrying with backoff.

What's next

Spin up a space, create a link, grab your keys, and you're ready to send your first event.