Перейти к основному содержимому

Вкладка «Аналитика»

Аналитика показывает подтверждённое использование ботов, реальные сообщения, источники привлечения и рекламные бюджеты. Выберите проект и одного бота либо «Все боты». У каждого отчёта есть понятное определение показателя и доступные точные значения.

Быстрое начало​

  1. Выберите проект и при необходимости конкретного бота. Вариант «Все боты» показывает общую картину проекта.
  2. В шапке выберите период и, при необходимости, включите сравнение с предыдущим равным периодом в настройках отчёта.
  3. Откройте нужный раздел: «Аудитория и активность», «Источники трафика», «Самые активные», «Популярные действия» или «Состав и доступность аудитории». Название раздела сворачивает и раскрывает его карточки.
  4. Наведите указатель на график, чтобы увидеть значения; нажмите на точку, чтобы закрепить подробности. Нажатие вне графика и карточки закрывает выбранную точку.
  5. Для более подробного просмотра используйте кнопку разворачивания в карточке. Кнопка обновления запрашивает свежий снимок; обновление графика по таблице выполняется отдельно.

На узком экране шапку можно свернуть кнопкой «Свернуть шапку» и вернуть кнопкой «Показать фильтры». Дополнительные пояснения в компактной карточке могут быть скрыты; в развёрнутом виде и на широком экране доступно больше сведений.

Пример: выбранный час​

Если выбрать точку на дневном графике и нажать «Выбрать этот период», её точные границы применятся к общим фильтрам. Для окна до часа автоматический шаг составляет одну минуту; выбор другого шага в настройках имеет приоритет. Граница начала включена, граница окончания исключена: событие ровно в конечный момент относится к следующему окну.

Общий период и свежесть данных​

Период в шапке рядом с проектом и ботом действует на все отчёты активности, рейтинги, источники и рекламные результаты. По умолчанию выбраны последние 30 дней. Готовые окна — скользящие: «24 часа» означает последние 24 часа, а не сегодняшний календарный день.

На широком экране у графиков и рейтингов показаны фактические даты периода и часовой пояс; в компактных карточках используется общий период в шапке. Распределения текущих свойств аудитории вместо периода показывают дату снимка. График таблицы показывает период только при выбранной колонке даты; иначе подпись прямо указывает, что используются все текущие строки.

Для календарного отчёта выберите в шапке «Даты», задайте начало и окончание включительно и нажмите «Применить даты». Отдельных кнопок «Сегодня / Вчера» в рекламном блоке нет. Сегодняшний день учитывается до текущего момента.

Часовой пояс задаёт границы календарных дней и подписи дат. Он сохраняется для отчёта проекта в текущем браузере. Данные событий хранятся в UTC. В шапке видны фактические границы диапазона и пояс, поэтому одинаковые даты в разных поясах не выдаются за одно окно.

Детализация — размер одного интервала графика. Она выбирается отдельно от периода. Суточный шаг соответствует дню с 00:00 до 00:00 в выбранном часовом поясе. В поясах с переводом часов такие сутки могут длиться 23 или 25 часов; подсказка показывает фактические границы. Первый и последний интервалы обрезаются выбранным периодом. Автоматический режим подбирает подходящий шаг; чрезмерно подробный ряд ограничен 500 точками. «Всё время» показывает всю доступную историю с автоматическим укрупнением шага.

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

Рядом с фильтрами отображаются отдельно момент полученного снимка и доступность живого обновления. Открытое соединение не означает, что новый снимок уже загружен. Во время запроса есть состояние обновления, при ошибке — причина и повторная загрузка.

Кто считается пользователем бота​

Подтверждённое взаимодействие — одно из действий человека:

  • сообщение в личном чате, включая команду и медиа;
  • настоящее нажатие кнопки бота;
  • команда в группе, адресованная именно этому боту;
  • команда без адреса, принятая зарегистрированным обработчиком текущего бота;
  • ответ на сообщение именно этого бота.

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

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

