Привет, Хабр! С вами команда Russtech — разработчики IT-решений ведущего российского оператора рекламы вне дома Russ (входит в RWB). В этой статье мы детально разберем процесс автоматизации подбора рекламных поверхностей — и объясним, какую пользу это дает. Вы узнаете о различных алгоритмах формирования рекламных кампаний, особенностях составления адресной программы с учетом локации, а также о том, как выбор метода расчета расстояния между объектом рекламодателя и рекламной конструкцией зависит от конкретного сценария медиапланирования. Для удобства объекты рекламодателя будем называть объекты POI (Points Of Interest, т. е. «точки интереса»). К ним будут относиться магазины, офисы продаж, пункты выдачи заказов, сервисные центры и другие локации, куда рекламодатель планирует привести свою целевую аудиторию.
Путь к автоматизации: как мы выстраивали процесс подбора рекламных поверхностей
Формирование адресной программы, т. е. выбор конкретных мест размещения рекламных креативов, — это один из ключевых этапов запуска рекламных кампаний. Здесь важно качественно подобрать набор рекламных конструкций, который будет максимально соответствовать бизнес‑целям конкретного клиента. Это может быть, например, рост узнаваемости бренда, привлечение трафика в точки продаж или запуск нового продукта.
Для каждого рекламодателя адресная программа разрабатывается индивидуально. По сути, это системная задача, где при подборе рекламных конструкций требуется учитывать стратегию продвижения клиента и десятки дополнительных параметров. В частности, желаемую географию размещения (город, районы или специальные локации), технические характеристики конструкций (формат, сторона, направление обзора), временные рамки кампании, бюджет, фактическую доступность инвентаря и др. В ряде случаев также важны еще и медиапоказатели: например, OTS (Opportunity To See), который помогает спрогнозировать число потенциальных контактов аудитории с рекламой, и GRP (Gross Rating Points), который отражает масштаб рекламного воздействия и позволяет оценить суммарный вес рекламной кампании.
При таком большом количестве требований ручное формирование рекламных кампаний оказалось чрезмерно трудоемкой и времязатратной задачей. На одну адресную программу менеджеру по медиапланированию приходилось тратить в среднем не менее часа, что при увеличении потока клиентских запросов не только создавало значительную нагрузку на всю команду, но и заметно замедляло запуск новых рекламных кампаний.
Чтобы облегчить этот процесс, мы разработали несколько алгоритмов автоматического медиапланирования и сделали их доступными не только для сотрудников, но и для рекламодателей. Это позволило ускорить формирование адресной программы более чем в 5 раз, а также обеспечить сборку большинства рекламных кампаний по всей стране всего за несколько минут.
Сценарии медиапланирования
Рекламодатели размещают креативы, чтобы решать разнообразные бизнес-задачи — от повышения узнаваемости бренда до стимулирования продаж. Одним важен максимальный охват по городу, другим нужен навигационный эффект, третьи ориентированы на геотаргетированное размещение и хотят показывать свою рекламу целевой аудитории строго на конкретной территории. Учитывая это, мы разработали три алгоритма медиапланирования. Они адаптированы под разные виды рекламных кампаний и легли в основу ключевых сценариев медиапланирования. Каждый алгоритм реализован как отдельный сервис с внешним API, что обеспечивает его легкую интеграцию в любой другой наш продукт.

