Три ловушки в данных: почему ваши выводы по рекламе красивые и неверные

Три ловушки в данных: почему ваши выводы по рекламе красивые и неверные

Я веду рекламу на маркетплейсах и регулярно вижу, как маркетологи принимают решения на цифрах, которые врут — не потому что плохо считают, а потому что выгрузка устроена не так, как они думают. Недавно разбирал статистику коллеги: 235 кампаний, полтора миллиона рублей расхода, восемь месяцев данных. Трижды получил красивый вывод — трижды оказался неправ. Ниже — про эти три ловушки и про то, как не наступить на те же грабли.

Как считать, чтобы не соврать себе на первом шаге

Две метрики, вокруг которых всё крутится: ДРР (расход делённый на выручку) и CPO (расход делённый на количество заказов). Обе нужно считать как сумму на сумму — сложить весь расход группы, сложить всю её выручку, поделить.

Соблазн посчитать иначе — взять ДРР каждого дня и усреднить — выглядит невинно. Но день с расходом в 40 ₽ получает тот же вес, что день с расходом в 8 000 ₽. Я видел выгрузки, где ДРР считали именно так и потом удивлялись, почему сумма по кампаниям не бьётся с кабинетом.

Общая картина по всему массиву: ДРР 45,3%, CPO 334 ₽, кампания живёт в среднем 27 дней при медиане 22.

Сводка по 235 кампаниям: расход, заказы, CPO и ДРР
Сводка по 235 кампаниям: расход, заказы, CPO и ДРР

Ловушка 1: пустая ячейка, которая съела четырнадцать магазинов

Первым делом я посчитал, сколько в выборке продавцов. Получилось четыре. Записал в черновик, пошёл считать дальше — по нишам, по магазинам, по сезонности.

Через день, сверяя суммы, заметил: разбивка по магазинам не сходится с общим итогом. 55 тысяч рублей против полутора миллионов.

Почему так вышло

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

Магазинов было восемнадцать, и почти весь расход лежал в тех самых строках без названия.

Что делать

С тех пор рядом с любой разбивкой я первым делом считаю две вещи:

- Сколько строк не попало в группировку
- Сколько денег в них лежит

Если непопавший расход сопоставим с общим — построенная разбивка описывает хвост данных, а не данные.

Ловушка 2: подвыборка, которая рассказала красивую историю

Дальше я сравнивал два формата: аукционные кампании против автоматических. Тип кампании в основном отчёте не указан — он подтягивается из статистики по фразам. После сведения тип нашёлся у 141 кампании из 235.

Картина вышла эффектная:

Метрика | Автоматические | Аукционные | Разница
CPO | 425 ₽ | 294 ₽ | +44% ||
Стоимость клика | 7,0 ₽ | 13,3 ₽ | −47% |

Готовый вывод: автомат заманивает дешёвым кликом, а заказы выходят дороже. Я даже придумал объяснение про качество трафика.

Почему вывод развалился

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

Сам факт «типа нет» оказался связан с типом. Пропуски не случайные, а систематические.После ручной разметки недостающих кампаний и пересчёта на всех 235:

- CPO у автомата действительно выше — на 40%, это устояло
- Красивая часть про дешёвый клик развалилась: 10,1 ₽ против 10,9 ₽, разница 7%

Тезис держался исключительно на смещённой половине данных.

Неприятная правда

Когда часть строк отвалилась, вопрос «почему именно эти» важнее вопроса «сколько осталось». Шестьдесят процентов выборки звучат солидно ровно до момента, когда выясняется, что оставшиеся сорок отвалились по тому самому признаку, который вы изучаете.

Ловушка 3: ноль, которого на самом деле нет

Третья история — про фразы. Я искал те, что жгут бюджет без отдачи: двадцать и больше кликов, ноль заказов. Нашлось 42 фразы на 128 555 ₽.Звучит как чёткий сигнал к действию. Но есть нюанс.

В чём подвох

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

В отчёте они выглядят одинаково, а означают разное:
- «Продаж не было» — это данные
- «Данных нет» — это дыра

Оценку я оставил, но теперь понимаю её статус: это **нижняя граница**, а не измеренная величина. По всей выборке 14,9% фразового расхода приходится на фразы без единого заказа.

Самый дорогой мусор

Одна фраза из смежной развлекательной тематики: 3 273 клика, 30 829 ₽, ноль заказов. Площадка подмешивала карточку в высокочастотный запрос соседней темы. Клик стоил дёшево ровно потому, что ничего не значил: тридцать тысяч рублей за трафик, который изначально не собирался ничего покупать.

Фразы: расход, CTR, заказы — кандидаты в минус
Фразы: расход, CTR, заказы — кандидаты в минус

Что осталось от выводов после чистки

После чистки цифры перестали быть эффектными, зато им можно верить.

