Ads & Attribution

Telegram channel analytics: what the stats show and what ads need

Telegram's channel statistics count followers, views and sources as channel totals. Here is what they are good for, where they stop when you buy traffic, and what to run beside them.

Telegram channel analytics, the statistics screen Telegram gives a channel's admins, counts followers, views, shares and reactions, and graphs where new followers came from inside Telegram. It does not know which ad, campaign or creative bought a follower, and it never sees a deposit. For ad analytics you need a tracked link in front of the channel and a record that follows each person past the join. Scalegram is the Telegram CRM for IBs and forex affiliates, and it keeps that record from the ad click to the deposit checked against the broker's own records.

What Telegram channel analytics actually reports

Telegram documents its channel statistics in the API reference, and the field list there is the closest public description of what the statistics hold. The broadcast stats object carries a follower count with the previous period beside it, views per post, shares per post and reactions per post, the same three for stories, and the percentage of subscribers with notifications enabled.

Then come the graphs. The same page lists a growth graph, a followers graph, a mute graph, a top hours graph, an interactions graph, a views by source graph, a new followers by source graph and a languages graph, plus interaction counters for recent posts.

Two limits apply before you see any of it. Telegram says administrators of channels "of a certain size" can request detailed statistics, and that "the exact limit is a server-side config". A small new channel may have no stats screen at all. And every number is a total for the channel: you can see that 400 people joined on Tuesday, not who they were.

What the numbers are good for

For running the channel itself, the built-in screen does the job. Top hours tells you when to post. Views per post against the follower count tells you how much of the audience still reads you. The mute graph shows when a run of posts annoyed people. The languages graph is worth a look if you sell in more than one market, because it tells you which languages your readers use before you pay to reach more of them.

If you post content and do not buy traffic, you may never need more.

Where channel statistics stop for paid traffic

The trouble starts when money goes into ads. An ad buyer needs to answer three questions per ad: how many people joined, how many of them became clients, and what each one cost. Channel statistics answer none of the three at the level of an ad.

The "by source" graphs describe where views and followers came from in aggregate. Telegram's schema does not document a campaign, an ad id or a click id among them.

The bigger gap is what happens after the join. An IB or forex affiliate is paid on clients who open an account and deposit at the broker. That happens on the broker's side, days or weeks later. No channel statistic can see it, so a campaign that brings 300 curious followers and no clients looks better on the stats screen than one that brings 80 followers and twelve depositors.

The ad platform has the mirror-image problem. Meta knows the click. Its ClickID documentation describes fbclid as "a Meta-generated parameter that is passed with the URL of an advertiser's website when a user clicks an ad on Facebook and/or Instagram". When the ad points straight at a t.me link there is no website of yours to receive that parameter, so the click and the join never meet. We go through why in Telegram UTM tracking.

Telegram's own answer to "which link brought this person" is the invite link. Each channel can have many, and the Bot API method createChatInviteLink lets a bot make them with a name of 0 to 32 characters, an expiry date, a member limit of 1 to 99999, or a request-to-join flag that sends each joiner to an admin for approval.

Joins are attributed per link. When a bot is an administrator and asks for chat_member updates, every join arrives as a ChatMemberUpdated object whose invite_link field is the "Chat invite link, which was used by the user to join the chat". On the app side, Telegram's invite links documentation says messages.getChatInviteImporters "can be used to fetch info about users that joined using a specific invite link".

So the cheap version of ad analytics is one named invite link per ad, set as the ad's destination. It works up to a point. You get joins per ad and the list of who joined. You still have no click id, so nothing goes back to Meta, and you still have no deposit, so you are back to judging ads by joins.

Three ways to read a Telegram channel's ad results

QuestionChannel statisticsOne named invite link per adScalegram tracked link
How many followers joined this week?Yes, as a channel totalYes, per linkYes, per link and per UTM tag
Which ad or creative brought this person?No campaign field in the documented schemaOnly if each creative has its own linkYes, read from utm_campaign and utm_content on the link
Who exactly joined?No, totals onlyYes, through invite link joinsYes, each person becomes a client card
Is the join reported back to the ad platform?NoNo click id to sendYes, server side to Meta, TikTok and Snapchat with the click id
Did this person deposit at the broker?NoNoYes, checked against the broker's records over a read-only API

