Отчёты и ROI: где течёт воронка и какие срезы приносят деньги
Страница «Отчёты» сворачивает каждый клик ваших кампаний в таблицу воронки, сгруппированную по кампании, гео, сабу или дню. Рядом с воронкой сразу стоят «Доход», EPC, «Затраты», ROI и цена конверсии, так что решить, что масштабировать, а что резать, можно одним взглядом, а не тремя табличками в Sheets.
Собираем отчёт
- Откройте «Отчёты» и выберите группировку: Кампания, Гео, Sub1 или День.
- Сузьте охват выпадающим списком кампаний (по умолчанию «Все кампании»). Классика чтения сплит-теста - «кампания X в разрезе гео».
- Задайте диапазон дат. Обе даты в UTC, конечная дата включает весь день.
- Поделитесь ссылкой: все фильтры живут в URL, поэтому точный вид отчёта (группировка, кампания, даты) уходит коллеге обычной ссылкой.
Как читать воронку
Колонки идут слева направо: «Клики» → «Лендинг» → «Старт бота» → «Регистрации» → «Лиды» → «Депозиты» → «FTD». Каждая колонка считает клики, дошедшие как минимум до этой стадии. Статус клика движется только вперёд, поэтому числа слева направо только убывают, и самый большой провал между соседними колонками - это ваша течь. CR→FTD - сквозная конверсия из клика в FTD. Строку «Итого» считает сервер по всему срезу, а не по строкам на экране. В отчёте максимум 500 строк с сортировкой по трафику (для «День» - хронологически), так что на высококардинальных сабах видны только топовые срезы, но «Итого» продолжает покрывать их все.
Самая левая колонка - это само значение группировки, и у неё есть пустой случай: клики без кампании, без гео или без sub1 (смотря по какому измерению группируете) схлопываются в одну строку «—». У «Дня» такого разрыва не бывает - у каждого клика есть таймстамп. Эта строка - реальный трафик, а не баг рендера, так что не выкидывайте её из анализа.
«Доход» и EPC
«Доход» - это сумма выплат (payout), прикреплённых к конверсионным событиям кликов в строке. Выплата приходит вместе с самой конверсией: когда рекламодатель или ваша интеграция репортит deposit или ftd через API событий, передайте поле payout - и доллары попадут в эту колонку. Считаются только события со статусом charged или free. События refunded, blocked, pending и error не учитываются, так что конверсия, которая ещё крутится в биллинг-пайплайне, покажет здесь $0 - точно так же, как возврат или блокировка. EPC, доход на клик (Доход, делённый на Клики), - ключевая цифра юнит-экономики: EPC выше вашего среднего CPC значит, что срез печатает деньги, ниже - что он их жжёт.
«Затраты», ROI и цена конверсии (Кампания, Sub1 и День)
У расхода есть собственный ключ: кампания, UTC-день и sub1. Именно поэтому три денежные колонки - «Затраты», ROI и «Цена конверсии (FTD)» - появляются на срезах «Кампания», «Sub1» и «День», и именно поэтому фильтр дат сужает расход так же, как он сужает доход.
Цена конверсии - это «Затраты», делённые на конверсии FTD, то есть намеренно то же самое событие, по которому считается колонка CR; событие написано прямо в заголовке колонки, чтобы два числа не могли означать разное. Строка, где расход есть, а конверсии ещё нет, показывает прочерк, а не $0: цена не нулевая, а неизвестная.

