Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

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

Было сложно, приходилось не раз переписывать логику и перестраивать работу API. Скорее всего, это связано с тем, что изначально не было четкого плана, что именно должна делать система «на выходе».

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

PPC waves bot

@PPC_waves_bot — это продолжение и улучшение бота, который был раньше. Хочу познакомить вас с основным функционалом.

Бот умеет работать с двумя типами аккаунтов:

  1. По прямому логину/паролю. Если аккаунт привязан к личной почте.
  2. Через управляющий аккаунт. Если нужно добавить кабинет, который привязан к вашему логину через «представителя».

После подвязки вы попадаете в главное меню.

Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

99% времени я работаю с двумя разделами: управление аккаунтами и оптимизация.

Управление аккаунтами

Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

По сути это карточка вашего кабинета. Здесь можно добавить Google таблицу, счетчик Метрики и конкретные цели, настроить выгрузку по расписанию и прикрепить ссылку на дашборд в DataLens.

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

Выгрузка задействует сразу два API: Директа и Метрики. На выходе получаем два отчета: кастомный (за все время) и по поисковым запросам (за последние 30 дней). Скрипт сам создает нужные вкладки в вашей таблице и заполняет их.

Пришлось повозиться со стыковкой данных. В коде я реализовал каскадную проверку: если данные не удается сопоставить по конкретному объявлению, бот пытается найти их по связке «кампания + пол + возраст + устройство». Это помогает собрать максимально полную статистику.

Также реализована возможность задать автовыгрузку по расписанию. Они довольно гибкие, можно выбрать удобное время выгрузки.

Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

Оптимизация

Этот раздел включает функции, которые облегчают рутину специалиста.

Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

Запрет РСЯ площадок

Бот присылает площадки, которые попадают под заранее созданные вами правила. Вы можете запретить площадку прямо из бота добавив эту площадку в запрет показов.

Например вы создали правило, чтобы бот присылал вам площадки, в которых было больше 5 кликов и процент отказов по ним более 50%

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

Добавление минус-фраз

Функция отслеживает поисковые запросы и автоматически добавляет минус-фразы в настройки кампании.Чтобы бот работал точнее, я добавил библиотеку для лемматизации слов (приведение к начальной форме). Теперь, если в вашем списке есть слово «форум», бот поймет, что запросы со словами «форума» или «форуме» тоже нужно заминусовать.

Работа идет с двумя списками:

  • Общий: фразы, которые не зависят от бизнеса (как, почему, форум, фото и т.д.).
  • Индивидуальный: слова под конкретного клиента.

Автоправила

Работает так же, как чистка РСЯ, но для кампаний, групп, объявлений и корректировок ставок (пол, возраст, устройства).Я сделал так, чтобы не нужно было высчитывать коэффициенты. Пишете -40 — ставка снижается на 40%, пишете 0 — объект отключается.

Чтобы бот не заваливал уведомлениями об одном и том же, я привязал базу данных. Бот сохраняет состояние метрик и пришлет уведомление только в том случае, если данные изменились.

Быстрая проверка

Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

Это автоматический аудит. Система собирает данные через API и ищет опечатки (через Яндекс.Спеллер), проверяет UTM-метки, цели и корректность ссылок. В итоге вы получаете Excel-отчет, где проблемы распределены по вкладкам.

Аналитика и DataLens

Не вижу смысла просто выгружать данные, если с ними не работать. Я использую их для визуализации в DataLens. Ссылку на отчет можно прикрепить прямо в боте.

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

Сделал телеграм-бот для автоматизации рекламных кампаний в Я.Директ. Часть 2

Монетизация

Сначала была идея сделать подписку, но я решил, что бот будет бесплатным для всех.

Считаю, что монетизировать контент, сделанный не совсем моими «мозгами» (из-за помощи ИИ), не очень правильно. К тому же, вводя оплату, я должен брать ответственность за поддержку продукта и прислушиваться к мнению каждого пользователя по новым фичам. У меня на это нет времени.

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

Немного про ИИ

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

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

Что касается моделей, я остановился на Gemini 3.5 Pro. За время создания проекта я всем сердцем возненавидел платный ChatGPT. По моему субъективному мнению, это самая тупая модель из тех, что я пробовал. А вот Google очень порадовал.

Советы напоследок

  1. Продумайте каждую функцию. Вы должны четко понимать, что делает скрипт, как считает и что делать, если случится непредвиденная ситуация.
  2. Изолируйте функции друг от друга. Старайтесь делать их максимально независимыми. Когда вы будете в десятый раз переписывать функцию, которую ИИ случайно испортил, потеряв контекст, вы оцените этот подход.
  3. Используйте базу данных для истории. Хранение результатов в БД (как в моем случае с журналом изменений) позволяет избежать спама уведомлениями и дает возможность смотреть динамику действий.
1
Начать дискуссию