Привет Хабр! Меня зовут Вячеслав Сухоруков, я backend-инженер в отделе разработки. Платформа аналитики в Авито. В этой статье я рассказываю о том, как мы писали сервис Marketing Manager (MM) для размещения данных в рекламных системах. Вы узнаете, что умеет наш менеджер, как это работает и как это решение экономит время маркетологов.

В «Авито» мы привлекаем ликвидность с внешних рекламных площадок и оптимизируем этот процесс за счет возврата инвестиций (ROI, возврат инвестиций). Для этого мы передаем в рекламные системы целевые события, например контакты по статье (статья — реклама, товар и т. д.). А они, в свою очередь, используют эти данные на аукционе в реальном времени для пользователя.

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

Проблемы с текущим подходом к стороннему SDK

Все существующие проблемы подхода, от которых мы хотим отойти, можно сгруппировать в три группы:

Согласованность данных:

  • источником событий часто является микросервис, а не фасад;

  • Оптимизируем под прокси-метрики, а не целевые, т.е. мы можем инициировать отправку только на основе действий, происходящих в пользовательском интерфейсе;

  • Мы не учитываем антиботовые механизмы.

Ресурсы и трудности:

  • предварительная поддержка сторонних библиотек и доработка мероприятий после каждого выпуска продукта;

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

  • Высокий ТТМ, цикл релизов со 100% развертыванием на iOS/Android — от 2 месяцев.

ЧИТАТЬ  И.Сечин будет возглавлять «Роснефть» еще как минимум пять лет

Пояснение по второму пункту, о нехватке ресурсов. Здесь есть две проблемы:

  • маркетологу необходимо знать, что появилась новая функция;

  • Маркетинговому аналитику необходимо найти ресурсы для добавления стороннего кода для своей маркетинговой компании.

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

Риски:

  • закрытие внешних инструментов из-за санкций. Наша платформа позволяет максимально быстро переключить поток событий на альтернативный инструмент;

  • риски конкурентного шпионажа;

  • Ухудшение показателей производительности и наличие стороннего SDK «зоопарка» влияют на время загрузки страницы, увеличивают TTI и генерируют дополнительные сетевые запросы.

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

Архитектура высокого уровня

Архитектура высокого уровня

Схема работы

События из источников отправки (сервисы, интерфейсы, мобильные приложения) собираются через поток кликов, а затем проходят через основную задачу обогащения флинка и задачу обогащения службы Marketing Manager. После этого они классифицируются по темам: для каждого рабочего стола отдельная тема. При чтении событий из темы для аккаунта создается сообщение на основе события и связанных с ним правил трансформации. Затем сообщение отправляется на аккаунт.

Гарантии и ограничения

Гарантии доставки — хотя бы один раз («хотя бы один раз»). Переживаем аварию за 2 дня без потерь, реализовав сохранение Kafka. Если возникнут проблемы в приемных или в конвейере обогащения, мы постараемся отправить мероприятие бесконечно. Это позволяет пережить значительный период министерской нестабильности, но накладывает определенные ограничения:

  • события дублируются;

  • Если возникнут проблемы в офисе, мы не пропустим мероприятия; поэтому мероприятие может «приехать» в офис с опозданием. Если событие не будет отправлено в течение 2 дней, оно будет потеряно. Это достигается путем настройки политики ожидания отправки запросов во внешнюю систему.

ЧИТАТЬ  Маркетинг хоккейного клуба в России с точки зрения ИТ-директора

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

Возможности инструмента

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

  • настроить экспортированные сообщения на основе данных о событиях;

  • фильтрация экспортируемых данных на двух уровнях (учетная запись и сообщение). Фильтрация на уровне аккаунта может быть полезна, если вам не нужны события со всех платформ (desktop_site, mobile_site, iOS, Android). Фильтрация на уровне сообщений может потребоваться, если в событии есть определенные данные, требующие дополнительной логики фильтрации;

  • управлять активностью отправки через панель администратора;

  • контролировать поток отправляемых данных;

  • поддержка различных рекламных систем и возможность быстрой передачи отправлений при необходимости.

Пример экспорта в VK Ads

В рамках перехода со стороннего SDK на S2S-события маркетинговой команде необходимо было настроить экспорт данных, зафиксированных в событиях кликстрима, на десктопную и мобильную версии сайта Авито.

Сначала мы создали фильтр для всего аккаунта (скриншот ниже), который просматривает все входящие события и проверяет, что значение системного поля business_platform равно одному из значений: Desktop_site или mobile_site.

Фильтр уровня шкафа

Фильтр уровня шкафа

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

В результате нам удалось создать n-ное количество сообщений на основе событий кликстрима для экспорта в VK Ads.

ЧИТАТЬ  App Store скоро станет необязательным на некоторых iPhone | Цифровые тенденции
Таблица экспортированных сообщений с основной информацией

Таблица экспортированных сообщений с основной информацией

Конфигурацию экспортируемого сообщения можно разделить на следующие блоки (даже если это происходит на одной странице):

1) введите имя, выберите событие и выберите шаблон:

Форма создания нового сообщения

Форма создания нового сообщения

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

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

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

Пример действия, выбранного для поля «u»

Пример действия, выбранного для поля «u»

Пример действия, выбранного и настроенного для поля «u»

Пример действия, выбранного и настроенного для поля «u»

3) после заполнения полей страница станет доступна для сохранения и значки ключей рядом с ней станут синими.

Полностью завершенная схема

Полностью завершенная схема

4) чтобы сохранить и начать отправку, необходимо поставить галочку активности и нажать кнопку «Сохранить».

Выводы и проекты

Появление ММ позволило маркетологам проверить ряд гипотез, связанных с переходом от SDK к S2S (сервер к серверу) и сделать следующие выводы:

  • События S2S — эффективная альтернатива событиям SDK; они не ухудшают ключевые показатели маркетинговой команды;

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

Помимо выводов, полученных на основе проверенных гипотез, был решен ряд вопросов. А внедрение ММ позволило:

  • отказаться от ненужного кода на фронтах;

  • сократить ТТМ настройки экспорта с двух месяцев (цикл релиза на iOS/Android) до нескольких дней;

  • предоставить гарантию очистки ленты роботами через онлайн-антибот.

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

Спасибо, что уделили время этой статье! Если у вас есть вопросы или вы хотите поделиться опытом разработки и использования менеджеров, подобных нашему ММ — добро пожаловать в комментарии.

Также подпишитесь на Телеграм-канал АвитоТехТам мы подробнее рассказываем о профессиональном опыте наших инженеров, проектах и ​​работе на Авито, а также анонсируем встречи и статьи.

Source