·7 мин чтения

Статистика Telegram Ads по часам: почему её нет и как собрать

Вопрос «в какие часы льётся живое, а в какие мусор» закупщик задаёт себе постоянно, а кабинет Telegram Ads на него не отвечает. И это не потому, что вы плохо искали: часа как единицы там нет вовсе, ни в интерфейсе, ни в официальном API. Значит, собирать профиль суток придётся самому. Ниже о том, откуда берётся почасовой разрез и на каких ловушках ломается самодельный подсчёт. Всё проверено на живых кабинетах в сентябре 2026 года.

Почему в кабинете нет разреза по часам

Потому что график умеет ровно два масштаба. Справка Telegram говорит об этом прямо: статистика «able to be displayed in increments of minutes or days», то есть с шагом в минуты или в дни. Третьего значения не существует, и в самом кабинете переключатель периода тоже даёт только эти два варианта.

Минутный режим при этом живёт недолго: он показывает свежий отрезок, и сопоставить по нему вчерашнюю ночь с позавчерашней не выйдет. Дневной режим наоборот, схлопывает сутки в одну точку, и вся разница между тремя часами ночи и тремя часами дня в ней исчезает. Ровно в этом зазоре и живёт вопрос про часы.

Сторонние сервисы аналитики над Telegram Ads эту дыру тоже не закрывают: у тех, что мы проверяли, разбивка идёт по дням, неделям и месяцам. То есть дело не в том, что решение есть и вы его не нашли.

Откуда тогда берутся часы

Из пятиминутных срезов, если собирать их самому и складывать в часы. У официального API те же два интервала, что и у интерфейса: пять минут и сутки. Пятиминутная история при этом хранится долго, и это меняет дело. Мы забирали её у объявления почти годовой давности, созданного в октябре прошлого года, и она сошлась с дневной точкой без расхождений. Границу, за которой данные кончаются, нащупать не удалось: уперлись в возраст самих объявлений.

Почасовой разрез поэтому строится и вперёд, и назад: если вы начали считать сегодня, прошлые месяцы всё равно доступны. И день, когда ваш трекер лежал, перестаёт быть дырой в отчётах, его можно добрать задним числом. Подробнее про сам доступ к API и где взять ключ мы писали в отдельной статье.

Ловушка первая: нули вместо пропусков

Лента точек приходит сплошной. Если объявление шесть часов не крутилось, вы получите семьдесят две честные точки с нулями. Пропуска в данных не будет, и отличить «в этот час ничего не показывали» от «в этот час данных нет» по самой ленте невозможно.

Хуже того, текущий незакрытый час тоже добивается нулями до полного набора. В двадцать минут второго ночи за час, который идёт прямо сейчас, приезжают все двенадцать точек, и восемь из них нули просто потому, что это ещё не наступившее время. Мы на этом обожглись: вспомогательная проверка считала час закрытым по количеству точек, и была неверной. Пришлось убрать.

ПОЧЕМУ ПО ЧИСЛУ ТОЧЕК НИЧЕГО НЕ ПОНЯТЬчас с откруткой12 точек с цифрамичас простоя12 точек с нулямичас идёт сейчастоже 12 точек
Три разных случая, которые по числу точек выглядят одинаково. Считать по количеству нельзя, нужно смотреть на значения и на границу текущего часа.

Ловушка вторая: серии графика разъезжаются

У графика в кабинете есть своя беда, и ловит её всякий, кто снимает цифры оттуда. Серии там приходят под безликими номерами, и их состав не зафиксирован. В августе 2026 Telegram молча добавил серию про просмотры видео, и она сдвинула все следующие вправо.

Разбор, привязанный к номеру серии, после этого показывал ноль кликов, а клики выдавал за действия. Лечится тем, что серии надо читать по подписи. Мы после этого случая так и сделали.

Что вообще даёт разрез по часам

Три вещи, ради которых это всё и затевается.

Первое: профиль суток. Видно, в какие часы стоимость целевого действия предсказуемо выше, а в какие трафик идёт дешевле. Для закупщика это прямое решение, когда включать и выключать связку. Само расписание показов в Telegram Ads есть, включается прямо в объявлении. Чего нет, так это цифр под него: какие часы выключать, кабинет не подскажет.

Второе: ловля мусора. Ночной всплеск дешёвых переходов, которые потом не превращаются ни во что, виден именно на почасовом разрезе. На дневной точке он растворяется в общем среднем.

Третье: проверка гипотез по гео. Если вы льёте на несколько стран, разница в часовых поясах превращает «средний результат по кампании» в кашу, и разобрать её можно только по часам.

Как построить профиль суток руками

Если инструмента под рукой нет, минимальный вариант считается за вечер. Берёте пятиминутные срезы за три-четыре недели, складываете их в часы по каждому дню, а потом усредняете одинаковые часы между собой. Получается двадцать четыре числа: сколько в среднем стоило целевое действие в каждый час суток.

Две оговорки, без которых профиль соврёт. Во-первых, считайте в часовом поясе аудитории, свой тут ни при чём: если льёте на несколько стран, профиль придётся строить отдельно по каждой, иначе пики размажутся. Во-вторых, на двух неделях один выброс перекашивает целый час, особенно если объявление крутилось неровно: выходные и будни ведут себя совсем по-разному.

Часы, где действие стабильно дороже среднего и выборка не пустая, придерживаем расписанием. Часы, где дешевле, добавляем бюджет. Профиль стоит перепроверять хотя бы раз в месяц, потому что аукцион меняется, а вместе с ним меняются и пики.

Честные границы

Чего у нас самих пока нет: почасового разреза по гео и автоматического применения расписания по найденным пикам. Профиль суток, карта «день на час» и разрез по папкам кабинета есть, остальное в работе.

Ещё одна оговорка стоила нам ложной тревоги. Сравнивать «до и после» по свежим данным нельзя без паузы: замер, снятый сразу после действия, показывает состояние до него. Мы так однажды насчитали несуществующую поломку автоматики, а с задержкой в несколько минут цифры сошлись полностью.

Почасовой профиль по всем кабинетам сразу мы показываем в Zaliv на отдельной странице, посмотреть можно в демо без регистрации.

Источники

Zaliv - массовое создание объявлений в Telegram Ads
50 объявлений за пару минут, аналитика и автоматизация. 30 дней бесплатно.