Авторизация
Забыли пароль?
Сброс пароля
Вернуться к авторизации

От легаси-системы к единому приложению для медиапланов: кейс федерального агентства радиорекламы

15 сентября ‘26

Заказчик: PWD
Страница кейса/результат: https://pwd.ru/blog/bitriks24/radio-media-planning-system/

Как мы перенесли 10+ лет данных, обновили интерфейс и собрали работу с прайс-листами радиостанций в одной системе.

Агентство-исполнитель кейса

PWD

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

1. Вводная задача от заказчика, проблематика, цели

Федеральное агентство радиорекламы занимается размещением сетевой и мультилокальной рекламы на радио, а также рекламой в Digital Audio. Для такого бизнеса прайс-лист радиостанции - не просто файл с ценами, а основа будущего медиаплана: в нем зашиты город, станция, период действия, стоимость спотов, НДС, скидки, сезонные коэффициенты, наценки и другие условия, которые влияют на итоговый бюджет рекламной кампании.

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

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

Почему медиапланирование на радио сложно автоматизировать

Радиостанции передают условия размещения в разных форматах: PDF, DOC, PNG, TXT, письма с вложениями и другие файлы. Прайс-листы могут приходить не только по почте: радиостанция может направить их менеджеру по любому рабочему каналу. Эти условия нужно привести к единой структуре, связать с конкретным городом и радиостанцией, проверить актуальность, а затем использовать в расчетах.

Медиаплан при этом остается ключевым рабочим документом для коммуникации с клиентами и контрагентами. Он должен быть понятным, точным и пригодным для дальнейшей работы в Excel: с разбивкой по месяцам, расчетом стоимости спотов, итогами, скидками, НДС и сводными таблицами.

Сложность проекта была в том, что приложение должно было соединить два мира:

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

Задача

Федеральное агентство радиорекламы занимается размещением сетевой и мультилокальной рекламы на радио, а также рекламой в Digital Audio. Для такого бизнеса прайс-лист радиостанции - не просто файл с ценами, а основа будущего медиаплана: в нем зашиты город, станция, период действия, стоимость спотов, НДС, скидки, сезонные коэффициенты, наценки и другие условия, которые влияют на итоговый бюджет рекламной кампании.

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

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

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

Нужно было реализовать:

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

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

2. Описание реализации кейса и творческого пути по поиску оптимального решения

Новое веб-приложение вместо устаревшей системы

Мы спроектировали и разработали модульное веб-приложение на PHP/Symfony и Vue/PrimeVue. Бэкенд отвечает за бизнес-логику, расчеты, работу с данными и REST API. Фронтенд дает пользователям современный интерфейс для управления прайс-листами, медиапланами, письмами и справочниками.

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

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

Миграция: перенесли историческую базу по всей России

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

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

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

Модуль прайс-листов: единая база коммерческих условий

Прайс-лист в системе стал полноценной сущностью, а не просто прикрепленным файлом. Пользователь может создать прайс, связать его с городом и радиостанцией, указать период действия, тип прайса, НДС, инфляцию, предоплату, скидки, наценки, сезонные коэффициенты и другие параметры.

В модуле реализованы:

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

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

Генератор медиапланов: от выбранных прайсов к Excel-файлу

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

В генераторе реализованы:

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

Медиаплан может включать до 100-200 прайс-листов в одном файле. Система собирает данные из выбранных прайсов и формирует документ, в котором по каждому листу доступны расчетные блоки, месяцы, споты, минуты, скидки, НДС и итоговый бюджет.

Что осталось в Excel и почему

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

В веб-приложении остались подготовка и управление данными:

  • структурирование прайс-листов;
  • выбор городов, радиостанций и условий;
  • хранение исходных писем;
  • настройка параметров медиаплана;
  • запуск генерации;
  • разграничение доступа.

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

Такой подход позволил не ломать привычный сценарий работы команды и контрагентов, но убрать значительную часть ручной подготовки из самого процесса.

Ролевая модель: разные сценарии для специалистов и администраторов

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

Такая модель помогает разделить ответственность:

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

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

Письма и вложения: источник прайса всегда под рукой

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

Система позволяет:

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

Это закрывает важную операционную задачу: если нужно проверить источник условий, пользователь может перейти от прайс-листа к связанному письму и вложениям, а не искать документ в почте или локальных папках.

Пострелизное развитие: защита файлов и обработка медиапланов

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

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

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

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

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

3. Результаты сотрудничества

PWD помогла заказчику перейти от устаревшей легаси-системы к современному веб-приложению для ежедневной работы с прайс-листами и медиапланами.

Что получил заказчик:

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

4. Заключение

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

Агентство-исполнитель кейса

PWD

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