Рекламное агентствоСистема передана сотрудникам заказчика

От идеи мониторинга рекламы конкурентов до сервиса с платным доступом

Руководитель департамента рекламного агентства решил проверить спрос на собственный сервис мониторинга рекламы конкурентов. Я разработал парсеры веб-рекламы, сбор из соцсетей по API и путём парсинга реальных страниц, бэкенд приема и обработки данных с мобильных устройств и веб-сервис с тарифами, пробным доступом и разными способами оплаты. Сначала продукт использовали в агентстве, затем доступ стали покупать внешние клиенты. Оценив экономику масштабирования, компания решила сохранить сервис для внутренних задач.

Заказчик
Руководитель одного из департаментов рекламного агентства
Моя роль
Определение источников данных и нужных специалистов; разработка веб-сбора, бэкенда и пользовательского сервиса
Команда
За сборщики на устройствах отвечали мобильные разработчики. Я реализовал веб-сбор, прием данных, их обработку и веб-сервис
Статус
Систему передал команде компании для дальнейшей поддержки и внутренних задач
Задача

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

Моя работа над проектом

Определил доступные источники данных и помог выбрать состав команды. Разработал веб-парсеры, сбор из соцсетей по API и путём парсинга реальных страниц, бэкенд приема и обработки данных, а также веб-сервис с тарифами, пробным доступом и несколькими способами оплаты.

Результат

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

Проверка спроса на собственный сервис мониторинга

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

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

Источники данных и разделение разработки

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

Мобильные разработчики создавали программы для устройств: они собирали рекламу и отправляли ее на мой бэкенд. Я писал парсеры веб-креативов и интеграции с API площадок, в том числе для сбора рекламы из социальных сетей по API и путём парсинга реальных страниц, и бэкенд приема данных с фермы мобильных устройств.

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

Физические устройства и ограничения стартового бюджета

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

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

Я выстраивал сбор с учетом этих ограничений. Вместо попытки охватить всю доступную рекламу мы сосредоточились на нескольких нишах и источниках. Именно с таким объемом данных продукт вышел к первым покупателям.

Пользовательский сервис и платный доступ

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

Сначала сервис использовали сотрудники агентства. Затем руководитель начал продавать доступ внешним клиентам. Так мы получили ответ на вопрос о готовности покупать продукт: у него появились реальные платящие пользователи. Это еще не отвечало на вопрос об экономике дальнейшего масштабирования.

Как архитектура менялась вслед за объемом данных

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

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

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

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

Решение о дальнейшем использовании

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

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

С этим же руководителем я работал над другой проверкой продуктовой идеи: новостным приложением с собственной рекламной платформой. Другие направления моей работы представлены на странице разработки для рекламы и performance-маркетинга.

Для каких задач полезен этот опыт
  • Нужно проверить спрос на продукт, построенный на данных: запустить версию для клиентов с тарифами, пробным доступом и оплатой.
  • Информация поступает через парсеры, API площадок и мобильные сборщики. Ее необходимо объединить, очистить от дублей и классифицировать.
  • Объем данных растет, а нестандартные фильтры, многоуровневая группировка и статистика по выбранным группам требуют пересмотра хранения и обработки запросов.
  • На старте важно соотнести охват источников с бюджетом и выбрать реалистичный объем сбора.

Нужно решить похожую задачу?

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

Обсудить вашу задачу

Что вы хотите решить?

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

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

Александр Чадаев

Указать сроки и приложить материалы

Приложите ТЗ, скриншоты, примеры документов или другие материалы. Не более 10 файлов общим объёмом до 20 МБ.

Обсудить вашу задачу Telegram