Surrika

Медиаплан проекта по каналам и месяцам с планом и фактом

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

Реклама

Как считать

  1. Возьмите утвержденный план выручки и рекламного бюджета по каждому каналу за последний квартал.
  2. Соберите факт расхода из рекламных кабинетов и объедините Директ и VK в канал сайта, а продвижение на Вайлдберриз и Озон в соответствующие маркетплейсы.
  3. Факт выручки по каналам возьмите из продаж за те же месяцы.
  4. Сравните план и факт по бюджету, выручке и доле рекламных расходов в выручке.
  5. Перенесите бюджет в каналы, где выручка отстает от плана при перерасходе на рекламу.

Расчет на выгрузках магазина

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

Как составить медиаплан проекта по каналам и месяцам и сравнить его с фактом по расходу на рекламу и выручке?

Плановый рекламный бюджет медиаплана по каналам и месяцам

SQL, по которому посчитано

WITH bounds AS (
    SELECT date_trunc('month', max(date))::DATE AS end_month
    FROM ads
),
months AS (
    SELECT (end_month - INTERVAL '2 month')::DATE AS start_month,
           end_month
    FROM bounds
),
plan_q AS (
    SELECT p.month,
           p.channel,
           p.revenue AS plan_revenue,
           p.ad_cost AS plan_ad_cost
    FROM plan p
    CROSS JOIN months m
    WHERE p.month >= m.start_month
      AND p.month <= m.end_month
),
ads_map AS (
    SELECT date_trunc('month', a.date)::DATE AS month,
           CASE a.source
               WHEN 'Яндекс Директ' THEN 'Сайт'
               WHEN 'VK Реклама' THEN 'Сайт'
               WHEN 'Продвижение WB' THEN 'Wildberries'
               WHEN 'Продвижение Ozon' THEN 'Ozon'
           END AS channel,
           sum(a.cost) AS actual_ad_cost
    FROM ads a
    CROSS JOIN months m
    WHERE a.date >= m.start_month
      AND a.date < (m.end_month + INTERVAL '1 month')::DATE
    GROUP BY 1, 2
),
sales_actual AS (
    SELECT date_trunc('month', s.date)::DATE AS month,
           s.channel,
           sum(s.revenue - s.returned_revenue) AS actual_revenue
    FROM sales s
    CROSS JOIN months m
    WHERE s.date >= m.start_month
      AND s.date < (m.end_month + INTERVAL '1 month')::DATE
    GROUP BY 1, 2
)
SELECT p.month,
       p.channel,
       round(p.plan_revenue, 0) AS plan_revenue,
       round(coalesce(s.actual_revenue, 0), 0) AS actual_revenue,
       round(p.plan_ad_cost, 0) AS plan_ad_cost,
       round(coalesce(a.actual_ad_cost, 0), 0) AS actual_ad_cost,
       round(100 * p.plan_ad_cost / nullif(p.plan_revenue, 0), 1) AS plan_drr_pct,
       round(100 * coalesce(a.actual_ad_cost, 0) / nullif(s.actual_revenue, 0), 1) AS actual_drr_pct,
       round(100 * (coalesce(a.actual_ad_cost, 0) - p.plan_ad_cost) / nullif(p.plan_ad_cost, 0), 1) AS ad_cost_deviation_pct,
       round(100 * (coalesce(s.actual_revenue, 0) - p.plan_revenue) / nullif(p.plan_revenue, 0), 1) AS revenue_deviation_pct
FROM plan_q p
LEFT JOIN ads_map a
  ON a.month = p.month
 AND a.channel = p.channel
LEFT JOIN sales_actual s
  ON s.month = p.month
 AND s.channel = p.channel
ORDER BY p.month, p.channel
LIMIT 30

Откуда взять цифры для медиаплана проекта

План выручки и рекламного бюджета берите из утвержденного медиаплана или бюджета в учетной системе. Фактический расход смотрите в кабинетах Яндекс Директа, VK Рекламы и продвижения на маркетплейсах. Выручку по каналам берите из продаж. Выручка в рекламных кабинетах приписана кампаниям и не покрывает все продажи канала.

Как свести каналы в медиаплане проекта по месяцам

В плане каналы продаж называются сайт, Вайлдберриз, Озон и Яндекс Маркет. Реклама приходит по источникам, поэтому Директ и VK отнесите к сайту, продвижение на Вайлдберриз к Вайлдберриз, продвижение на Озон к Озону. Для Яндекс Маркета отдельного источника в рекламе нет, поэтому его бюджет может остаться плановым без факта. Месяц берите по первому дню, чтобы план и факт попадали в одну строку.

Как читать отклонения медиаплана проекта

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

Что менять в медиаплане проекта после сравнения

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

Частые ошибки

Возвраты не учтены

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

План с НДС, факт без НДС

Расход в кабинетах берите без НДС, как в плане бюджета. Если план собран с НДС, отклонение бюджета покажет ложный перерасход.

Вопросы

Как часто пересматривать медиаплан проекта?

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

Можно ли строить медиаплан проекта по категориям товаров?

Да, если план и рекламные кампании ведутся по тем же категориям. Кампании с категорией «Все» распределите по категориям вручную или оставьте отдельной строкой, чтобы не задвоить расход.

Как учитывать скидки площадок в медиаплане проекта?

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

Посчитайте это на своих выгрузках

Бросьте выгрузки на доску Surrika и задайте вопрос обычными словами. Ответ придет графиком, а под ним будет SQL, по которому он посчитан.

14 дней бесплатно, карта не нужна.

По теме

Все задачи