Adset.ProAdset.ProKnowledge base
Home/Tracker/Traffic Attribution in Telegram Channels

Traffic Attribution in Telegram Channels

1. Overview

Traffic attribution in Telegram channels is the tracking of user entries into closed Telegram channels and groups that come from your advertising campaigns. Traffic is directed through a Telegram bot, which controls the entry and accurately records the conversion, linking each entry to a specific click, campaign, source, and creative.

This solves the main problem of traffic on Telegram: usually, after transitioning to the messenger, the click is "lost," and it is impossible to understand from which bundle the subscriber came. The intermediary bot restores this connection and turns the entry into a measurable conversion.

What the function allows:

  • ✅ Link the entry into the channel to the click, campaign, traffic source, and creative
  • ✅ Build the funnel "click → bot launch → entry" with conversion percentages
  • ✅ Work with closed channels and groups through entry requests
  • ✅ Automatically approve requests after attribution
  • ✅ Transfer conversions to the affiliate network (CPA) and receive postbacks with statuses (deposit, registration, declined, etc.)

⚠️ Do not confuse with the "Telegram Bot — conversion bounce pixel." These are two different functions that use Telegram bots but solve opposite tasks:

Function Direction Purpose
Telegram Channel Attribution (this article) Traffic from advertising to your channel Track from which bundle the subscriber came and record the entry conversion
"Telegram Bot" Pixel Notifications to your working chat Send the team notifications about conversions (deposits, registrations) in real-time

More about the notification pixel — in the article Telegram Bot — conversion bounce in Telegram channel.


2. How it works

The complete user path from clicking on the ad to joining the channel:

  1. The user clicks on the ad → your tracking link opens. The tracker records the click (SOURCE_CLICK) and assigns it a unique clickId.
  2. The tracker automatically redirects the user to the bot via a link like t.me/<botUsername>?start=<clickId>.
  3. The user clicks Start in the bot → the bot remembers the link "click ↔ Telegram user," sends a welcome message and an invitation link to the channel. The event TG start (TG_START) is recorded.
  4. The user clicks the invitation link → an entry request is created → the bot automatically approves it and records the conversion TG entry (TG_JOIN). The user ends up in the channel.
Advertising
   │
   ▼
Tracking link (click, clickId)
   │
   ▼
Bot: /start  →  TG start  (welcome + invitation link)
   │
   ▼
Entry request  →  bot approves  →  TG entry (conversion)
   │
   ▼
(optionally) CPA postback: deposit / registration / declined …

Attribution window. After launching the bot, the user has 1–7 days (configurable, default 2 days) to join the channel — if they do not join, the link is automatically deleted. After joining, the link is stored for another 30 days so that the CPA network has time to send postbacks with conversion statuses.


3. Prerequisites (in Telegram)

Before setting up on the platform, prepare the bot and channel in Telegram:

  1. Create a bot at @BotFather. Send the command /newbot, set a name and username, and get a token like 123456:ABC-DEF1234ghIkl....
  2. Add the bot to the target channel/group and assign it as an administrator. The bot needs rights to manage invitation links and approve entry requests — without them, attribution will not work.

💡 Tip: You do not need to enter the bot's username (@...) in the platform — the system will determine it automatically by the token.


4. Step 1. Creating a bot (Tracker → Telegram Bots)

Go to the section Tracker → Telegram Bots (in the menu — the item with the Telegram icon).

[Insert screenshot: Telegram Bots section with the bots table]

Access to the section: Owner, Team Lead, Tech, and administrators. The Buyer role does not have access to the bot management section (the buyer works with already prepared offer links).

4.1. Adding a bot

Click "Add Bot" and fill out the form:

Field Description Required
Bot Name A clear name for identifying the bot in the platform (e.g., "My Attribution Bot") ✅ Yes
Bot Token The token obtained from @BotFather. When editing, leave the field empty to keep the current token ✅ Yes (when creating)

After saving, the platform will check the token and automatically pull the bot username. If the token is invalid, the bot will not be created.

4.2. Setting up Webhook

To start receiving events from Telegram (Start clicks, entry requests), you need to set up the webhook:

  1. In the bot's line, open the action menu (⋮).
  2. Select "Setup Webhook" and confirm.
  3. The status in the Webhook column will change to Active.

To temporarily disable event reception, use "Remove Webhook".

⚠️ Important: Without a configured webhook, the bot will not respond to the /start command and entry requests — attribution will not work.

4.3. Bots table

The table displays all your bots with statuses:

Column Description
Name The name of the bot in the platform
Bot Username The bot's username (@...) — the link leads to the bot in Telegram
Status The bot's activity: Active / Inactive
Webhook Webhook status: Active (configured) / Inactive (not configured)
Channels List of channels/groups where the bot is an administrator
Owner / Team Owner and team (the Team column is visible only to administrators)
Created Creation date

5. Step 2. Connecting channels

For the bot to direct traffic to the channel, the channel must be in its list. There are two ways to add a channel — both in the bot's action menu (⋮).

5.1. Update channels (automatically)

If you have already added the bot as an administrator to the channel/group, simply click "Refresh Channels". The platform will poll Telegram, find all channels where the bot is an admin, and update the list. The notification will indicate how many channels were found.

When updating, channels where the bot is no longer an administrator are automatically removed from the list.

5.2. Add channel manually

Select "Add Channel" and specify the channel:

