Экономика рекламного аукциона: как CPM и CTR формируют фактический CPC

Как разложить изменение CPC на стоимость тысячи показов, реакцию аудитории и структуру трафика: формулы, сценарная таблица, SQL и контроль агрегации.

Оглавление8 разделов

Фактический CPC не является самостоятельной ценой, которую аукцион назначает каждому клику. В модели оплаты за показы он получается из двух процессов: сколько стоила доставка и какая доля показов превратилась в клики. Поэтому фраза «клик подорожал на 60%» бесполезна, пока рост не разложен на CPM, CTR и изменение структуры трафика.

Основная формула

CPC = расходы / клики = CPM / (1000 × CTR), где CTR используется как десятичная доля. При CPM 8 и CTR 1,6% расчёт даёт 8 / (1000 × 0,016) = 0,50 в валюте отчёта.

Сценарии с одинаковым симптомом

СценарийCPMCTRCPCЧто изменилось
База8,001,60%0,50Контрольная точка
Подорожал показ10,001,60%0,625Аукцион/доставка
Ослабла реакция8,001,25%0,64Креатив или mix аудитории
Оба фактора10,001,25%0,80CPM вырос, CTR снизился
Компенсация10,002,00%0,50Дорогой показ компенсирован CTR

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

Точная декомпозиция без зависимости от порядка

При одновременном изменении двух факторов простая подстановка зависит от того, что заменить первым. Симметричный способ — посчитать вклад каждого фактора в обоих порядках и усреднить. Для функции f(CPM, CTR) = CPM / (1000 × CTR) это двухфакторная декомпозиция Шепли.

Декомпозиция изменения CPC
base = f(cpm0, ctr0)
new  = f(cpm1, ctr1)

CPM contribution = 0.5 * (
  f(cpm1, ctr0) - f(cpm0, ctr0) +
  f(cpm1, ctr1) - f(cpm0, ctr1)
)

CTR contribution = 0.5 * (
  f(cpm0, ctr1) - f(cpm0, ctr0) +
  f(cpm1, ctr1) - f(cpm1, ctr0)
)

check: new - base = CPM contribution + CTR contribution

Для примера 8 → 10 и 1,6% → 1,25% итоговый CPC растёт с 0,50 до 0,80. Вклад CPM составляет 0,141, вклад CTR — 0,159; сумма 0,30. Это денежные вклады в той же валюте, а не проценты, которые можно бездумно складывать.

Логарифмический вариант для относительных изменений

Из тождества ln(CPC) = ln(CPM) − ln(CTR) следует точное разложение относительного движения в лог-шкале. Оно удобно для временных рядов и множества сегментов. Интерпретация идёт через exp: лог-изменение 0,1 соответствует множителю exp(0,1), а не ровно десяти процентам.

Расчёт агрегатов из сырых сумм
WITH period_stats AS (
  SELECT period,
         sum(cost_minor) AS cost_minor,
         sum(impressions) AS impressions,
         sum(clicks) AS clicks
  FROM ad_delivery
  WHERE event_date BETWEEN :date_from AND :date_to
  GROUP BY period
)
SELECT period,
       cost_minor * 1000.0 / NULLIF(impressions,0) AS cpm_minor,
       clicks * 1.0 / NULLIF(impressions,0) AS ctr,
       cost_minor * 1.0 / NULLIF(clicks,0) AS cpc_minor
FROM period_stats;

Главная ошибка агрегации

Нельзя брать AVG(row_cpc), AVG(row_ctr) или AVG(row_cpm), если строки имеют разный объём. Итог строится из сумм: total cost / total clicks, total clicks / total impressions и total cost × 1000 / total impressions. В противном случае маленькая площадка на двух кликах получит тот же вес, что и основной источник.

Отделите эффект внутри сегмента от mix effect

Даже корректные общие отношения меняются, когда бюджет уходит между сегментами. Если мобильный инвентарь имеет высокий CTR и высокий CPM, рост его доли передвинет обе метрики без изменения поведения внутри каждого устройства. Поэтому сравнение выполняют в два слоя: сначала стабильные placement × device × audience, затем вклад изменения весов.

Контроль структуры доставки
SELECT period, device, placement_group,
       sum(impressions) AS impressions,
       sum(impressions) * 1.0
         / sum(sum(impressions)) OVER (PARTITION BY period) AS impression_share,
       sum(cost_minor) * 1000.0 / NULLIF(sum(impressions),0) AS cpm_minor,
       sum(clicks) * 1.0 / NULLIF(sum(impressions),0) AS ctr
FROM ad_delivery
GROUP BY period, device, placement_group
ORDER BY period, impression_share DESC;

Если общий CTR снизился, но внутри каждого крупного сегмента остался прежним, причина — перераспределение показов. Исправлять креатив в этом случае необязательно; сначала выясняют, почему изменилась доставка.

Диагностическое дерево

  1. Проверить полноту расходов, показов и кликов в одной валюте и временной зоне.
  2. Пересчитать CPM, CTR и CPC из сумм.
  3. Разделить изменение CPC на CPM и CTR.
  4. Проверить веса устройств, плейсментов, аудиторий и часов.
  5. Сопоставить с журналом ставок, бюджетов и модерации.
  6. Оценить зрелые post-click метрики: дешёвый клик не равен полезному.
  7. Менять только фактор, который соответствует подтверждённому механизму.

CPC — промежуточная, а не целевая экономика

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

Не называйте рост CPM доказательством усиления конкуренции

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

Источники и границы применимости

Google Ads API: основы запросов отчётности

Вывод

Декомпозиция превращает абстрактное «CPC вырос» в проверяемую картину. CPM описывает стоимость доставки, CTR — реакцию на показ, mix — перераспределение объёма. Считайте отношения из сумм, раскладывайте совместное изменение симметрично и только затем выбирайте действие: ставка, инвентарь, аудитория или креатив.

Станьте партнёром и начните работать

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

СТАТЬ ПАРТНЁРОМ

Связанные материалы

Все статьи
Аналитика

Бюджет первого теста: как рассчитать сумму, которой хватит для решения

Как рассчитать бюджет теста рекламы через частоту события, MDE, power, стоимость трафика, зрелость, технический этап, лимит потерь и оборотный капитал.

Аналитика

Витрина данных для арбитражной команды: схема от клика до выплаты

Как построить аналитическую витрину арбитража: grain, факты, измерения, click ID, статусы, валюты, ревизии, late events, тесты и воспроизводимые отчёты.

Аналитика

Statistical power и MDE: как планировать тест конверсии до запуска

Подробный разбор statistical power, MDE и размера выборки для конверсии: baseline, alpha, beta, абсолютный эффект, кластеры, лаг и симуляция дизайна.