Как вносить затраты
Два способа, оба ручные:
- Прямо в ячейке. Когда фильтры вместе со строкой указывают ровно на одну кампанию и один день, ячейка «Затраты» становится полем ввода: на срезе «День» выберите одну кампанию, на срезе «Sub1» выберите одну кампанию и поставьте обе даты на один день, на срезе «Кампания» поставьте обе даты на один день. Введите сумму и нажмите Enter или уведите фокус; пустая ячейка удаляет эту строку расхода. Везде остальное ячейка только для чтения, потому что иначе «сохранить это число» пришлось бы угадывать, какой день и какое объявление вы имели в виду.
- Кнопка «Внести затраты». Рядом с фильтрами; принимает строки, скопированные из рекламного кабинета, по одной на строку:
день, sub1, суммаилидень, суммадля дня без разбивки по sub1. Разделителем работают табуляция, точка с запятой и запятая, строка-заголовок пропускается. При табуляции или точке с запятой1 234,56и1,234.56читаются одинаково как 1234.56; при запятой сумма, внутри которой тоже стоит запятая, отвергается, а не угадывается (ниже). Строки, которые не разобрались, перечисляются с номером и причиной и не сохраняются; остальные сохраняются.
Один случай отвергается, а не угадывается: строка, разделённая запятыми, в которой запятая стоит ещё и внутри суммы — как разделитель разрядов (1,234.56) или как десятичная (1234,56, 1 234,56). 2026-08-30, 1,234.56 — это в равной мере «sub1 1, сумма 234.56» и «сумма 1234.56»; 2026-08-30, 1234,56 — в равной мере «sub1 1234, сумма 56» и «сумма 1234.56». Оба прочтения законны, поэтому строка отклоняется с этой причиной, а не сохраняет молча долю денег под ключом объявления, которого вы не вводили. Разделите колонки табуляцией или точкой с запятой либо напишите сумму через точку и без разделителя разрядов. Строка на запятых со всеми тремя колонками и запятой внутри суммы (2026-08-30, creative-a, 1 234,56) распадается на четыре поля и отклоняется как ошибка числа колонок — лечится тем же.
На каждую пару (кампания, день) расход хранится либо одним числом без разбивки по sub1, либо строками по sub1, но никогда не тем и другим сразу. Смесь посчитала бы день дважды, поэтому вторая форма отвергается сообщением, а не выигрывает молча.
Ячейка датированного расхода сообщает о неудачной записи: поле помечается как невалидное и несёт причину. Старая ячейка «Затраты» на кампанию - та, что появляется на срезе «Кампания» без фильтра дат, - по-прежнему молча отклоняет отрицательные и нечисловые значения: ничего не сохраняется, сообщения нет, поэтому сначала проверьте на случайный символ и только потом подозревайте, что запрос не прошёл.
Чего эти колонки делать не будут
У срезов «Гео» и «Оффер» колонки «Затраты» нет вовсе, и это решение, а не пробел. Расход не ключуется ни страной, ни оффером. Единственный способ показать там деньги - размазать расход кампании по строкам пропорционально кликам, а это арифметически равно CPC кампании, делённому на CR строки: колонка, которая не несёт ни бита сверх уже показанной CR, но выглядит как измеренная цена. На реальном аукционе, где у креативов разный CPC, она льстит дорогим и оговаривает дешёвые, то есть подталкивает вас убить работающее объявление.
Строка может показывать расход при нуле кликов: креатив, сжёгший бюджет и не давший ни одного метрического клика, всё равно появится, потому что строки расхода подбираются по ключу, а не приджойниваются к кликам. Такая строка и есть весь смысл: это деньги, которых больше нигде не видно.
Строку «Итого» считает сервер по всему срезу, а не по 500 строкам на экране, и страница говорит об этом, когда срез длиннее. «Итого» по затратам может быть и больше суммы колонки «Затраты»: расход, введённый на день без разбивки по sub1, - реальные деньги, которые срез по sub1 не может отнести ни к одному объявлению. Страница объясняет это строкой под таблицей, а не показывает молча два разных числа.
Старые затраты на кампанию
Раньше «Затраты» были одним числом на всю жизнь кампании, без даты. Это число никуда не делось, и на срезе «Кампания» без фильтра дат ведёт себя ровно как прежде: отчёт там покрывает всё время, поэтому число за всю жизнь и есть расход периода. Как только вы фильтруете по датам, оно больше не показывается и не редактируется - оно никогда не относилось к выбранным дням. Внесите датированный расход за эти дни, и колонка заполнится снова, на этот раз честно.
Сырые данные: CSV кликов
Когда четырёх группировок мало (нужен sub2 в разрезе гео или почасовой срез), откройте «Клики», выставьте те же фильтры (статус, кампания, диапазон дат, поиск) и нажмите «Экспорт CSV». Экспорт выгружает все подходящие строки, а не только видимую страницу, с колонками id, campaignId, sub1, sub2, sub3, geo, status, createdAt. Дальше стройте сводные таблицы как угодно - в Sheets или в ноутбуке.
Частые грабли
- Датированный расход - это то, что делает ROI правдой под фильтром дат. Пока вы не внесли расход по дням, фильтр на прошлую неделю даст недельный «Доход» рядом с пустыми «Затратами» - прочерк, и намеренно, вместо прежнего числа за всю жизнь кампании, которое к этим семи дням отношения не имело.
- Даты - в UTC, и для расхода тоже. День, который вы вписываете в строку расхода, - это UTC-день, поэтому «вчера» в таймзоне рекламного кабинета не обязательно тот день, в который отчёт его положит; выровняйте временные зоны, прежде чем сравнивать.
- Строка «Итого» покрывает весь срез, поэтому на отчёте длиннее 500 строк она законно больше суммы строк, которые вы видите.
- «Доход» остаётся на нуле, пока конверсия не несёт
payout, а её статус биллинга не станетchargedилиfree. Нулевой EPC на конвертящей кампании может быть дыркой в интеграции, но может быть и событием, зависшим вpendingилиerror, пока биллинг его не досчитал, - проверьте payout и статус биллинга, прежде чем считать воронку сломанной. - Строка «—» появляется там, где у текущего измерения нет значения: нет кампании, нет гео или нет sub1. Это реальный трафик, не игнорируйте его, а в разрезе «Кампания» вы просто не сможете задать ему «Затраты».