Field Description
Chat ID or @username Numerical chat ID (e.g., -1001234567890) or @username of the channel/group where the bot is an administrator
The platform will check that the bot is indeed an administrator of the specified channel, pull its name, and add it to the list. Connected channels are displayed in the Channels column.

6. Step 3. Creating Offer Link (stream) with Telegram type

Now create an offer link (Offer Link) that will direct traffic to the channel. Go to Tracker → Offer Links and create/edit the link. The basics of working with offer links are described in the article Offer Links.

In the Type (hosting type) field, select "Telegram channel". The URL field will hide, and a block of Telegram settings will appear:

[Insert screenshot: Telegram settings block in Offer Link form]

Field Description Required
Telegram Bot The bot through which attribution will go. The list is from the Telegram Bots section ✅ Yes
Channel The channel/group to which the user is directed. Selected from the bot's channels or entered manually (-100XXXXXXXXXX) ✅ Yes
Attribution Window (days) How many days to wait for entry after launching the bot. Range 1–7, default 2 ❌ No
Welcome Message The text that the bot will send to the user upon /start. Supports HTML formatting ❌ No
Invite Link Long-lived invitation link. Can be left empty — the bot will create it automatically on the first /start ❌ No

Example setup:

Offer Link:        CryptoChannel Telegram
Type:              Telegram channel
Telegram Bot:      @my_attribution_bot
Channel:           Crypto Signals VIP (-1001234567890)
Attribution Window: 2 days
Welcome Message:   Welcome! Click the link below to join the channel 👇

7. Step 4. Launching and distributing the link

Attach the created Offer Link to the campaign/stream just like a regular offer link. In advertising, you use the regular tracking link of your campaign or source.

The deep link to the bot (t.me/<botUsername>?start=<clickId>) is generated automatically at the moment of transition, with a unique clickId for each user. Therefore, there is no static "ready" link to the bot in the interface — and there shouldn't be.

⚠️ Important: Do not give users a direct link to the channel bypassing the bot. Entries made directly (not through /start and the bot's invitation link) will not be attributed.


8. Analytics: Telegram funnel

Metrics of the Telegram category are available in the Report Builder. They allow you to see the entire funnel from click to entry:

Metric What it shows
TG starts The number of bot launches (Start clicks) — event TG_START
TG entries The number of entries into the channel — conversion TG_JOIN
Click to start Conversion "click → bot launch", %
Click to entry Conversion "click → entry into the channel", %

The funnel reads as follows: Clicks → TG starts → TG entries. Metrics can be grouped by campaigns, sources, creatives, and other dimensions, just like other tracker metrics.


9. CPA postbacks by Telegram subscriber

If the offer is paid by statuses (deposit, registration, declined, etc.), the CPA network or channel owner can send postbacks directly by Telegram subscriber — without knowing the clickId. It is enough to have the Telegram user ID and the channel ID.

Endpoint:

GET https://<your-domain>/postback/tg
Parameter Required Description
tg_user_id Yes Telegram user ID of the subscriber
channel_id Yes ID of the channel/group (-100XXXXXXXXXX)
status Yes Conversion status from the CPA offer (e.g., approved, hold, decline)
revenue / amount No Payment for the conversion (default 0)
currency No Currency of payment (default USD)
external_id No External ID of the conversion on the CPA side
accept_status, hold_status, decline_status, trash_status, redep_status No Your status values for mapping (override CPA settings)

Example request:

GET https://your-domain.com/postback/tg?tg_user_id=123456789&channel_id=-1001234567890&status=approved&revenue=5&currency=USD

The platform will find the last entry of this subscriber in the specified channel, restore the link with the click, and register the conversion with the required status (deposit, hold, etc.). The record is available for postbacks for 30 days after entry.

General principles of postbacks and statuses are described in the article Conversions (Postback). The history of incoming postbacks can be viewed in the postback logs.


10. Frequently Asked Questions (FAQ)

The bot does not respond to Start — what to check?
Make sure that the webhook is set up for the bot (Webhook column = Active) and the bot is active (Status = Active).

Entries are not counted as conversions.
Check that: (1) the bot is an administrator of the channel with the right to approve requests; (2) users are joining via the bot's invitation link, not your direct link to the channel; (3) the entry occurred within the attribution window (1–7 days after start).

The channel does not appear in the list when creating Offer Link.
Add the bot as an administrator to the channel and click "Refresh Channels" in the Telegram Bots section, or add the channel manually by its ID.

Do I need to enter the bot's username?
No. The platform automatically determines the username by the token when creating the bot.

Can one bot be used for multiple channels?
Yes. One bot can serve multiple channels/groups; in the Offer Link, you select a specific channel.

What happens if the user does not join the channel?
The link "click ↔ user" is deleted after the attribution window expires, and the entry after this period will no longer be attributed.


11. Important features and limitations

  • 100% control of entries. The invitation link is created with a mandatory entry request — the user does not enter directly, and their request is approved by the bot. This ensures accurate attribution of each entry.
  • The bot must be an administrator of the target channel/group with rights to manage invitations and approve requests.
  • Attribution window — 1–7 days (default 2). After joining, the link lives for another 30 days to receive CPA postbacks.
  • The invitation link is cached. It is created once on the first /start and reused — you can also set your own.
  • The token is stored in encrypted form. The platform does not show it again; when editing, you can leave the field empty to avoid changing the token.
  • The Telegram Bots section is not available to the Buyer role — bot management is handled by Owner, Team Lead, Tech, and administrators.