ПоказательЧто означает
Новые пользователиПервое подтверждённое взаимодействие произошло в выбранном периоде
Восстановленная историяПервая дата сохранённого свидетельства взаимодействия попала в период, но настоящая дата начала использования неизвестна
Пользователи бота за всё времяЛюди с подтверждённым использованием бота, включая восстановленную историю; итог не ограничен выбранным периодом
Взаимодействовали за периодРазные люди с подтверждённым использованием бота в этом окне, включая сохранённые исторические свидетельства
Вернулись за периодИз взаимодействовавших в периоде — люди со свидетельствами использования бота до начала этого окна
Авторы сообщений в группахУникальные наблюдавшиеся авторы групповых сообщений за выбранный период; не общее число участников чатов

В режиме одного бота человек считается у этого бота. В режиме «Все боты» один Telegram ID учитывается один раз во всём проекте. Человек может быть новым для второго бота, но уже существующим пользователем проекта.

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

Главные карточки​

При полной и точной истории карточка «Новые пользователи» показывает людей с доказанной первой датой использования внутри выбранного периода.

Если период содержит восстановленные данные или ранняя история неполная, карточка «Новые пользователи» показывает первые сохранённые взаимодействия, а не обязательно точную дату прихода. Крупное число и единая синяя линия показывают людей с первым сохранённым направленным действием в этом периоде. Временная серия «Восстановленная история» и её отдельная разбивка убраны из визуального представления. В расчётах по-прежнему различаются:

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

Например, 260 восстановленных и 0 подтверждённых новых отображаются как 260 первых сохранённых взаимодействий. При смешанной истории, например 12 подтверждённых и 260 восстановленных, крупное число и единый ряд показывают 272. Это не утверждение о точном привлечении всех 272 человек: ограничения старых данных доступны внутри «Что это за график?», полнота записи — в свёрнутом блоке «О полноте данных» возле фильтров.

Если событий для восстановления нет и история неполная, вместо нулевого прихода показано «—» с объяснением. Крупный ноль показывается только для достоверно пустого периода. При включённом сравнении показана разница с предыдущим равным периодом по сохранённым данным; при неполной истории она может уточняться.

Восстановленные значения не включаются в точную стоимость привлечения и не переписывают подтверждённые источники. Когда найдены дополнительные сохранённые свидетельства, историческая аудитория и даты уточняются. Увеличение старого значения не означает, что эти люди пришли сейчас. Свидетельства использования не создают вымышленные сообщения или физические callback. В разделе кнопок режим «Нажатия» суммирует физические callback и аудированные исторические записи; режим «Люди» считает разных людей. В подробностях происхождение чисел разделено. Подписи кнопок объединяются по тексту, а не по нодам; секретные параметры не сохраняются.

При запуске конструктора сохранённая история всех проектов автоматически переносится в аналитику в фоне. Открывать проекты по очереди или запускать ботов для этого не нужно. Прогресс сохраняется между перезапусками, повторы не увеличивают показатели, а готовые данные появляются через живое обновление. Автоматический перенос не устанавливает неизвестную настоящую дату первого использования и не выдаёт старую статистику за точное привлечение.

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

«Сообщения» показывает сумму входящих сообщений людей и успешных отправок бота за тот же период. Переключатель «Все / Личные / Группы» выбирает область чатов; под графиком отдельно показаны входящие, ответы бота и нажатия кнопок. Нажатия не включаются в сумму сообщений и дополнительно разбираются в разделе «Популярные действия». Служебные события доступны в пояснении и не увеличивают сумму сообщений.

Исходящая отправка считается после успеха Telegram. Сообщения с медиа входят в поток наравне с текстом. Наблюдения одного физического группового сообщения несколькими ботами не дублируют это сообщение в проектном итоге.

«Активные пользователи» показывает линии всех взаимодействовавших, вернувшихся и подтверждённых новых за выбранный период, активных в каждом промежутке. Вернувшиеся имеют сохранённое взаимодействие до начала общего периода и снова использовали бота в этом периоде; они уже входят в число всех взаимодействовавших. Под графиком указаны уникальные люди за весь выбранный период и сколько из них вернулись. Накопление отключено, поскольку складывать уникальных людей по дням некорректно. Повторное действие человека, впервые пришедшего внутри выбранного периода, не делает его вернувшимся для этого же окна.

