Home / Blog / Telegram Ads analytics: how to read ad reports

Telegram Ads analytics: how to read ad reports

Author: Maxim Fedorov· 6 min read· May 27, 2026

Launching a campaign in Telegram Ads is easier than assessing its results. The ad account records views, clicks, and joins for every ad, but tracks neither unsubscribes nor the organic growth surrounding the campaign. Channel statistics show that growth but cannot attribute it to a specific ad. This article explains what each of the two reports shows and how to combine them into a complete picture, from joins to events on your site.

What the Telegram Ads account shows

Telegram Ads analytics starts on the Statistics tab of the ad account. It provides a concise set of figures for every ad:

  • Views — the number of times the ad was displayed. These are impressions, not unique users.
  • Clicks — the number of times users tapped the ad's button, link, or headline.
  • CPM — your current bid per thousand views.
  • Budget — the amount the ad has spent so far.
  • Joins graph — the number of people who subscribed to the channel or started the bot after viewing the ad, plotted over time.

These figures increase only while the ad status is Active. A stopped or declined ad displays frozen totals, so check its status before drawing conclusions from the counters. Only the account counters freeze: pixel events and unsubscribe data from invite links continue to arrive for another two or three days after the pause, so factor in this tail when finalizing the results.

The account also calculates standard metrics: CTR, cost per click, and cost per subscriber. The ad-account interface does not display unique-user counts, frequency per user, or unsubscribe data. That is why most advertisers add another analytics layer, discussed below.

Telegram Ads account vs channel statistics

If the ad promotes a channel, the ad account is not the only place to look. The second source is Telegram's built-in channel statistics, available to administrators directly in the app. The two reports answer different questions. The ad account measures your ad, while channel statistics measure the entire channel.

SourceWhat it measuresWhat it cannot tell youTelegram Ads accountViews, clicks, spend, and joins for one adUnsubscribes, organic growth around the adChannel statisticsViews by source, follower growthWhich ad brought in a subscriber, ad spend

Channel statistics have no separate entry for ads. Growth figures combine paid traffic with organic joins, shares, and search; when several ads point to the same channel, channel statistics cannot separate their contributions. Separating them requires a separate link for each ad, which is where the invite links discussed below come in.

Which metrics decide scale or stop

The rule of thumb is simple: scale ads with a lower cost per subscriber and more target actions, and stop those whose costs keep rising. Follow three practices to keep the underlying figures reliable.

  1. Compare spend and results over the same dates. Spend in the account accumulates over the ad's entire run, while joins are usually reviewed for the past few days. Dividing spend from one period by subscribers from another distorts the cost per subscriber in either direction. Set a single date range and take both figures from it.
  2. Judge by cost per subscriber, not by views. A high view count indicates reach only: an ad may be shown to thousands of people while almost no one subscribes. Results are measured by joins and the cost of each one. Check the joins graph in the account and subscriptions through the invite link: they show whether attention translated into subscribers.
  3. Subtract unsubscribes. A proportion of new subscribers leave within the first few days. Judged by joins alone, an ad with a rapidly shrinking audience looks no worse than one that attracts people who stay. Make the final decision based on cost per subscriber adjusted for unsubscribes; the invite-links section below explains how to calculate it.

Statistics in Adstat

Adstat pulls the same official ad data and turns the raw totals into a report. Statistics are available by day and at intervals as short as 5 minutes while the ad is running. Standard metrics are calculated automatically:

  • CTR — the share of views that resulted in a click.
  • CVR — the share of clicks that led to the target action.
  • CPM — the actual cost of a thousand views.
  • Cost per click and cost per action — spend divided by clicks and by target actions.
  • Frequency — the average number of views per user.

Any data view can be exported to Excel or CSV. Rows can be grouped into periods ranging from 5 minutes to a year, which is useful when you need an hourly breakdown for one creative and a monthly view of the account.

This applies to more than channels. Adstat tracks Telegram Pixel events on external sites and integrates with Yandex Metrica: leads, purchases, and funnel stages form an end-to-end path from click to action. Results from campaigns that lead to a landing page or online store are reported alongside subscription data.

Telegram Ads data will not match Google Analytics one-to-one: Telegram counts a tap on the ad within the app, while the site's analytics tag fires only after redirects, consent banners, and bot filters. This discrepancy is expected, not a setup error. When an ad leads to a channel or bot rather than a site, the same analytics tools apply (views, spend, the joins graph, and invite links), with only on-page events excluded.

When an ad leads to a channel, Adstat automatically creates a separate invite link for that ad through its bot. The service records everyone who subscribes through that link and detects whether they later leave. This attributes both subscriptions and unsubscribes to a specific ad, providing a clear breakdown for each one:

  • Subscriptions and unsubscribes per ad, not per channel.
  • Cost per subscriber and the same cost adjusted for unsubscribes, also known as the cost of a retained subscriber: spend divided by the difference between subscriptions and unsubscribes.
  • A side-by-side comparison of ads, allowing the budget to shift to the creative that retains people rather than one that merely collects views.

This closes the gap between the two native reports: the ad account shows joins after a view, while the invite link identifies the specific ad that generated them and shows who stayed.

A quick checklist before moving budget

  1. Check the status. Confirm that the ad is Active and has accumulated statistics.
  2. Set the date range. Use spend and subscription figures from the same period.
  3. Calculate the net result. Judge the creative by the cost of a retained subscriber (spend divided by subscriptions minus unsubscribes) or by the cost of a target action on the site.