57% бюджета сидело в кампаниях, которые никто не трогал

Кампаний, отработавших месяц и дольше при ДРР выше 30%, набралось 56 — на них пришлось 861 260 ₽. Порог в 30% тут не физическая константа: точка безубыточности считается от маржи конкретного товара. Но месяцами держать кампанию выше любого разумного порога и не принимать решения — это не стратегия, а отсутствие процесса.

Каждая шестая кампания не принесла ни одного заказа

40 кампаний, 49 841 ₽, в среднем по 1 246 ₽. По итоговым цифрам не отличить забытую кампанию от вовремя остановленного теста — и в этом ловушка внимания: суммы маленькие, глаз за них не цепляется, а за восемь месяцев набегает полсотни тысяч.

Кампании с ДРР 82–171% рядом с нормальными 21–35%
Кампании с ДРР 82–171% рядом с нормальными 21–35%

CTR — лучший ранний индикатор

CTR | Количество кампаний | CPO | Расход
Ниже 2% | 61 | 1 343 ₽ | 175 878 ₽ ||
Выше 4% | — | 242 ₽ | — |

Разница в 5,5 раза. Но нужна оговорка, которую в маркетинговых статьях обычно проглатывают: это корреляция по неоднородным группам. Товары, категории и цены внутри групп разные, часть разрыва объясняется ими, а не самим CTR.

Как ранний сигнал CTR работает: он виден уже на сотнях показов, тогда как CPO требует накопленных заказов — то есть уже потраченных денег.

Выходные дороже будней

ДРР 50,7% против 43,6%, CPO 352 ₽ против 328 ₽. Разрыв держится на всём периоде, но он не означает, что срезанные на выходных ставки сохранят те же заказы. Это гипотеза под тест, а не готовый рецепт.

Как превратить разовый разбор в процесс

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

Четыре еженедельных проверки

1. Кампании с расходом больше 1,5–2 целевых CPO и нулём заказов — с поправкой на окно атрибуции, заказы доезжают с задержкой

2. Кампании, где накопленный ДРР держится выше товарного порога на протяжении расхода в 3–5 целевых CPO. Меряем расход, а не календарь: полмесяца открутки на трёх заказах статистически пусты

3. Фразы с расходом больше 1,5–2 CPO и нулём заказов — кандидаты в минус-лист, с оглядкой на конверсию карточки

4. Кампании, у которых CTR просел относительно медианы своих же кампаний того же формата

Пороги здесь не универсальные числа, а функции от вашей маржи. Целевой CPO — это маржа до рекламы. Предельный ДРР — та же маржа, делённая на цену.

У нас в «Ловец лидов.рф» похожая логика: мы настраиваем попапы так, чтобы они срабатывали по конкретным поведенческим триггерам, а не «на всех подряд» — и регулярно чистим сценарии, которые жгут показы без конверсий. Принцип тот же: не количество касаний, а качество.

Чек-лист для любой выгрузки {#чек-лист}

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

Вопрос 1: Что выпало?

Сколько строк выпало из группировки из-за пустых ячеек и какая доля денег в них лежит?

Вопрос 2: Почему выпало?

Пропуски случайны или связаны с тем, что вы измеряете? Если второе — выборка врёт даже при большом объёме.

Вопрос 3: Ноль — это ноль?

Ноль в отчёте — это измеренный ноль или отсутствие данных? Выглядит одинаково, значит разное.

Тип проблемы | Как выглядит? | Чем опасно? | Как проверить?
Пустые ячейки | Итоги не сходятся | Теряете большую часть данных | Посчитать расход в строках без группировки
Систематические пропуски | Выборка «достаточная» | Смещение по изучаемому признаку | Разобрать, почему именно эти строки пустые
Ложные нули | Фильтр «ноль заказов» | Занижаете масштаб проблемы | Проверить, возвращает ли отчёт данные для этого типа |

Выводы

Красивые выводы из данных — это обычно выводы, которые вы не перепроверили. Особенно если они подтверждают то, что вы и так подозревали.

Три правила, которые теперь у меня на автомате:

- Перед любым анализом — сверка итогов по разбивке с общим итогом кабинета
- Если строки отвалились — сначала понять почему, потом считать
- Ноль и прочерк в отчёте — разные вещи, даже если выглядят одинаково

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

Если вам важна не просто статистика, а качество трафика, который превращается в заявки — попробуйте ловец-лидов.рф. Бесплатный тариф есть, настройка занимает минуты, а ИИ-фильтрация показывает попапы только тем, кто реально готов оставить контакт — не всем подряд.

P.S. Если разбирали свой рекламный кабинет и наступали на похожие грабли — расскажите в комментариях, какие пороги ДРР и CPO используете и какие ещё ловушки в отчётах нашли.