Графики и точные значения​

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

Нажмите точку, столбец или сектор кольца: под графиком закрепятся полное название, дата и точное значение. Подробности остаются открытыми при живом обновлении. Кнопка «Закрыть» убирает выбранную точку.

Список «Все значения графика» позволяет раскрыть ту же информацию с клавиатуры. Легенды кольцевых диаграмм также состоят из доступных кнопок с количеством и долей. Ноль, отсутствие истории, загрузка и ошибка не отображаются одним и тем же состоянием.

Группы и рейтинги​

Групповой отчёт показывает активные группы, авторов наблюдаемых сообщений и действия с ботами за выбранный период. Каналы не смешиваются с группами. Авторы сообщений — уникальные наблюдаемые люди, а не весь состав участников чатов.

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

Основной рейтинг групп строится по уникальным людям с направленными действиями. Режим «Наблюдаемая переписка» переключает только этот рейтинг на уникальных авторов доступных боту групповых сообщений. Отдельная карточка «Группы по сообщениям» ранжирует группы по числу наблюдаемых входящих сообщений, не по людям. Возможность наблюдения зависит от настроек Telegram, поэтому этот режим не обещает полную переписку группы.

Рейтинг пользователей показывает людей с наибольшим числом направленных сообщений и нажатий. Ответы самого бота и служебные события в рейтинг не входят. Одинаковые имена не объединяют разных людей.

Нажатие строки раскрывает состав действий и Telegram ID. Ссылка открывает диалог пользователя или группы. «Вернуться к аналитике» возвращает к тому же проекту; выбранные фильтры отчёта сохраняются.

Источники привлечения​

Динамика и распределение источников используют общий период. Источник первого привлечения, реферер и назначение входа хранятся отдельно. Рекламный переход может сочетаться с реферальной связью.

Источники первых сохранённых взаимодействий включают подтверждённых новых пользователей и восстановленную историю, сохраняя эти категории раздельно в данных отчёта (new_users и restored_users). Их сумма — первые сохранённые взаимодействия, а не точное число привлечённых людей. Неизвестный источник остаётся явно обозначенным. Восстановленные значения не входят в точную стоимость привлечения.

Если первое подтверждённое действие — нажатие кнопки в группе, источником становится «Группа · название»; при отсутствии названия виден ID чата. Аудированное историческое нажатие также может определить группу при известном ID чата, не устанавливая точную первую дату использования. Первое личное сообщение, /menu или сохранённое личное нажатие без метки относится к «Без метки источника». Если тип чата и происхождение установить нельзя, остаётся «Источник неизвестен».

Для старой истории метка после /start может восстановить источник первого сохранённого взаимодействия только из того же сообщения Telegram, которое подтверждает это взаимодействие. Совпадения имени человека или приблизительной даты недостаточно. Повторные сохранения одного сообщения не создают дополнительные входы.

Поздний /start с другой меткой — повторный вход. Он не превращает существующего пользователя в нового и не переписывает первоначальный источник. Возвращения по ссылке и повторные старты показываются отдельно. Последняя метка, записанная в профиле, не подставляется вместо источника первого взаимодействия. Если настоящая первая дата неизвестна, даже восстановленная метка не делает привлечение точным.

СостояниеЗначение
Без метки источникаВ событии отсутствовала метка; реальную внешнюю площадку установить нельзя
Источник неизвестенСохранённых сведений недостаточно, чтобы определить метку или место первого взаимодействия; это не утверждение об отсутствии метки
Реферальный переход, пригласивший не определёнНазначение известно, подтверждённого человека нет
Вход с сайтаПодтверждено назначение авторизации; рекламное происхождение может быть неизвестно

Наблюдаемая метка не равна зарегистрированному источнику или размещению. Произвольный ref, ref_* или число в параметре не доказывают существование реферера. Конструктор связывает пригласившего с подтверждённым пользователем проекта. Начисление реферальных наград здесь не выполняется.