Сценарий 1. Охват
Это подход с равномерным распределением рекламных поверхностей в выбранном городе или регионе — цель такого размещения состоит в максимальном увеличении количества контактов с аудиторией. При формировании адресной программы могут использоваться рекламные конструкции любого формата. Алгоритм автоматически подбирает поверхности с учетом их направления.
Сценарий 2. Навигация
Данный подход помогает направлять целевую аудиторию с привычных маршрутов движения к объектам рекламодателя: магазинам и точкам продаж, сервисным центрам, пунктам обслуживания и т. д.
Алгоритм анализирует основные транспортные и пешеходные маршруты, ведущие к заданным объектам POI, и подбирает рекламные поверхности вдоль этих путей. Особое внимание уделяется углу обзора и сторонам конструкций: система гарантирует, что все рекламные поверхности будут расположены лицом к направлению движения аудитории — то есть максимально заметны для потенциальных клиентов.
Сценарий 3. Привязка к локации
В этом подходе отправной точкой становятся объекты POI. Так, например, рекламодатель задает радиус 500 м или 1 км, и алгоритм автоматически подбирает рекламные поверхности внутри этого круга. Для каждой конструкции система фиксирует расстояние до объекта POI и закрепляет связь, обеспечивая точную привязку инвентаря к данным локациям.
Создание рекламных кампаний с привязкой к локации
Как уже отмечали, в этом сценарии адресная программа собирается из рекламных поверхностей, которые находятся рядом с объектами POI клиента. Рекламодатель задает объекты, радиус поиска и нужные типы конструкций. Система проверяет, какие поверхности свободны в выбранный период, подходят по формату, а также находятся на нужном расстоянии по прямой линии на карте.
В отличие от навигационного данный алгоритм не просчитывает точные маршруты к объекту, а выбирает ближайшие доступные конструкции. Такой подход не только предоставляет более широкий выбор вариантов размещения, но и существенно ускоряет процесс подбора подходящих рекламных поверхностей.
Особенности формирования адресной программы
В каждом сценарии при создании рекламной кампании помимо общих параметров (регион, сроки размещения, типы конструкций и т. д.) можно учитывать также и дополнительные. В частности, при формировании адресной программы с привязкой к локациям можно задать не только радиус от объекта POI, но и указать ряд специальных условий.
-
Тип привязки объектов.
Определяет логику распределения рекламных поверхностей вокруг объектов POI. Это может быть:
максимальное число поверхностей вокруг объекта — в этом случае система ограничена точным числом конструкций, которые будут привязаны к одному объекту POI в пределах заданного радиуса;
все доступные поверхности — подборка будет состоять из всех свободных поверхностей нужного формата. При этом одна поверхность может быть привязана сразу к нескольким объектам POI;
все свободные поверхности с единственной привязкой — логика похожа на предыдущий вариант, но одна поверхность закрепляется только за одним объектом POI — а именно за тем, к которому она расположена ближе всего.
-
Длина маршрута.
При выборе этого параметра система учитывает также путь от рекламной поверхности до объекта POI на автомобиле с учетом правил дорожного движения.
-
Стороны конструкций.
Клиент может выбрать предпочтительные стороны размещения рекламных поверхностей, в таком случае алгоритм подберет рекламную кампанию с учетом заданных требований.


