Channels · Telegram join tracking

Meta can’t see who joins your Telegram. Now it can.

Count every join per ad set, see how fast joiners leave and how many are still in after 7 days, and send each landing-page join back to your pixel as a server event. Built into the Hub, next to the accounts you run the ads on.

Gold Signals VIPLive demo · simulated data
1,000joined through your links
246of them left
46earlier members left
still inleft after a dayleft within 24h

The blind spot

Most FX, crypto and signal funnels end in a Telegram channel. The ad sends people to a landing page, the landing page sends them to t.me, and that’s where Meta goes blind. It saw a click. It never sees the join.

So the campaign optimises for the only thing Meta can measure: clicks. Cheap clicks from people who never join, or who join and leave by Friday. You find out when the channel doesn’t grow, and by then the budget is spent.

Two numbers fix it: which ad set each join came from, and whether that person is still there a week later.

How it works

  1. Link your TelegramOpen Channels in the Hub and tap Start in the bot, so it knows the channel is yours.
  2. Add the bot as an adminIt needs one right: Invite users via link. It never posts, never messages your members and never reads your chat.
  3. Make one link per ad setName it after the ad set and paste it into the ad. Every join through it is counted against that ad set, and so is every leave.
  4. Let your landing page report joinsYour Join button stays a normal t.me link. At the tap it becomes a one-time link tied to that visitor’s ad click, and when they join, the join goes to your pixel through the Conversions API.
In the Hub

What you actually
get to look at.

Real screens from Channels in the Hub, on sample data.

The channel at a glance, in the Hub
The channel at a glanceJoins today and this week, the share who left within 24 hours, the 7-day stay, and the whole channel’s net change.
How fast joiners leave, in the Hub
How fast joiners leaveEvery tracked joiner sorted by how long they stayed, from within the hour to still in.
Every ad set, side by side, in the Hub
Every ad set, side by sideJoins, leaves, the within-24h rate and a stay bar per link. The weak ad set is obvious.
Joins sent to Meta, in the Hub
Joins sent to MetaJoin taps, joins and events sent to your pixel this week. Subscribe, Lead or Registration.

Old members leaving won’t look like fake joiners

A channel with history always has people drifting out. Put that next to today’s joins and it reads like the ads bring fake members: ten joined, fifteen left. Most of those fifteen were never yours to judge. They joined months before the ad ran.

Counted together
+10 joined
−15 left

Looks like the ad set brings people who leave the same day.

How Channels counts it
+10joined through your links
−2of them left
−13earlier members left, counted apart

Only people who joined through a link are ever counted against that link.

Anyone who was in the channel before tracking started is an earlier member. Their leaves show in grey on the chart and in the whole-channel total, so the member count always adds up, but they never touch an ad set’s numbers.

The verdict on day 2, not day 8

The 7-day stay rate is the final word on an ad set, but it takes a week. The share of its joiners who leave within 24 hours is readable the next morning, and it usually points the same way.

Gold UK · broad4% left within 24h
Gold UK · lookalike 3%7% left within 24h
Crypto DE · interests28% left within 24h
Sample data. By the second morning, Crypto DE is the ad set to fix or cut.

When a big share of an ad set’s joiners leave within the hour, the ad promised something the channel doesn’t give, or the traffic isn’t real. Either way you know on day 2, before another week of budget goes into it.

What you see

Joins and leaves per ad setDay by day, per link, next to the channel’s real member count.
How fast joiners leaveEvery joiner sorted by how long they stayed, and the share gone within 24 hours: your verdict on day 2.
The 7-day stay rateOf the people who joined a week ago or more, the share still in. Final once a link has 10 such joins; until then you see how many are still in so far.
Earlier members, counted apartPeople who were in the channel before tracking started never count against an ad set. Their leaves show separately.
Landing page joins by adRead from the UTM tags on your ads, so each creative gets its own count.
A morning summaryYesterday’s joins, joiners who left and earlier members who left, on Telegram or push. Plus an alert if joins stop for 6 hours.

What goes to Meta

Only joins from your landing page, because only those carry the ad click to match against. Each one is a single server event:

EventSubscribe, or Lead or CompleteRegistration if you prefer
Matched withThe click ID and browser ID from the tap, plus IP and user agent
External IDThe member’s Telegram ID, hashed
DuplicatesEach event carries its own ID, so Meta counts it once
Source URLThe landing page the tap came from

What we keep, and for how long

Telegram member IDs are stored hashed, never in the clear. A visitor’s IP address is kept only until their event is sent, 48 hours at most. Each one-time link is revoked the moment it has been used, so it can’t be passed around.

The limits, plainly

Joins through your channel’s public @username are counted, but can’t be traced to an ad set. The Meta reporting needs your Join button on a page that loads our script: on a page we host that’s one switch, on your own it’s one line. And if Telegram ever slows down link creation during a sudden spike, the button falls back to your normal link. The join still counts; it just isn’t sent to Meta. Earlier members leaving are counted from the moment the bot is added: anything before that is invisible to Telegram bots.

Questions

Will old members leaving make my new joiners look fake?

No. Anyone who was in the channel before tracking started is counted apart, as an earlier member. Their leaves show in grey and in the whole-channel total, never against an ad set.

How soon can I judge an ad set?

The next day. The share of its joiners who left within 24 hours is readable after one day, and the 7-day stay confirms it after a week.

Does the bot post or message my members?

No. It never posts, never messages your members and never reads your chat. It only sees who joins and leaves, and makes invite links when you ask for one.

What permissions does it need?

One admin right: Invite users via link. Switch everything else off.

Does it work with groups?

Yes. Channels and supergroups both work, public or private.

Which Meta event is sent?

Subscribe by default. You can switch a channel to Lead or CompleteRegistration in the Hub.

Do I need a landing page from you?

No. On a page we host it is one switch. On your own page it is one line of script, and your Join button stays a normal t.me link.

What does it cost?

It is part of the Hub. If a channel ever carries a monthly fee, you see it in the Hub before anything is charged, and it is paid from your balance.

Find the ad set
that brings people who stay.

Two taps in Telegram, then it runs by itself.