Как с помощью чат-ботов и Python избавиться от рутины в отделах интернет-маркетинга

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

Как с помощью чат-ботов и Python избавиться от рутины в отделах интернет-маркетинга

Привет! Меня зовут Никита Сверчков, я занимаюсь автоматизацией и аналитикой в команде интернет-маркетинга ГК «Везёт». В этой статье мы поговорим о проблемах, которые были решены с помощью автоматизации, и об инструментах, которые нам в этом помогли.

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

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

Инструменты автоматизации

Сейчас наша инфраструктура выглядит так:

<i>Схема работы с данными</i>
Схема работы с данными

Прежде всего мы выгружаем данные из разных источников в наше хранилище. Часть этой работы берет на себя myBI Connect — удобный и недорогой сервис, работающий с основными инструментами интернет-маркетинга. В некоторых случаях пришлось писать и собственные скрипты для выгрузки данных на Python, например для:

  • FraudScore, чтобы формировать отчеты в BI по фрод-установкам;
  • Braze для анализа эффективности push- и in-app-сообщений в BI;
  • Турбо-страниц «Яндекс.Директ» для отправки заявок в CRM или на почты менеджеров, также заявки нужны для построения воронки до зарегистрированного водителя;
  • Лидформ Facebook, Instagram, ВК, «Однокласников» — то же самое, что и с турбо-страницами.

Также сохраняем данные с некоторых «Гугл Таблиц». Они понятны и привычны для большинства коллег, все значения этих таблиц выгружаются с помощью Python-библиотеки pygsheets.

Кстати, если говорить о Python, то это основа всей нашей автоматизации, так как язык очень удобен для работы с данными: совместно с библиотеками Pandas, Numpy и SQL мы выполняем большую часть задач.

А вот Telegram очень хорош для вывода важных оповещений с помощью ботов. Создать их и получить API-токен для управления из того же Python не составит труда, нужно лишь написать @BotFather. Более подробнее об этом можете найти в инструкции:

Дальше мы поговорим о том, как все это нам помогает решать конкретные задачи.

Отчётность

Если бы мы создавали список «Топ-10 способов неэффективной траты времени», то на первом месте определенно были бы отчеты, а именно ручное их создание. Да что уж говорить — рейтинг самых нудных задач возглавляли бы тоже они.

Представьте: каждые две недели вы 3-4 рабочих дня только и делаете, что копируете цифры из рекламных кабинетов, систем аналитики и CRM в сводную excel-таблицу.

<i>Инструменты создания отчетов до автоматизации</i>
Инструменты создания отчетов до автоматизации

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

Пример автогенерация отчета с демо-данными, наши дни

Теперь скрипт генерирует все отчеты за 1 час и отправляет уведомления коллегам на почты. Ранее на эти задачу суммарно уходило около 6-8 полных дней двух наших специалистов ежемесячно.

Бот проверки номеров в «Яндекс.Директ» и Google Ads

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

<i>Пример номера телефона в «Яндекс.Директ»</i>
Пример номера телефона в «Яндекс.Директ»
<i>Номер телефона в «Google Ads»</i>
Номер телефона в «Google Ads»

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

Решением стал телеграм-бот Андрей, который сверяет номер телефона во всех объявлениях с «Google Таблицей», содержащей список городов и соответствующих им номеров.

<i>Оповещение от бота проверки номеров телефона</i>
Оповещение от бота проверки номеров телефона

Обнаружив ошибку в номере, Андрей отправляет отчет в Telegram-канал наших специалистов по контекстной рекламе.

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

Бот отправки заявок

Бот Семён у нас отвечает за доставку заявок заказчикам и за оповещение, если что-то пошло не так. А пойти не так что-то может, особенно если заявки нужно доставлять с более чем ста лендингов на разные email, а также сразу в несколько CRM.

Куда и что доставлять Семён так же узнает из единой «Google Таблицы». Если не получилось отправить заявку на email, или после отправки в CRM она не появилась у менеджера соответствующего города, то мы получаем уведомление.

<i>Отчет об отправленных заявках на email</i>
Отчет об отправленных заявках на email