Технические вызовы при автоматизации медиапланирования наружной рекламы
При разработке данного алгоритма основная сложность заключалась в выборе оптимального подхода к расчету расстояния между точками расположения рекламных поверхностей и объектов POI. Здесь было необходимо решить: либо переводить все координаты в проекцию Гаусса-Крюгера и считать обычное расстояние между двумя точками, либо использовать расчет по геодезическим формулам.
Проекция Гаусса-Крюгера — это равноугольная поперечно-цилиндрическая проекция, при которой вся поверхность земного эллипсоида разбивается на 6-градусные меридианные зоны. Каждая зона проецируется на цилиндр, касательный к осевому меридиану зоны, после чего разворачивается в плоскость. В результате мы получаем плоские прямоугольные координаты X и Y, где:
X — расстояние от экватора вдоль осевого меридиана (северное направление);
Y — расстояние от осевого меридиана (восточное направление) со смещением +500 км для исключения отрицательных значений.
В сборке с привязкой к локации мы выбрали второй вариант — расчет по геодезическим формулам. Несмотря на то что он требует больше вычислений, он позволяет рассчитывать расстояние между объектами и конструкциями один раз, используя формулы геодезии. Это исключает погрешности, связанные с искажениями проекции, которые могут достигать нескольких метров на краях 6-градусных зон, и делает расчеты независимыми от выбора зоны проекции.
Для решения задачи выборки рекламных поверхностей в пределах заданной близости конструкций к объекту POI мы внедрили интеллектуальный перебор. То есть предусмотрели, чтобы сначала система выполняла расчет расстояния от заданного объекта до всех свободных поверхностей нужного формата. Затем полученные данные сортировались по возрастанию расстояния, после чего алгоритм отбирал необходимое количество поверхностей в соответствии с параметрами рекламной кампании. При этом учли, чтобы конструкции в пределах заданного радиуса, выходящие за рамки требуемого количества, не включались в итоговую подборку.
Геодезические и прямоугольные координаты
В процессе разработки алгоритмов мы убедились в том, что скорость расчета расстояния между объектами существенно зависит от выбранного математического подхода. С учетом постоянного увеличения количества запросов на сборку адресных программ было решено применять разные подходы в зависимости от сценария медиапланирования:
при формировании адресной программы с привязкой к локации использовать геодезические координаты — они обеспечивают высокую точность расчетов на больших расстояниях с учетом особенностей земной поверхности;
в охвате и навигации — прямоугольные координаты.
Такой дифференцированный подход обусловлен прежде всего масштабом вычислений: в частности, в сборке кампании по охвату расчет расстояний выполняется порядка миллиарда раз. Использование прямоугольных координат в этом случае сокращает время вычислений и минимизирует нагрузку на сервер, сохраняя при этом достаточную точность расчетов.
Разница в подходах
С геодезическими координатами все просто. В этом случае применяется формула расчета расстояния между двумя географическими координатами на сфере с использованием сферического закона косинусов. В отличие от проекций, она не требует перевода координат в плоскую систему и работает непосредственно с угловыми величинами.

csharp // Расчет расстояния между двумя точками в радианах var radius = 6377846.236 * Math.Acos(pSinLat * sinLatPOI[j] + pCosLat * cosLatPOI[j] * Math.Cos(aprPanel.llRad.lng - longPOI[j]));
Радиус Земли в коде (6377846.236 м) — это средний радиус, используемый в качестве компромисса между экваториальным (6378137 м) и полярным (6356752 м) радиусами для минимизации погрешности при расчетах на территории РФ.
Данный подход удобен, когда требуются единичные вычисления расстояний или сравнение удаленности объектов без необходимости в координатах X/Y, а также если нужны расчеты, где точность ~1% от реального расстояния достаточна (погрешность для сферической модели составляет до 0,5% по сравнению с эллипсоидальной).
Работа с прямоугольными координатами сопряжена с рядом сложностей, требующих тщательного учета исходных параметров. В этом случае прямое преобразование невозможно без учета системы исходных геодезических координат. Тут требуется учитывать разнообразие систем координат, нормативную базу и проекционные искажения.
Особая сложность при работе с прямоугольными координатами возникает в Санкт-Петербурге, так как там проходит Пулковский меридиан. Зачастую это приводит к критическим ошибкам при расчете расстояний между точками, расположенными по разные стороны от меридиана.
Для решения этой ситуации применяются различные подходы: кто-то приводит все точки к срединному меридиану, кто-то делает небольшое смещение границ зоны проекции, другие — группируют точки в единую зону с общим меридианом. Мы используем последний подход, т. е. все точки в рамках задачи объединяем в одну зону и привязываем к единому меридиану. После этого выполняем преобразование в прямоугольные координаты, и расчеты становятся корректными.
Что в итоге: что получили благодаря автоматизации
Автоматизация изменила процесс медиапланирования сразу по нескольким направлениям: рекламные кампании стали создаваться быстрее, менеджеры по медиапланированию тратят меньше времени на подбор рекламных поверхностей. Алгоритм не заменяет экспертизу команды, но снимает большую часть ручной работы и помогает быстрее получить качественную адресную программу.
В следующей статье мы расскажем о втором сценарии медиапланирования — «Навигация». В частности, разберем особенности создания адресных программ и опишем, какие возможности навигационные кампании открывают для рекламодателей.
Спасибо за внимание! Задавайте вопросы в комментариях.