Параметры действующего входа через link_ сохраняют своё назначение. Одноразовые коды входа не создаются рекламным конструктором и не становятся названиями источников. При восстановлении старых /start секрет исключается из наблюдаемых меток: он не копируется в аналитику, стандартные журналы, Redis, WebSocket или MCP. Назначение «вход с сайта» само по себе не доказывает рекламную площадку.

Конструктор ссылки и рекламный бюджет​

В «Источники и реклама» → «Создать ссылку» выберите бота и введите метку источника, например raspred. Ссылка https://t.me/<username>?start=raspred появится сразу. Её можно скопировать без сохранения формы и без рекламного бюджета. Источник появится в отчёте после запуска бота по ссылке; само создание или копирование ссылки не считается переходом.

Метка содержит от 1 до 64 латинских букв, цифр, дефисов и подчёркиваний. Префикс link_ зарезервирован для входа на сайт. Имя бота должно быть заполнено в настройках. Предпросмотр обычной ссылки не регистрирует метку и не проверяет конфликт маршрутов сценария на сервере.

Под ссылкой раскройте «Добавить рекламный бюджет · необязательно»: укажите сумму, RUB или USD и дату рекламного бюджета, затем сохраните. Только это действие записывает финансовые данные. Суммы вводятся точно до копейки; отсутствие бюджета не означает нулевую сумму.

В пользовательском интерфейсе используется единое понятие «Источник». В API и хранилище остаются технические сущности sources, placements, links, expenses: они нужны для связей и совместимости прежних интеграций. Отдельного обязательного шага создания размещения в простом конструкторе нет.

При первом сохранении бюджета сервер регистрирует метку и связанные данные. Проверяет принадлежность бота проекту, архивные записи и конфликты /start. Метки link_, ref и ref_* нельзя сохранять как рекламный бюджет. Конфликт маршрута блокирует всю операцию; сценарий не меняется автоматически.

Одна и та же метка у одного бота объединяет публикации. Повторное сохранение добавляет ещё одну финансовую запись, а не заменяет прежнюю. У уже созданного источника сохраняются прежние дата начала и часовой пояс: новая дата бюджета сама по себе не отделяет новую кампанию. Для независимой рекламы используйте новую метку. raspred и rapredd — разные метки.

При новой регистрации приход связывается с датой начала в сохранённом часовом поясе. Уже существующая историческая связь сохраняет свои прежние границы; для тестовых демонстрационных связей допускается исторический приход. Не следует обещать, что повторный бюджет автоматически исключит все прежние переходы той же метки.

Рекламный отчёт​

В «Результаты» автоматически видны и зарегистрированные, и обнаруженные по истории источники без бюджета. Просмотр отчёта не создаёт финансовых записей. Список включает источники без прихода в выбранном окне. В строке указано публичное имя бота, а не его внутренний номер.

КолонкаЧто считается
Новые / первые контактыПодтверждённые новые плюс первые сохранённые исторические контакты в окне; историческая часть подписана отдельно
ВернулисьУникальные люди, использовавшие бота до начала окна, которые в окне снова запустили его по этой метке
Расход, ₽ / $Записанный рекламный бюджет в каждой исходной валюте
Цена новогоБюджет, делённый только на подтверждённых новых при достаточной истории и подходящих границах

Обычное сообщение существующего человека не является возвратом по рекламной ссылке. Оно входит в «Взаимодействовали за период». Человек, впервые пришедший внутри выбранного окна и снова запустивший бота в этом же окне, не становится «вернувшимся» этого окна. Первый источник не переписывается: человек мог впервые прийти без метки, а через год вернуться по raspred. В этом случае raspred получает возвращение, а первоначальный источник остаётся прежним. Один человек может вернуться по нескольким меткам; сумма строк не равна уникальному итогу проекта.