Проблемы с бюджетом

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

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

Получается матрица из более 5000 позиций бюджета! У каждого из элементов этой матрицы свой строгий KPI.

<i>Структура нашей рекламы</i>
Структура нашей рекламы

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

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

Прогноз бюджета

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

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

Пример таблицы с бюджетом (демо-данные). Расшифровка колонок для «Google Ads»: google_app — реклама приложения, google_drive — привлечение водителей, google_click — реклама сайта пассажиров, google_med — медийная реклама
Пример таблицы с бюджетом (демо-данные). Расшифровка колонок для «Google Ads»: google_app — реклама приложения, google_drive — привлечение водителей, google_click — реклама сайта пассажиров, google_med — медийная реклама

Бот контроля остатков

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

<i>Стас сообщает о выходе рекламы за рамки бюджета</i>
Стас сообщает о выходе рекламы за рамки бюджета

А вот коллега Стаса, Вероника, напоминает о направлениях, где бюджет заложен, но реклама почему-то не запущена — такое тоже бывает и во многом тормозит выполнение KPI.

<i>Вероника формирует отчет в «Гугл Таблице» и скидывает ссылку на него в Telegram</i>
Вероника формирует отчет в «Гугл Таблице» и скидывает ссылку на него в Telegram
<i>Пример одного из отчетов Вероники со списком незапущенной вовремя рекламы</i>
Пример одного из отчетов Вероники со списком незапущенной вовремя рекламы

Бот проверки названия кампаний и UTM-меток

Название рекламной кампании — это незаменимый источник данных для систем автоматизации, ведь в ней можно зашифровать важные параметры: город, бренд, тип аудитории, платформа (iOS, Android, сайт) и др.

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

<i>Пример названия кампании с расшифровкой параметров</i>
Пример названия кампании с расшифровкой параметров

За исполнением этих правил следит уже знакомый вам бот Андрей. Он проверяет все названия рекламных кампаний и UTM-метки на наличие обязательных параметров и сообщает нам о найденных ошибках.

<i>Пример оповещения Андрея об ошибках в названии кампаний и UTM-метках</i>
Пример оповещения Андрея об ошибках в названии кампаний и UTM-метках

Бот контроля «Google Таблиц»

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

<i>Таблица с общей информацией о городах (демо-данные)</i>
Таблица с общей информацией о городах (демо-данные)

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

<i>При появлении некорректных данных в таблицах приходит такое уведомление</i>
При появлении некорректных данных в таблицах приходит такое уведомление
<i>Пример отчета Антона</i>
Пример отчета Антона

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

Три закона бототехники

Правила, которые мы со временем сформулировали:

  1. Бот оповещает только заинтересованное лицо и не беспокоит своими уведомлениями других коллег.
  2. Бот не дублирует функции BI и систем Web-аналитики. Его задача — точечно указывать на проблемы.
  3. Бот пишет только тогда, когда возникает проблема. То есть он не отправляет уведомления, если ошибок не обнаружено.

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

Заключение

Хотелось бы рассказать и про сквозную аналитику, но ее построение в сервисе заказа такси заслуживает отдельной истории, а рассказ про ботов и автоочетность в интернет-маркетинге подошел к концу. Спасибо всем кто дочитал — вы большие молодцы!

Напишите в комментариях, что вы бы автоматизировали в своей работе? Какие боты могли бы помочь вам?

125125
41 комментарий
250 ₽

Автоматизация это круто (почти всегда). Надеюсь, люди не в обиде за то, что их заменили ботами

5
Ответить

если это не топ-статья, then I don't know what it is!

24
Ответить

Гуси-гуси, га-га-га, русский с инглишем тудэй? Ну а хули, евридей! 

32
Ответить

если это не жоғарғы-статья, онда оның не екенін білмеймін!

15
Ответить

Отличная статья, Никита! Прочитал и аж слезу пустил, вспоминая, как мы всё это "рожали". Жду появления моего бота))

Привет всей digital-команде «Везёт» ❤️  

9
Ответить

Комментарий недоступен

6
Ответить