Читайте в Телеграме, как писать и заказывать контент
Продолжая пользоваться сайтом, вы соглашаетесь на использование cookie
Хорошо

За 2 недели разработали телеграм-бота, чтобы автоматизировать отчеты о рекламных кампаниях

И экономить около 30% рабочего времени сотрудников
боты
разработка
Мы в Рыбе запускаем и ведем рекламные кампании в Яндекс ПромоСтраницах. Раз в неделю отчитываемся клиентам в телеграм-чате по просмотрам статей, по расходу бюджета и другим показателям. Рассказываем об основных успешных моментах, а полный отчет отдаем ссылкой в гугл-таблицах.

Нашим редакторам приходилось вручную переносить в гугл-таблицы все данные из рекламного кабинета ПромоСтраниц — так клиенту намного удобнее следить за процессом, чем разбираться в интерфейсе сервиса. Каждую цифру нужно было тщательно перепроверять, чтобы точно не ошибиться в данных. На отчет по одной кампании уходило больше часа, при этом одновременно мы ведем 4−5 клиентов. То есть за неделю редактор тратил 4−5 часов времени, а за месяц набегало минимум 16−20 часов.
Так выглядит наш отчет в гугл-таблице
Именно поэтому мы решили разработать телеграм-бота, который получает данные из рекламного кабинета ПромоСтраниц, а потом автоматически переносит их в гугл-таблицу и формирует сообщение с отчетом для клиента. Нужно было продумать интерфейс, чтобы всем редакторам было удобно пользоваться независимо от их навыков работы с разными сервисами.

И вот что мы для этого сделали.
Что мы сделали
Изучили API ПромоСтраниц и гугл-таблиц
API — это способ общения между двумя программами. С его помощью легко получать нужные данные с сервера. Можно представить, что API — это официант в ресторане. Мы говорим ему наш заказ и получаем блюда, а что происходит на кухне, нам неинтересно. Кухня — это сервер, в котором готовится информация согласно запросу через API.
Разобрались с API ПромоСтраниц. Площадка предлагает относительно простой API. Но сложность была в том, что документация на сайте Яндекса устарела и не соответствует действительности. Например, по API площадка передает показатель fullReadTimeSec — время дочитываний статей. Однако на сайте вообще нет объяснения, что это за показатель.

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

Создали скрипт для работы с гугл-таблицами. Мы зарегистрировали проект в Google Cloud и включили все нужные разрешения для API. Для работы с сервисом есть готовая библиотека gspread от сторонних разработчиков. С ней проще работать: код пишется быстрее, так как основные шаблоны уже есть внутри библиотеки. Это, например, как купить в магазине полуфабрикат, а не готовить блюдо самому.
Продумали функции для обработки и переноса данных
Вот какие задачи решили:

  • Привели данные в читабельный вид. Например, показатель CTR в таблицу мы переносим в виде 1,6%. Но из Яндекса он приходит в формате 0,1 634 529 830. Мы умножаем число на 100 и округляем до двух разрядов после запятой.

  • Удалили ненужные данные. В отчетах клиентам некоторые значения не требуются. Например, сюда входит ID кампании, визиты по Метрике, время дочитывания статей.

  • Провели вычисления. Яндекс отдает данные отдельно за каждый день, но нам они нужны за неделю или другой период — например, за три дня или месяц. Все показатели суммируем в отдельной функции.

  • Перевели данные в формат, подходящий для гугл-таблиц. Числа конвертируем в проценты, а строки, наоборот, в цифры. Если этого не сделать, данные в таблице могут отображаться в странном виде. Например, как 54,45,6 вместо 54,6.

  • Написали скрипт для обновления формул в гугл-таблице автоматически. В таблице показатели нескольких недель суммируются, либо вычисляется их среднее значение. Для таких задач есть формулы, но, когда добавляются новые кампании, их приходится обновлять. Чтобы не заниматься этим вручную, написали отдельный скрипт.
Разработали телеграм-бота и объединили все функции в один интерфейс
Когда код был готов, начали создавать телеграм-бота. Первым делом придумали функцию, чтобы доступ был не у всех, а только у редакторов. Так мы избегаем ситуации, когда сторонний пользователь может пользоваться ботом и формировать ненужные запросы к Яндексу. А еще это безопасно: не нарушаем NDA с клиентами, выставляя их данные публично. Разрешение на пользование бота может выдать только админ, и он защищен от взлома двухфакторной аутентификацией: для доступа нужно ввести пароль + код из СМС. Случайным пользователям бот ответит сообщением, что доступ запрещен.

Скрипт для запроса данных из ПромоСтраниц и заполнения гугл-таблиц подключили к телеграм-боту. Вот как он работает:

1. Выбираем из списка нужную рекламную кампанию.

2. Выбираем интервал отчета в календаре.

3. Получаем текстовый отчет по кампании и заполненную гугл-таблицу.

В процессе разработки значительно расширили и улучшили возможности бота.
В боте есть объяснения, какая кнопка за что отвечает
Продумали механизм, чтобы кампании добавлялись в базу данных бота одним кликом. Достаточно нажать на «Добавить кампанию». Тогда бот сам сходит в личный кабинет ПромоСтраниц, возьмет все новые кампании и добавит их в меню. Редактору не приходится обращаться к разработчику.
Список со всеми кампаниями выводится в виде кнопок меню. Можно щелкнуть на любую и добавить в активные, то есть записать в базу данных, чтобы легче формировать отчет
Сделали возможность удалять кампанию из списка активных. Бот по умолчанию показывает кампании, которые сейчас откручиваются. Но когда они останавливаются, формировать отчет уже не требуется. Убрать неактуальную кампанию из списка можно одним кликом, как и вернуть ее снова.

Автоматизировали создание гугл-таблицы для новых кампаний. Когда появляется новый клиент, нам нужно создать для него новую таблицу с отчетом. Этот процесс тоже выполняет бот. Редактор просто нажимает одну кнопку, и скрипт создает таблицу по шаблону. Так мы исключили человеческий фактор, когда сотрудник допускает ошибку и может сделать неверный шаблон для бота — в итоге данные заполнятся некорректно.

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

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

  • Ссылки на гугл-таблицы с отчетами хранятся в защищенной базе данных бота. Не надо искать ссылки и передавать.

  • Активные кампании тоже есть в базе данных. А новые бот подтягивает автоматически.

  • Интервал отчета указывается в календаре. Нет вероятности ошибиться и передать вручную, например, 122.07.2025 вместо 12.07.2025. В итоге не приходится потом искать ошибку и второй раз формировать отчет с правильными датами.
Сотрудник просто отмечает две даты: начало и конец отчета. Квадратными скобками выделен сегодняшний день
Результаты
За две недели мы разработали бота инхаус и автоматизировали рутинные задачи. Раньше на один отчет редакторы тратили около часа, а если в один день выпадало три отчета, уходило примерно 30% рабочего времени. Теперь редактор тратит не более 15 минут в неделю на всех клиентов: просто просматривает, какие кампании можно улучшить, какие стоит отключить. В месяц экономим сотрудникам десятки часов.

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

ДАВАЙТЕ ПОГОВОРИМ

Хотите, разработаем телеграм-бота под ваши задачи?

Все услуги редакции