Here is an uncomfortable exercise for any iGaming team running acquisition on Telegram. Open last month's numbers and answer three questions. Which affiliate pitch signed the three partners you onboarded? Which of your twelve sending accounts produced the players who were still depositing on day thirty? And when a partner asks you to justify the click counts you quoted them, what exactly do you send back?
Most teams can answer none of the three. Not because they are careless, but because the channel never gave them the tooling. Paid media has had per-click attribution since roughly forever. Telegram acquisition, the channel that quietly outgrew paid media in half the industry's markets, has been run on screenshots, partner-reported numbers and a spreadsheet somebody updates on Fridays.
The bill for that arrives in two forms, and every affiliate manager recognises both. Commission disputes, where a partner's numbers and yours disagree and neither side can prove anything. And the quieter, more expensive one: overpaying a low-quality cohort for months while a genuinely good partner goes undersupported, because nothing in your stack could tell the two apart.
That gap is what this article is about: what attribution on Telegram actually requires, what it can honestly claim, and what we shipped to close it.
Why the channel resisted measurement for so long
It is worth understanding why this took until 2026, because the reason tells you what a real solution has to look like.
A Telegram DM is not a web page. There is no referrer, no pixel, no session, no cookie to drop. When you send a hundred affiliates the same registration link, every click that comes back is anonymous and identical. You get a number. You do not get a person. And a number you cannot break down by person is not attribution — it is a vanity metric with a decimal point.
Worse, the naive fix makes things actively misleading. Paste one short URL into a campaign template and every recipient shares the same link, so every click lands in the same bucket. You end up with a confident-looking dashboard that merges two hundred people into one row and tells you nothing about which of them moved.
The structural trap: a single shortened URL in a bulk message is worse than no tracking at all, because it produces numbers that look like data. Teams then make budget decisions on them. Per-contact attribution is not a nicer version of one shared link — it is a different thing entirely.
What per-contact link tracking actually means
The mechanism is simple once stated. You register a destination once — your registration page, your affiliate program terms, your brand deck — and it becomes a variable in your message templates rather than a URL you paste.
When a message goes out, that variable is resolved at send time into a short link unique to that one recipient and that one message position in the sequence. A hundred recipients produce a hundred distinct slugs pointing at the same destination. The contact sees a normal link. You see who opened it.
The consequence is the whole point: clicks stop being a total and become a list of names. The tipster who opened your terms three times before replying is a different prospect from the one who never opened them at all, and until now you had no way to tell those two apart.
A deliberate design choice worth explaining: in TeleBoost, the copy button on a tracked link copies the variable, never a short URL. It would have been easier to hand you a URL. It would also have silently merged every recipient's clicks into one meaningless counter the first time someone pasted it into a campaign — which is exactly the failure mode the feature exists to prevent.
What gets counted, and what deliberately does not
A click counter in a messaging channel has an honesty problem most tools quietly ignore. Telegram itself fetches links to build previews. So do Slack, WhatsApp and every security scanner your partner's corporate network runs. If all of that lands in your totals, your numbers inflate exactly where you most need them to be defensible: in front of a partner.
| Hit type | How it is handled | Why |
|---|---|---|
| A person opening the link | Counted, attributed to that contact | This is the signal you are buying |
| Telegram / Slack / WhatsApp preview fetch | Recorded separately, never in the totals | A preview is the platform, not your prospect |
| Known bots and scanners | Classified and excluded | Conservative list: an unknown agent counts as human |
| The same person clicking twice in an hour | Deduplicated over a 24-hour window | One interested person is one interested person |
Two of those rows encode judgement calls worth stating out loud. The bot list is deliberately conservative — an unrecognised user agent is counted as a human, because under-counting a real prospect is a worse error than over-counting a scanner. And deduplication works on network ranges rather than full addresses, which means two people behind the same office NAT can occasionally count as one. No complete IP address is stored, ever. That is a real limitation, stated plainly, and we would rather you know it than discover it.
What this is not: this is conversation-side attribution. It proves what your outreach did — who you reached, who engaged, who opened what, and which message produced the conversation that produced the deal. It is not an S2S postback integration with your affiliate platform and it does not read your casino's deposit feed. Your affiliate platform still owns click-to-KYC-to-FTD-to-NGR tracking and commission calculation. These answer different questions, and the one below is the one nothing could answer before.
Clicks are the middle of the story, not the end
A click is engagement, not revenue. The number that actually runs an iGaming operation is the outcome: the affiliate who signed, the player who made a first deposit, the partnership that renewed for another quarter.
So the second half of the system is an outcome ledger. Every outcome you record is an append-only entry that carries its own attribution dimensions as real fields, not as a note somebody typed: which campaign, which message in the sequence, which template, which segment, which sending account, and where the record came from — recorded by hand, pushed through the API, imported, or emitted by an automation.
Outcome types are yours to define. Six ship as a starting point (Conversion, Sale, Booking, Renewal, Signup, Other), each with a rule about whether an amount is required, optional or forbidden. Most iGaming teams rename and extend these immediately — signed affiliate, FTD, reactivated player, renewed deal — which is the intended use. The definitions are data, not a product mode.
The rule that makes the numbers trustworthy
When you record an outcome, the system will look at what actually happened and suggest a source: the last eligible touch before it. A click three days ago, a campaign message the week before. You can accept that in one click.
What it will never do is write that guess into the ledger on its own.
Suggested attribution is never stored as fact. An attribution nobody confirmed is a hypothesis, and a ledger full of unconfirmed hypotheses is worse than an empty one — it is a number you will defend in a partner meeting without knowing it was invented. Every attributed outcome in TeleBoost was either explicitly set or explicitly accepted by a person.
The same discipline governs money. Revenue is reported per currency and never summed across them. If your month is 40,000 BRL, 12 lakh INR and €8,000, that is what you see — three figures, not one fictional total produced by whatever exchange rate happened to be cached. Operations running Brazil, India and Europe from one workspace will recognise why this matters.
And outcomes can be reversed. A deal that falls through, an affiliate whose traffic turns out to be fraudulent, a chargeback — the reversal is recorded, the original entry stays. A ledger you can edit is a ledger nobody should believe.
The line, end to end
Put the pieces together and you get something the channel has not had: an unbroken line from a specific message to a specific deposit.
| Step | What you could see before | What you see now |
|---|---|---|
| Audience | A list somebody exported last quarter | A live segment, snapshotted at launch so the numbers stay comparable |
| Send | Sent count | Sent, read and replied, per recipient and per message position |
| Interest | A total click number, or nothing | Which named contacts opened, how often, from which message |
| Result | A partner's word and a spreadsheet row | An outcome in an append-only ledger, attributed on purpose |
| Money | One blended number | Revenue per currency, per campaign, per template, per account |
Which makes the three questions from the top of this article answerable. The pitch that signed your partners is a row in the template breakdown. The account that produced day-thirty players is a dimension in the outcome analytics. And when a partner audits your click counts, you send them numbers with previews and bots already excluded, which is a substantially more comfortable conversation than the alternative.
It also changes the two expensive failures from the opening. A commission dispute stops being one party's recollection against another's and becomes a record with timestamps, named contacts and confirmed attribution — the kind of disagreement that gets settled in one message. And the cohort you have been quietly overpaying becomes visible, because the partner who generates clicks and the partner who generates deposits are finally two different rows instead of one blended number.
On small numbers: every breakdown carries a low-sample badge when there is not enough data behind it. Three sends and one reply is not a 33% reply rate, it is three sends. Telling you that costs us a nice-looking dashboard and saves you a bad decision.
Your program's stages, without breaking the reports
Attribution only pays off if the pipeline underneath it reflects how your program actually works. An affiliate program does not move through "lead, opportunity, closed won" — it moves through sourced, graded, pitched, negotiating, signed, producing, and the ever-present quietly went dark.
So pipelines are configurable: your stages, your labels, as many as your program needs, with six presets available as starting points if you would rather edit than build. Every stage move is written to an append-only history, which is what turns "I think we signed them in July" into a timestamp.
There is one constraint, and it is the most interesting design decision in the release. Each stage carries a canonical category — new, active, qualified, converted, retained, lost, suppressed — chosen next to the label, never hidden behind an advanced menu.
The label belongs to you. The category is the contract with your reports. Call a stage "Terms sent" or "Deal on the table" or anything else your team actually says out loud — the analytics still know whether that means qualified or converted, so your conversion rate keeps meaning the same thing in January and in June.
This is the difference between a tool that is configurable and a tool that becomes unreportable once three people have configured it. Change the category of a populated stage and you get a warning, because you are not editing a label at that point — you are changing what your historical reports mean.
The compliance side, stated without theatre
iGaming operates across markets with genuinely different rules about who may be contacted and how. We are not going to tell you a software feature makes you compliant; that claim would be worth exactly nothing.
What exists is a consent ledger: an append-only record of what was granted or withdrawn, when, and why. Three properties matter.
- A withdrawal suspends contact immediately. Not at the next campaign launch — immediately, across campaigns, follow-ups and the API.
- Granting consent never silently un-suspends anyone. Clearing a suppression is a separate, deliberate action that requires a written reason. Nobody gets re-contacted because a field flipped somewhere.
- The history exports to CSV. When somebody asks what happened with a contact, you have an answer with dates on it rather than a recollection.
One honest note: contacts who were already marked do-not-contact before this shipped carry a withdrawn status but no invented event. We do not know when or why they were suppressed, and an audit log that contains guesses is not an audit log.
What to do with this on Monday
If you run iGaming acquisition on Telegram, the order that gets you results fastest:
- Register your two or three real destinations as tracked links — registration page, program terms, brand deck. Use the variables in your templates from the next campaign onward.
- Define the outcome types your business actually has. Signed affiliate, FTD, renewal. Set the amount rule correctly: an FTD without an amount is a row you will curse in three months.
- Build the pipeline your program runs on and set the canonical category on each stage while you are looking at it. Five minutes now, correct reports forever.
- Record outcomes as they happen, accepting the suggested attribution when it is right and correcting it when it is not. Thirty days of this is the first month of real data your Telegram channel has ever produced.
None of this makes acquisition easier. It makes it legible — which is the thing that separates an operation that compounds from one that restarts from zero every quarter, and it is the thing the channel has been missing while it quietly became the most important one you have.
All of this is live in TeleBoost. Tracked links, the outcome ledger, configurable pipelines and the consent record sit in the same workspace as your lead sourcing, campaigns and unified inbox — which is why the attribution works at all. See how iGaming teams run it, or read the affiliate recruitment field guide for the motion that fills the pipeline in the first place.
