Как с помощью чат-ботов и Python избавиться от рутины в отделах интернет-маркетинга
Делимся опытом о том, как мы автоматизировали отчетность и запустили ботов, предотвращающих слив бюджета. Статья будет полезна как агентствам, так и инхаус-командам.
Привет! Меня зовут Никита Сверчков, я занимаюсь автоматизацией и аналитикой в команде интернет-маркетинга ГК «Везёт». В этой статье мы поговорим о проблемах, которые были решены с помощью автоматизации, и об инструментах, которые нам в этом помогли.
До внедрения автоматизации мы наступали на одни и те же грабли: теряли деньги из-за ошибок в настройках кампаний, упускали клиентов из-за опечаток в номерах телефона рекламных объявлений, тратили много времени на рутинные составления отчетов.
Все эти проблемы, вызванные несовершенством систем (в том числе и биологических), нужно было решать. Всю рутину и дотошную проверку мы передали тем, кто в отличие от человека не устает на работе и не ошибается (почти), — алгоритмам и ботам.
Инструменты автоматизации
Сейчас наша инфраструктура выглядит так:
Прежде всего мы выгружаем данные из разных источников в наше хранилище. Часть этой работы берет на себя 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-таблицу.
Именно таким дедовским способом мы и делали отчеты для маркетологов каждого из более чем 100 городов, для бухгалтерии и для многих других коллег. Поэтому отчеты были первой задачей, которую мы решили.
Теперь скрипт генерирует все отчеты за 1 час и отправляет уведомления коллегам на почты. Ранее на эти задачу суммарно уходило около 6-8 полных дней двух наших специалистов ежемесячно.
Бот проверки номеров в «Яндекс.Директ» и Google Ads
Неактуальность телефонных номеров в визитках и расширениях объявлений — достаточно распространенная проблема. Заказчики часто их меняют, а если у вас более 100 кампаний в кабинете, то очень легко допустить ошибку в одной из них.
Несмотря на то, что люди не могут дозвониться до нужного оператора, реклама продолжает идти, а деньги тратиться впустую.
Решением стал телеграм-бот Андрей, который сверяет номер телефона во всех объявлениях с «Google Таблицей», содержащей список городов и соответствующих им номеров.
Обнаружив ошибку в номере, Андрей отправляет отчет в Telegram-канал наших специалистов по контекстной рекламе.
Бот отправки заявок
Бот Семён у нас отвечает за доставку заявок заказчикам и за оповещение, если что-то пошло не так. А пойти не так что-то может, особенно если заявки нужно доставлять с более чем ста лендингов на разные email, а также сразу в несколько CRM.
Куда и что доставлять Семён так же узнает из единой «Google Таблицы». Если не получилось отправить заявку на email, или после отправки в CRM она не появилась у менеджера соответствующего города, то мы получаем уведомление.
Проблемы с бюджетом
Но все эти боты, контролирующие рекламу и оберегающие нас от ошибок, останутся без работы, если вовремя не распределить выделенный бюджет.
Представьте: вы работаете в более чем 100 городах и в каждом используете по пять рекламных каналов, бюджет на которые разбивается по четырем направлениям: мобильное приложение, привлечение водителей, реклама номера телефона и медийку.
Получается матрица из более 5000 позиций бюджета! У каждого из элементов этой матрицы свой строгий KPI.
Чтобы спланировать такой бюджет, нужно зайти не менее 5000 раз в BI и на основе статистики за прошедшие периоды спрогнозировать расходы на будущий месяц для каждой позиции. Задача еще усложняется тем, что запланированные средства редко полностью совпадают с реальными тратами, как правило, бюджет или расходуется быстрее, или наоборот в конце месяца могут остаться средства.
Увеличить контроль над расходами и сократить время на прогноз бюджета нам вновь помогла автоматизация.
Прогноз бюджета
Python-скрипт раз в месяц обращается к статистике каждой кампании, агрегирует ее по направлению и с учетом прошлых остатков формирует прогноз расходов по каждому направлению и каналу.
Результаты все равно проходят ручную проверку, но скрипт экономит около одного рабочего дня двух наших коллег ежемесячно и в итоге получается такая таблица:
Бот контроля остатков
Расходы у нас контролирует Стас. Он оповещает о направлениях рекламы, где расходы вот-вот превысят бюджет или уже это сделали. Таким образом, он спасает наши рекламные кампании от значительного превышения месячного бюджета.
А вот коллега Стаса, Вероника, напоминает о направлениях, где бюджет заложен, но реклама почему-то не запущена — такое тоже бывает и во многом тормозит выполнение KPI.
Бот проверки названия кампаний и UTM-меток
Название рекламной кампании — это незаменимый источник данных для систем автоматизации, ведь в ней можно зашифровать важные параметры: город, бренд, тип аудитории, платформа (iOS, Android, сайт) и др.
Чтобы скрипты и боты не запутались во всех этих параметрах, нужна их систематизация, принятие единых правил нейминга для всех каналов.
За исполнением этих правил следит уже знакомый вам бот Андрей. Он проверяет все названия рекламных кампаний и UTM-метки на наличие обязательных параметров и сообщает нам о найденных ошибках.
Бот контроля «Google Таблиц»
У нас есть две таблицы, в которые вносят изменения многие коллеги, отвечающие за разные города и направления. Данные из этих таблиц поступают в наше аналитическое хранилище и затем используются в отчетах нашими ботами. Речь идет о таблице с бюджетом и с общей информацией о городах.
Так как доступ на изменение таблиц есть у многих коллег, а формат данных в них очень строг (иначе боты не смогут их понять), то и контроль крайне необходим. Решением стал бот Антон. Он проверяет чтобы в колонках с бюджетом были цифры, а в полях с почтами региональных маркетологов — email-адреса. Также он оповещает о расхождениях с историческими данными.
Со временем стало понятно, что ботов у нас стало слишком много, и возник риск появления ненужного информационного шума, поэтому мы попытались придумать общий стандарт их работы.
Три закона бототехники
Правила, которые мы со временем сформулировали:
- Бот оповещает только заинтересованное лицо и не беспокоит своими уведомлениями других коллег.
- Бот не дублирует функции BI и систем Web-аналитики. Его задача — точечно указывать на проблемы.
- Бот пишет только тогда, когда возникает проблема. То есть он не отправляет уведомления, если ошибок не обнаружено.
Благодаря снижению информационного шума увеличилась ценность каждого уведомления, и снизился риск пропуска важного сообщения.
Заключение
Хотелось бы рассказать и про сквозную аналитику, но ее построение в сервисе заказа такси заслуживает отдельной истории, а рассказ про ботов и автоочетность в интернет-маркетинге подошел к концу. Спасибо всем кто дочитал — вы большие молодцы!
Напишите в комментариях, что вы бы автоматизировали в своей работе? Какие боты могли бы помочь вам?
если это не топ-статья, then I don't know what it is!
Гуси-гуси, га-га-га, русский с инглишем тудэй? Ну а хули, евридей!
если это не жоғарғы-статья, онда оның не екенін білмеймін!
Отличная статья, Никита! Прочитал и аж слезу пустил, вспоминая, как мы всё это "рожали". Жду появления моего бота))
Привет всей digital-команде «Везёт» ❤️
Комментарий недоступен
Автоматизация это круто (почти всегда). Надеюсь, люди не в обиде за то, что их заменили ботами
Первое, что теперь надо писать боту Зови человека или звонить в тех поддержку. По сути просто усложнили взаимодействие с тех поддержкой. Все равно чаще всего боты непродуманные (удобные исполнителю, а не заказчику). Пройдет еще лет 10 когда компании догадаються заказыватььвнешний аудит. Короче печально все это.
Супер! Пример отлично проделанной работы. Эффект и польза несомненны.
А что если ботов зовут также, как и сотрудников, которые выполняли эту работу)
Т.е. раньше это были скрипты, а теперь боты, ну ок )
Делаем бота, чтобы он позвал другого бота. Бюрократия ботов 😁
Классная статья, спасибо ребят :)
А если серьёзно, то жду выхода этой статьи ещё с того момента, как ты попросил меня сделать это фото. Вы большие молодцы.
Теперь и мне захотелось своего бота)))
Комментарий удален модератором
Вообще, это не статья, а еще бизнес идея. Представьте компанию, которая создает для других компаний такие интегрированные роботы.
В чем проблема написать самим, такое с базовыми познаниями py сделать можно.
Комментарий удален модератором
Шикарная автоматизация, хорошая статья!
Отличные примеры автоматизации рутинных действий!
Спасибо за кейс, интересно! Справедливости ради, автоматизационные фичи также доступны во внешних сервисах и инструментах вроде биддеров и оптимизаторов конверсий.
Демонстрация конкурентного преимущества в чистом виде
Идея автоматизации мне нравится, спасибо автору
Комментарий недоступен
Комментарий удален модератором
Странно, что вы еще не сделали бота создающего ботов.
Ну и не загрустите там, когда руководство посчитает, что теперь смысла в людях нет.
Чтобы роботы полностью заменили людей, людям нужно научится четко и понятно формулировать задачи. Поэтому, мы в полной безопасности)
Ну и не загрустите там, когда боты посчитают, что теперь смысла в людях нет.
Боты обиделись, но научились ставить минусы...
В качестве бота Антон мне нравится больше )))))
0_0
Комментарий недоступен
Комментарий недоступен
Всё же шанс глюка GDC ниже, чем шанс человеческого фактора.
Комментарий недоступен
неплохо
У меня предметный вопрос.
Есть ли у Вас сложные отчеты со сложным оформлением? Типа три-четыре группировки по горизонтали и несколько по вертикали с не прогнозируеммыми временными рядами и итогами по ним? это моя головная боль. пока что спасает самописный плагин для pandas и pivot table. ибо на xlsxwriter это всё писать слишком дубово. может у вас какие-то иные механизмы задействованы?
Не до конца понял ваш вопрос, можете написать в лс более подробнее?
Вам не кажется, что Бот Антон - который проверяет Доксы на валидность данных, вообще излишен, можно сделать это стандартной проверкой по столбцу.
Данные - Настроить проверку данных.
Ну то есть, тогда не искать ошибку, а сразу ругнуть пользователя, чтобы поправил.
Или мы чего то еще не знаем про Антона ?))
Вы правы, у Антона есть и более сложная миссия, — он следит за согласованностью данных между «Гугл Таблицами» и DWH. Например, он проверяет, чтобы все города, по которым когда-либо шла реклама, присутствовали в таблицах.
Согласен с вами, что функция Антона по валидации часто не востребована из-за настроек проверки данных в самих таблицах, но, к сожалению, бывали и исключения. Например, когда при создании новой вкладки с бюджетом настройки проверки данных «слетали». Тогда Антон приходил на помощь.
Ничего не понятно, но очень интересно!
Откройте для себя уже волшебный мир No_Code, начните с Integromat, например.
А вы не задумывались, что это лишний посредник в вашем рабочем процессе, причем влиять на его качество и принципы работы вы по сути не можете. В результате чего у вас появляется избыточное звено, причем под работу которого вам необходимо подстраиваться, а самое главное в вашем процессе появляется дополнительное неизвестное, которое может "упасть" в один прекрасный момент или просто сменить принцип работы после выхода очередного обновления, после чего выстроенная вами цепочка перестанет работать так как это предполагалось.
Для небольших компаний, которые ограничены в различного рода ресурсах, это вполне оправданное решение, но для серьезных компаний, в которых есть необходимые специалисты, подобное решение абсолютно не оправдано, я про "No_Code"... но это на мой взгляд ;)