Гид по аудиту

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

Три теста, которые директор по медиа может провести за полдня — на нашем движке, на действующей платформе или на таблице, которой команда уже доверяет.

Команда Tilsim · · 7 мин

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

Точность медиапланирования — это воспроизводимость. Инструмент точен, когда два независимых расчёта одного и того же плана дают одно и то же число, и когда любой разрыв между ними можно измерить, а не обсуждать на словах. Это всё определение целиком, и проверить его можно за полдня. Дальше — три теста, которые стоит провести над любым софтом для медиапланирования, и разбор конвенций, где чаще всего плывёт телевизионная математика.

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

Тест 1: совпадает ли расчёт с эталонным?

Возьмите план, который команда уже согласовала — подписанный, отправленный селлер-хаусу, обсуждённый внутри. Введите в инструмент те же вводные: целевые рейтинговые пункты, базовый CPP, сезонность, лестницу скидок, долю prime, длительности роликов, форму флайта. Измерьте разницу между результатом инструмента и эталоном в процентах.

Этот процент и есть ваша цифра точности — а не «на демо выглядело похоже».

Для TV Budgeting эта цифра — меньше 0,01% против эталонной агентской модели в Excel, того самого файла, по которому рынок закрывал сделки. Мы проверили оба направления на одном и том же замороженном ядре: TRP в бюджет и бюджет в TRP. Направление имеет значение больше, чем кажется. Инструмент, который считает в одну сторону, а в другую — инвертирует численно, накапливает ошибку именно в инверсии. Одно ядро, оба направления, один ответ.

Спрашивайте у любого вендора его цифру и эталон, на котором она получена. «Мы точные» — не ответ. Ответ — это «0,4% против вашей же модели, вот расхождение по ячейкам».

Тест 2: заморожен ли расчёт?

Результат сверки — это фотография момента. Вопрос в том, останется ли он верным после следующего релиза.

Наш держится, потому что около 750 бэкенд-тестов и около 2100 фронтенд-тестов — почти 3000 в сумме — жёстко привязаны к расчётному ядру. Они существуют, чтобы нельзя было незаметно выкатить изменение, сдвигающее цифру бюджета на 0,3%. Ловить падения — побочный эффект. Если рефакторинг меняет результат, набор тестов падает, и релиз останавливается.

Практический вопрос к вендору: что произойдёт с моим согласованным планом, когда вы выкатите релиз в четверг? Если в ответе звучит слово «не должно», спросите, чем именно это гарантировано.

Тест 3: что происходит при отсутствующем вводе?

Это самый быстрый и самый показательный тест. Оставьте обязательное поле пустым и отправьте расчёт.

Большинство инструментов подставляют значение по умолчанию — это самое опасное поведение в софте для планирования, потому что подставленное значение даёт число, неотличимое от честно посчитанного. Разницу никто не замечает, и это допущение доезжает прямиком до тендера.

Наша система отказывается считать. Если значения нет, расчёт падает с ошибкой и называет конкретное поле. Вы видите ровно то, что было посчитано — ничего не подставлено за вас. Активные месяцы определяются по фактически поставленным TRP, а не по тому, что планировщик выбрал в селекторе месяцев, поэтому календарь показывает реально существующий план.

Где телевизионная математика реально плывёт?

Расхождения в сверке концентрируются вокруг нескольких конвенций. Проверяйте их по одной — в любом инструменте.

Форма плана заслуживает той же дисциплины. Свободный ввод 52 недель провоцирует привычку копировать прошлогодний план, поэтому мы предлагаем 17 шаблонов флайтинга (Flat, Front-Loaded, Mid-Peak, Crescendo) и 5 уровней интенсивности от 0,5 до 1,7, и за каждым стоит исследование: затухание adstock у Бродбента — около 2,5 недели для FMCG, работа Джонса по STAS и работа Бине и Филда.

Точность на стороне данных

Расчёт — только половина дела. Если входящие цифры по аудитории приблизительны, сверка по арифметике ничего не даёт.

TV Planner читает сырые файлы поставки Nielsen — бинарный набор EVS/RDS/RSP — и не использует текстовый экспорт. Причина — в детализации: экспорт несёт возрастной диапазон 1–5, источник — точный возраст от 4 до 65 лет. Индустриальные разбивки вроде 18–49 и 25–54 из диапазонов не собрать. Этот потолок — ограничение текстового экспорта, а не данных Nielsen.

Наше доказательство — это воспроизведение официальной таблицы аудитории поячеечно: из 60 858 ячеек все 21 548 ненулевых совпали с точностью до 0,5 человека (Nielsen округляет до целых людей), по всем 17 из 17 демографических разбивок. Мы воспроизводим опубликованные цифры Nielsen. Мы не сертифицированы Nielsen и не заявляем об этом.

Конвенции важны и здесь. Многодневная агрегация взвешивается по universe, а не считается как среднее арифметическое дневных процентов. Reach и frequency считаются на уровне отдельного человека относительно universe в 2 295 613 человек. Приём файлов идемпотентен по SHA-256: повторно присланная поставка пропускается, а исправленная — удаляет и заменяет старые строки, поэтому уточнённый день никогда не превращается в незаметный дубликат.

Пост-бай считается на уровне отдельного выхода. Каждый вышедший в эфир ролик получает ровно один из семи взаимоисключающих статусов относительно плана — matched, out_of_flight, unplanned_channel, out_of_week, out_of_daypart, wrong_length, no_lines — и это превращает голословное «вышло в эфир» в то, что можно защитить на встрече с клиентом.

Два честных ограничения. Наш CPP — плановый прокси: в данных нет реальных цен, поэтому мы не заявляем экономию затрат или ROI как результат продукта. Автономное прогнозирование — в дорожной карте, а не в продукте сегодня. Данные по аудитории пока покрывают один рынок — Молдову.

Проведите тест 1 на своём плане

Принесите план, который ваша команда уже согласовала, и мы прогоним те же вводные через ядро у вас на глазах. Результат либо попадёт в пределы 0,01% от вашего, либо нет. В любом случае вы уйдёте, зная то, чего не знали этим утром.

Частые вопросы

Что на самом деле означает «точность медиапланирования»?

То, что одни и те же вводные дают один и тот же результат при независимых расчётах, и что любое отклонение от согласованного эталона можно измерить. «Меньше 0,01% против конкретной эталонной модели» — это проверяемое утверждение; просто «точный» — нет.

Что происходит с согласованным планом, когда вендор выкатывает релиз?

Целиком зависит от того, закреплена ли сверка тестами. У нас это около 750 бэкенд- и 2100 фронтенд-тестов, поэтому рефакторинг, сдвигающий результат на 0,3%, роняет набор тестов и останавливает релиз.

Почему инструмент должен отказывать при отсутствующем вводе, а не подставлять значение по умолчанию?

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

Почему читать сырые файлы поставки Nielsen, а не стандартный экспорт?

Текстовый экспорт несёт возрастной диапазон 1–5; сырая поставка — точный возраст 4–65. Разбивки вроде 18–49 и 25–54 из диапазонов не восстановить, поэтому любой инструмент, построенный на экспорте, наследует этот потолок.

Это важно только для рынков с менее зрелыми процессами планирования?

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

Принесите свой эталонный план

Тест 1 работает лучше всего на плане, который вы уже сверили. TV Budgeting прогонит те же вводные через своё ядро у вас на глазах, в обе стороны, и покажет разницу по ячейкам.

Запросить демо →