Нажатие заголовка сортирует столбец по возрастанию или убыванию; отсутствующие суммы остаются внизу. Нажатие источника или пояснения цены раскрывает повторные запуски, пересчитанную сумму и причину ограничения. Это подробности расчёта, а не список людей.

Готовые периоды рекламного отчёта считаются по календарным дням: 7 дней — текущий и шесть предыдущих; 30 дней — текущий и 29 предыдущих; 12 недель — 84 дня; 12 месяцев — 365 дней. Часовые варианты показывают текущий календарный день. У рекламы есть собственная подпись точных границ; графики аудитории сохраняют скользящее окно. Явно выбранные даты не меняются. Режим «За всё время» снимает ограничение периода рекламной таблицы.

Пример для согласованного окна: 3 000 ₽ / 200 подтверждённых новых = 15 ₽ за нового пользователя. Неполная ранняя история, отсутствие бюджета, отсутствие новых либо обрезанный календарный день не дают точной цены. Нажатие пояснения раскрывает причину. Текущий день помечен «На текущий момент». Историческая тестовая цена с подписью «демо» не является точной стоимостью привлечения.

Валюты и изменения​

В «Добавить рекламный бюджет» можно выбрать существующий источник, сумму, валюту, дату, примечание и фиксированный курс. Для нескольких дней включите равномерное распределение, проверьте предпросмотр и подтвердите его. Сумма сохраняется до копейки, распределение помечается как оценка.

RUB и USD хранятся раздельно. Кнопка «Курс ЦБ на дату рекламного бюджета» получает бесплатный официальный курс Банка России — рублей за один доллар. В выходные фактическая дата действия курса может быть раньше даты запроса. Полученный курс можно изменить вручную; после сохранения он фиксируется для этой записи и не обновляет старые бюджеты автоматически. В простой форме бюджета под ссылкой курс не запрашивается: его можно указать позже через редактирование записи.

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

В «Ссылки и бюджеты» доступны сворачиваемый список источников, переименование и архивирование, сохранённые ссылки и история рекламных бюджетов. Переименование не меняет опубликованную метку. «Изменить» открывает форму выбранного бюджета; отмена сохраняет историю изменений. Архивирование не стирает прошлую аналитику.

Прямые Telegram-ссылки не сообщают о каждом открытии: здесь учитывается запуск бота, а не достоверные клики. CTR, выручка, прибыль и ROI не рассчитываются.

Состав и доступность аудитории​

Premium и языки — текущие свойства профилей подтверждённых пользователей за всё время. Это явно обозначенное исключение из общего периода. Язык означает настройку интерфейса Telegram, а не установленный язык общения человека.

Доступность личных сообщений показана отдельно от роста аудитории: доступны, заблокировали бота и удалённые аккаунты. Чисто групповое участие не доказывает возможность личной отправки.

«Проверить доступы» открывает выбор конкретного бота, в том числе из режима «Все боты». Проверяются только его личные диалоги. Проверка может на короткое время показать человеку статус «печатает…», но сообщения не отправляет. До запуска это объясняется в диалоге подтверждения.

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

График по таблице​

Конструктор сохраняет русские названия таблиц и колонок, выбор группировки X, значения Y, способа подсчёта и вида диаграммы. Для нечислового значения доступно количество записей; для числового — сумма, среднее, минимум и максимум.

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

Подсчёт выполняется на сервере. Показываются до 50 крупнейших групп; сокращение и сложные подписи обозначаются пояснениями. Полное значение выбранной категории раскрывается нажатием или через доступный список значений.

Живые обновления и хранение истории​

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

PostgreSQL хранит достоверные события и уведомления для восстановления. Redis служит для оперативного обмена между процессами. Его временная недоступность не должна стирать уже записанную аналитику; повторы доставки не удваивают значения.

Аналитические факты не содержат текстов переписки и кодов авторизации. Очистка диалога не удаляет новую статистику и рейтинги. Полное удаление данных человека и удаление проекта охватывают соответствующую аналитику. Архивирование бота сохраняет историю.

Старые боты и неполная история​

Для новой методики работающую сборку нужно заново сгенерировать и перезапустить. Изменение шаблонов панели само по себе не обновляет уже запущенного бота.

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

