Как посчитать Share of Voice в SQL

Проверь себя · 1/3разбор после ответа
В таблице заказов поле cancelled_at заполняется только для отменённых заказов, а для активных оно равно NULL. Какой фильтр выберет именно активные (не отменённые) заказы?

Зачем Share of Voice

Маркетолог: «Наш бренд активно в соцсетях, охваты растут — должно быть видно в продажах». Аналитик считает SOV: доля упоминаний бренда в общем медиа-пространстве категории — 8%. У главного конкурента — 25%. Бренд кажется «активным» в собственном пузыре, но в категории — невидим.

SOV — рабочая метрика медиа-стратегии и FMCG. В статье — SQL и нюансы.

Что такое SOV

Share of Voice (SOV) — доля бренда в общем объёме рекламных / медийных упоминаний категории.

SOV (%) = brand_mentions / total_category_mentions × 100%

Упоминания могут быть разными: показы рекламы (ad impressions), упоминания в соцсетях, охваты в медиа, доля поисковых запросов.

В классическом варианте SOV считают по рекламным расходам / показам (ad spend / impressions); современный вариант — Share of Search.

Базовый расчёт

Данные: ad_impressions(brand, date, impressions).

WITH category_total AS (
    SELECT SUM(impressions) AS total
    FROM ad_impressions
    WHERE DATE >= '2026-04-01' AND DATE < '2026-05-01'
),
brand_imp AS (
    SELECT brand, SUM(impressions) AS imp
    FROM ad_impressions
    WHERE DATE >= '2026-04-01' AND DATE < '2026-05-01'
    GROUP BY brand
)
SELECT
    b.brand,
    b.imp,
    ct.total,
    b.imp::NUMERIC / NULLIF(ct.total, 0) * 100 AS sov_pct
FROM brand_imp b
CROSS JOIN category_total ct
ORDER BY sov_pct DESC;

SOV по каналам

WITH channel_total AS (
    SELECT channel, SUM(impressions) AS total
    FROM ad_impressions
    WHERE DATE >= '2026-04-01' AND DATE < '2026-05-01'
    GROUP BY channel
),
brand_channel AS (
    SELECT brand, channel, SUM(impressions) AS imp
    FROM ad_impressions
    WHERE DATE >= '2026-04-01' AND DATE < '2026-05-01'
    GROUP BY brand, channel
)
SELECT
    b.brand,
    b.channel,
    b.imp,
    ct.total,
    b.imp::NUMERIC * 100.0 / NULLIF(ct.total, 0) AS sov_pct
FROM brand_channel b
JOIN channel_total ct ON ct.channel = b.channel
ORDER BY b.channel, sov_pct DESC;
Закрепи формулу share of voice в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать share of voice в Telegram
Метрика Что считаем Источник
Classic SOV ad spend / impressions / охват реклама, медиа
Share of Search запросы по бренду относительно всей категории Google Trends, Wordstat
Share of Voice (social) упоминания в соцсетях Brand24, мониторинги

Share of Search — лучший косвенный показатель (proxy) доли рынка. Исследования (Les Binet) показывают корреляцию +0,6…+0,8 между Share of Search сейчас и долей рынка через 12–18 месяцев.

-- Share of Search через wordstat-выгрузку
SELECT
    brand,
    SUM(searches) AS brand_searches,
    SUM(SUM(searches)) OVER () AS total_category,
    SUM(searches)::NUMERIC * 100.0 /
        NULLIF(SUM(SUM(searches)) OVER (), 0) AS share_of_search_pct
FROM wordstat_data
WHERE category = 'дрель электрическая'
  AND month = '2026-04'
GROUP BY brand
ORDER BY share_of_search_pct DESC;

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

Ошибка 1. SOV без определения категории. «Доля рекламы бренда» среди чего? Категория должна быть строго определена.

Ошибка 2. Считать только свою рекламу. Без данных конкурентов SOV — пустой. Используйте Mediascope, AdIndex, Brand24.

Ошибка 3. Включать неоплаченные показы. Корректный SOV — только платные показы (paid). Органические соцсети — это отдельная метрика Share of Voice (social).

Ошибка 4. Не нормализовать по каналу. Показы на ТВ ≠ показы в digital. Сначала считайте SOV по каждому каналу, потом сводите во взвешенное среднее.

Ошибка 5. SOV без временного окна. SOV за один день — это шум. Берите месячный или квартальный горизонт.

Связанные темы

FAQ

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

Какой SOV считается хорошим?

Абсолютного «хорошего» значения нет. Ориентир — держать SOV выше своей доли рынка (Share of Market): этот разрыв называют Excess Share of Voice (ESOV), и именно он предсказывает будущий рост бренда.

Где взять данные конкурентов?

Данные по конкурентам берут из платных источников: Mediascope (ТВ), AdIndex и Bytecast (digital), Wordstat и Google Trends (поиск). Бесплатно собрать полную картину по категории почти нереально.

SOV на В2B имеет смысл?

Меньше, чем в B2C. В B2B охват всей категории значит немного, и полезнее смотреть ABM-метрики — вовлечённость конкретных целевых аккаунтов.

Как часто пересчитывать?

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