What Scalegram adds on top of Telegram channel analytics

The ad points at a Scalegram tracked link, or at one of the Websites Scalegram hosts on your own domain for the channel. The link reads the standard UTM tags (source, medium, campaign, content, term) and the click ids fbclid, gclid, ttclid and sccid, and keeps them against that visitor. The visitor goes on to the channel.

A Scalegram bot that administers the channel sees the join. The join is reported server side to Meta, TikTok and Snapchat with the stored click id, so the ad platform learns which click turned into a subscriber. In the Scalegram panel, subscribers are broken down by source, and inside each source by medium, campaign and creative.

When the subscriber writes to you, the AI bot on your own Telegram answers in the language the message arrived in, qualifies them, sends the broker link and asks for the email or account number. It checks that against the broker's IB portal or the prop firm CRM over a read-only API. Scalegram ties the deposit back to the ad that bought it and reports it server side, so campaigns optimise on depositors instead of clickers. The client card carries the UID, email, broker, deposit and the funnel stage, and Scalegram stores no messages from the conversation.

Spend sits on the Scalegram Meta Ads desk, mirrored from the Marketing API for every ad account. With joins and deposits tied to the same campaigns, the question "what did a client from this ad cost" has numbers on both sides. The full flow is on the how it works section.

A setup that keeps both views honest

Use the channel's statistics screen for content decisions, such as when to post and which topics keep views up. Do not use it to judge ads.

Give every ad its own tracked link, and fill utm_campaign and utm_content the same way every time, in lower case, because a tag typed two ways becomes two rows. Keep the channel's public link and any invite link you post organically separate from paid links, so organic joins do not get credited to a campaign.

Judge a campaign on verified deposits, not on joins. A cheap join from a campaign that never produces a client is the most expensive line in the account, and we cover how to stop paying for it in optimizing Meta ads for deposits. For a side-by-side of the tools that track ads into Telegram, see the best Telegram tracker 2026.

If you run one channel with a modest ad budget, Scalegram Lite at $99 a month includes one tracked link, one page and one bot, and every feature is on every plan. Larger teams with many channels and links take the Scalegram plan at $999 a month, with unlimited counts. Both are on the pricing section.

Sources

Channel statistics tell you how the channel is doing. The ad question is who joined from which ad and whether they ever became a client, and that needs a record per person.

— The Scalegram Team

Key takeaways

  • Telegram's channel statistics report followers, views, shares, reactions and graphs by source, as channel totals.
  • Telegram says detailed statistics are only available to channels of a certain size, set server side.
  • Named invite links attribute joins per link, but carry no click id and no deposit.
  • Scalegram tracked links keep UTM tags and click ids, report joins and verified deposits server side to Meta, TikTok and Snapchat, and file each person as a client card.

Frequently asked questions

How do I see analytics for my Telegram channel?

Telegram's channel statistics, available to the channel's administrators, show followers, views, shares, reactions and graphs such as new followers by source and top hours. Telegram's documentation says detailed statistics are available to channels of a certain size, with the limit set on Telegram's servers.

Can Telegram channel analytics show which ad brought a subscriber?

No campaign or ad field appears in Telegram's documented channel statistics, so the built-in screen cannot split followers by ad. Use a separate tracked link or named invite link per ad to get joins per ad.

What is the best way to track Telegram channel ads?

Send each ad to a tracked link that stores the UTM tags and click id, then report the join and later the deposit back to the ad platform server side. Scalegram is the Telegram CRM for IBs and forex affiliates and does this from the click to the deposit checked against the broker's records.

Do invite links show who joined my channel?

Yes. Telegram's API can list the users who joined through a specific invite link, and a bot that administers the channel receives the invite link used with each join.

Put one bot on your own Telegram

Scalegram answers every lead in the language it arrived in, checks the deposit against the broker's own records, opens the paid group and files the client. Lite starts at $99 a month.