Оглавление8 разделов
Фактический CPC не является самостоятельной ценой, которую аукцион назначает каждому клику. В модели оплаты за показы он получается из двух процессов: сколько стоила доставка и какая доля показов превратилась в клики. Поэтому фраза «клик подорожал на 60%» бесполезна, пока рост не разложен на CPM, CTR и изменение структуры трафика.
Основная формулаCPC = расходы / клики = CPM / (1000 × CTR), где CTR используется как десятичная доля. При CPM 8 и CTR 1,6% расчёт даёт 8 / (1000 × 0,016) = 0,50 в валюте отчёта.
Сценарии с одинаковым симптомом
| Сценарий | CPM | CTR | CPC | Что изменилось |
|---|---|---|---|---|
| База | 8,00 | 1,60% | 0,50 | Контрольная точка |
| Подорожал показ | 10,00 | 1,60% | 0,625 | Аукцион/доставка |
| Ослабла реакция | 8,00 | 1,25% | 0,64 | Креатив или mix аудитории |
| Оба фактора | 10,00 | 1,25% | 0,80 | CPM вырос, CTR снизился |
| Компенсация | 10,00 | 2,00% | 0,50 | Дорогой показ компенсирован CTR |
Значения иллюстративные. Таблица показывает, почему один CPC не объясняет механизм: одинаковые 0,50 могут возникнуть при разных цене инвентаря и реакции, а значит требуют разных действий.
Точная декомпозиция без зависимости от порядка
При одновременном изменении двух факторов простая подстановка зависит от того, что заменить первым. Симметричный способ — посчитать вклад каждого фактора в обоих порядках и усреднить. Для функции f(CPM, CTR) = CPM / (1000 × CTR) это двухфакторная декомпозиция Шепли.
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 снизился, но внутри каждого крупного сегмента остался прежним, причина — перераспределение показов. Исправлять креатив в этом случае необязательно; сначала выясняют, почему изменилась доставка.
Диагностическое дерево
- Проверить полноту расходов, показов и кликов в одной валюте и временной зоне.
- Пересчитать CPM, CTR и CPC из сумм.
- Разделить изменение CPC на CPM и CTR.
- Проверить веса устройств, плейсментов, аудиторий и часов.
- Сопоставить с журналом ставок, бюджетов и модерации.
- Оценить зрелые post-click метрики: дешёвый клик не равен полезному.
- Менять только фактор, который соответствует подтверждённому механизму.
CPC — промежуточная, а не целевая экономика
Снижение CPC за счёт кликабельного обещания может ухудшить квалификацию трафика. После декомпозиции проверяют зрелую стоимость целевого события, долю подтверждения и доход на клик. Но эти показатели не следует подмешивать в формулу CPC: они отвечают на следующий вопрос воронки.
Не называйте рост CPM доказательством усиления конкуренцииCPM зависит не только от конкурентов, но и от доступного инвентаря, аудитории, стратегии ставки, качества и структуры доставки. Формула локализует слой проблемы, но причинный вывод требует журнала изменений и контрольного сравнения.
Источники и границы применимости
Вывод
Декомпозиция превращает абстрактное «CPC вырос» в проверяемую картину. CPM описывает стоимость доставки, CTR — реакцию на показ, mix — перераспределение объёма. Считайте отношения из сумм, раскладывайте совместное изменение симметрично и только затем выбирайте действие: ставка, инвентарь, аудитория или креатив.
Станьте партнёром и начните работать
Перейдите в партнёрскую программу, изучите актуальные условия и выберите подходящий формат сотрудничества.
СТАТЬ ПАРТНЁРОМ