Исторические данные переносятся только в той части, которую можно доказать сохранёнными свидетельствами взаимодействия. Если свидетельство сохранено, но нельзя доказать, что оно было первым за всё время, его первая дата показывается в восстановленной истории. Один профиль без подходящих свидетельств не добавляет человека в этот график. Неизвестная настоящая первая дата не превращается автоматически в точное привлечение и не участвует в расчёте его цены. Аудированные старые записи кнопок учитываются в режиме «Нажатия» отдельно от физических Telegram callback. Они не превращаются в события с вымышленным Telegram ID.

API и MCP​

Вкладка, HTTP API и MCP используют одну методику и серверные расчёты. Снимок содержит время получения, версию и ограничения истории. Инструменты агентов работают в пределах тех же прав проекта; секреты ботов и авторизации в аналитические ответы не входят.

Параметры запросов, примеры, денежные decimal-строки и причины отсутствующих значений описываются в актуальной OpenAPI/Swagger документации и руководстве MCP.

Сохранение положения во вкладке​

Позиция прокрутки хранится в localStorage отдельно для проекта и выбранного бота. Открытый подраздел рекламы также сохраняется для проекта. Восстановление ждёт загрузки содержимого; ручная прокрутка прекращает автоматическое восстановление. Часовой пояс хранится в localStorage, общий фильтр периода — в sessionStorage текущей вкладки браузера. Это настройки браузера, а не синхронизация между устройствами. Сортировка рекламной таблицы живёт в открытом компоненте и отдельно в постоянное хранилище не записывается.

Связанные страницы​

Атомарный автоматический перенос истории​

После подготовки HTTP сервер выполняет оставшуюся сохранённую историю одной транзакцией: события, наблюдавшиеся источники и контрольные точки фиксируются вместе. До завершения другие соединения видят предыдущие данные; промежуточные результаты не публикуются. Ошибка или остановка откатывает весь текущий запуск, а повтор использует ранее завершённые контрольные точки. Новые сообщения не продлевают захваченные верхние границы. Чтение внутри операции ограничено по размеру, но промежуточных commit и пауз между порциями нет. Большой перенос может временно задерживать конкурирующую запись аналитики; PostgreSQL остаётся источником фактов, повторная доставка идемпотентна.

Автоматическое восстановление старых взаимодействий​

При запуске конструктора общий атомарный перенос обрабатывает все проекты и ботов: физические события, строгие свидетельства старых нажатий и адресных команд, затем метки /start. Все результаты публикуются одним commit. Повторный запуск использует сохранённые курсоры; новая история продолжает перенос без повторного подсчёта. Ошибка откатывает все три части.

Для автоматической политики используются строгая структура старой записи и текущий сохранённый username бота. Боты без корректного username пропускаются; для истории переименованного бота доступен отдельный перенос с явно проверенным историческим username. Fingerprint автоматического задания обозначает версию правил, а не наличие известной сборки у каждой старой строки. Обычная переписка групп и команды другому боту не подтверждают использование. Старые записи без Telegram callback ID сохраняются как исторические свидетельства, не как физические события; настоящая дата первого использования остаётся неизвестной.

В форме рекламного бюджета доступны оплаченные источники выбранного бота и рекламные метки, найденные в истории за всё время. Пункт «Новый источник…» позволяет ввести будущую метку до первых переходов. В пустой денежной ячейке отчёта кнопка «Указать» открывает форму с источником и валютой. Сохранение выполняется только явной кнопкой; курс и дата курса сохраняются вместе с бюджетом.

При наведении на временной график показываются дата или границы и значения за промежуток; в закреплённой карточке видны точные границы. Нажатие закрепляет подробности. Кнопка «Выбрать этот период» применяет эти границы ко всем отчётам вкладки и отображает время в шапке; календарь позволяет вернуться к полным дням. В накопительном режиме выбирается промежуток от начала графика до выбранной точки. Рекламный отчёт по-прежнему использует подписанные календарные дни.