Все статьи
12 мин чтения

Как рассчитать ROAS и ROI на платном трафике (формулы + примеры)

Латунные весы взвешивают кучу монет против груды использованных, обгоревших спичек

Ads Manager показывает, что кампания отработала с ROAS 3.1x. Потрачено $8,200, отслежено $25,500 в «purchase»-ценности, стрелка вверх и вправо. Затем приходит выгрузка из CRM: из 1,020 регистраций, которые Facebook засчитал как конверсии, депозит внесли только 150. Реальный RevShare-доход от этих 150 игроков за следующие 30 дней: $6,150. Реальные расходы, включая рекламный спенд и комиссию сети за обработку $350: $8,550. Чистый результат: убыток $2,400 на кампании, которую Facebook советует масштабировать ещё сильнее. Это не редкий баг — так происходит каждый раз, когда платформа, отчитывающаяся о твоём ROAS, не видит событие, которое реально генерирует доход. Если тебе нужна цифра, на основе которой стоит масштабировать кампанию или убивать её, — считай её сам.

ROAS, ROI и ROMI: формулы, которые тебе нужны

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

МетрикаФормулаНа какой вопрос отвечает
ROAS (Return on Ad Spend)Доход ÷ Рекламный спенд«Сколько дохода вернулось на каждый $1 рекламного спенда?»
ROI (Return on Investment)(Доход − Общие расходы) ÷ Общие расходы × 100«Какой процент прибыли я получил со всего, что потратил, а не только с рекламы?»
ROMI (Return on Marketing Investment)(Валовая прибыль − Маркетинговые расходы) ÷ Маркетинговые расходы × 100«Если учитывать только маркетинговые расходы, какая у меня отдача?»
ROAS = Доход / Рекламный спенд

ROI = (Доход - Общие расходы) / Общие расходы × 100
    = Чистая прибыль / Общие расходы × 100

ROMI = (Валовая прибыль - Маркетинговые расходы) / Маркетинговые расходы × 100

ROAS — это коэффициент («3.1x»), который игнорирует всё, кроме рекламного спенда. ROI — это процент, и он имеет смысл только тогда, когда «Общие расходы» включают все реальные затраты: комиссии сети, подписку на трекер/CRM, чарджбеки. ROMI ограничивает ту же математику только маркетинговыми расходами, что важно, когда у бизнеса есть затраты вне контроля маркетинга (себестоимость товара, фулфилмент). Для медиабайера, который льёт платный трафик на партнёрские офферы, рекламный спенд обычно составляет почти все маркетинговые расходы, поэтому ROMI и ROI обычно сходятся в одну цифру.

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

Точка безубыточности ROAS и точка безубыточности CPA

Прежде чем называть цифру «хорошей», нужно знать порог, ниже которого ты уже в минусе — и обычно это не 1.0x.

Точка безубыточности ROAS = 1 + (Нерекламные расходы / Рекламный спенд)

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

Если рекламный спенд — единственная твоя затрата, точка безубыточности ROAS равна ровно 1.0x. Добавь комиссию сети $150 поверх спенда $6,000 — и порог сдвинется:

Точка безубыточности ROAS = 1 + (150 / 6,000) = 1.025x

Ниже 1.025x на этой кампании ты уже теряешь деньги — даже если наивное прочтение говорит «больше 1x, всё в порядке».

Для CPA-офферов полезнее перевернуть вопрос: сколько максимум ты можешь позволить себе платить за конверсию в рекламе? Это и есть точка безубыточности CPA:

Точка безубыточности CPA = Выплата за конверсию - Переменная стоимость на конверсию

Если нутра-сеть платит $32 за подтверждённый FTD, а стоимость трекера/обработки — $1.33 за конверсию, точка безубыточности CPA составляет $30.67. Ставишь до этой цифры — структурно в плюсе; переходишь за неё — каждая конверсия убыточна, независимо от того, какой ROAS показывает дашборд.

Разобранный пример: гемблинг-кампания на RevShare

МетрикаЗначение
Рекламный спенд$6,000
Клики12,000
CPC$0.50
Регистрации600
FTD180
RevShare-доход на FTD (окно 30 дней)$45
Прочие прямые расходы (комиссия сети)$150
Общий RevShare-доход = 180 FTD × $45 = $8,100

ROAS = $8,100 / $6,000 = 1.35x

Общие расходы   = $6,000 (рекламный спенд) + $150 (комиссия сети) = $6,150
Чистая прибыль  = $8,100 - $6,150 = $1,950
ROI             = $1,950 / $6,150 × 100 = 31.7%

Точка безубыточности ROAS = 1 + (150 / 6,000) = 1.025x

Фактический ROAS (1.35x) уверенно перекрывает точку безубыточности ROAS (1.025x) — и это реальная прибыль, ведь $8,100 — это подтверждённый RevShare-доход из постбека оператора, а не предполагаемая пикселем ценность.

Дисциплина: не оценивай RevShare-кампанию только по стоимости FTD в день 1. Цифра $45 за FTD выше — это значение после того, как закроется 30-дневное окно и осядут рибиллы. Если посчитать это в день 1, до созревания депозитов, реальный доход будет занижен, и прибыльную кампанию могут убить слишком рано (подробнее об этом в Что такое FTD-трекинг).

Разобранный пример: нутра-кампания на CPA

МетрикаЗначение
Рекламный спенд$2,400
Клики6,000
CPC$0.40
Подтверждённые FTD (CPA-конверсии)90
Выплата за FTD$32
Стоимость трекера/обработки$120 всего ($1.33/конверсию)
Доход = 90 × $32 = $2,880

ROAS = $2,880 / $2,400 = 1.2x

Общие расходы  = $2,400 + $120 = $2,520
Чистая прибыль = $2,880 - $2,520 = $360
ROI            = $360 / $2,520 × 100 = 14.3%

Достигнутый CPA           = $2,400 / 90 = $26.67
Точка безубыточности CPA  = $32 - $1.33 = $30.67
Маржа/конверсию           = $30.67 - $26.67 = $4.00  →  $4.00 × 90 = $360  (совпадает с чистой прибылью)

Математика CPA чище, чем у RevShare, потому что выплата фиксирована и подтверждается в момент срабатывания постбека — без угадывания lifetime value. Плата за это — более тонкая маржа: ROAS 1.2x здесь — это действительно напряжённая кампания, тогда как 1.2x на RevShare-оффере, который ещё не доначислился, с высокой вероятностью окажется убыточным после полного созревания.

EPC и EPV: входные данные за каждой цифрой ROAS

Earnings per click (EPC) и earnings per visit (EPV) — это строительные блоки, из которых складывается твой ROAS. Их стоит отслеживать отдельно, потому что они показывают, где кампания выигрывает или проигрывает, ещё до того, как это покажет совокупный ROAS.

EPC = Общий доход / Общие клики
EPV = Общий доход / Проверенные визиты (после фильтрации трафика)

Применим это к двум разобранным примерам выше:

Гемблинг: EPC = $8,100 / 12,000 = $0.675
Нутра:    EPC = $2,880 / 6,000  = $0.48

Обрати внимание: EPC ÷ CPC воспроизводит тот же ROAS, который ты уже посчитал:

Гемблинг: $0.675 / $0.50 = 1.35x  (совпадает)
Нутра:    $0.48  / $0.40 = 1.2x   (совпадает)

Это тождество полезно ещё до того, как ты потратил хоть доллар: зная свой типичный CPC и исторический EPC на оффере, можно заранее оценить ожидаемый ROAS. Именно поэтому EPC, разбитый по источнику трафика, креативу или статусу воронки, важнее одной усреднённой цифры — креатив со скромным CTR, но высоким EPC, может зарабатывать больше, чем «более эффективный по показателям» креатив, который собирает больше кликов при более низком EPC. Аналитика DarkCore разбивает EPC по статусу конверсии и показывает конверсию click-to-status и install-to-status рядом, так что ты видишь, какой этап воронки реально генерирует доход, вместо того чтобы выводить это из одной строки ROAS.

EPV отличается только знаменателем: он считается на основе проверенных, отфильтрованных визитов, а не сырых рекламных кликов. Если часть твоих платных кликов — это боты или трафик, который твоя фильтрация качества отсеивает ещё до оффера, EPC занижает реальную конверсию оффера — EPV на чистых визитах показывает истинную заработную способность трафика, который действительно дошёл до страницы.

Почему ROAS, который показывает Facebook, — это не твой реальный ROAS

Занавес фокусника: одна рука разбрасывает ливень монет перед занавесом, а тем временем за ним, скрытые от глаз, лишь несколько настоящих монет падают в маленькую банку

Вернёмся к кампании из вступления. Цифра Facebook 3.1x не была сфабрикована — платформа сделала ровно то, на что её настроили: умножила количество конверсий на статичное значение, вписанное в настройки пиксельного события, и разделила на спенд. Пиксель срабатывал на завершение регистрации с предполагаемой ценностью «purchase» $25 за событие (распространённый обходной приём в гемблинг-вертикали, которая не передаёт Meta детализированные данные о депозитах), и у Facebook не было способа узнать, что 870 из тех 1,020 регистраций так и не внесли ни одного доллара. Это не баг, а структурная особенность: пиксель — или даже серверное событие Conversions API — может сообщить только то, что ему передали, и только тогда, когда передали. Он не может через три недели проверить твою CRM на предмет повторного депозита, отмены чарджбека или RevShare, поступившего ниже прогноза из-за того, что аккаунт пометили за злоупотребление бонусами.

Решение не в том, чтобы перестать доверять Facebook и вместо этого гадать, а в том, чтобы атрибутировать доход у источника. DarkCore отправляет пиксели и постбеки только на реальные, подтверждённые конверсии, полученные из колбека оператора или сети: депозит становится доходом в момент, когда приходит постбек, а не когда загружается страница. Это значит, что ROAS в твоём дашборде рассчитывается на основе денег, которые реально поступили, а auto-rules могут ставить кампанию на паузу или масштабировать её на основе этого реального, привязанного к депозитам ROAS — то, что собственные автоматизированные правила Facebook структурно сделать не могут, ведь они видят только цифру со стороны пикселя.

Как свести ROAS и ROI в реальный P&L

ROAS одной кампании — это диагностика, а не P&L. Чтобы знать, действительно ли аккаунт зарабатывает деньги, реальный доход и реальные расходы каждой кампании должны попасть в один реестр.

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

Объединим два разобранных примера выше в одну неделю:

СтатьяСумма
Рекламный спенд — гемблинг-кампания$6,000
Рекламный спенд — нутра-кампания$2,400
Общий рекламный спенд$8,400
RevShare-доход (гемблинг)$8,100
CPA-доход (нутра)$2,880
Общий доход$10,980
Комиссии сети/трекера$270
Общие расходы$8,670
Чистая прибыль$2,310
Смешанный ROAS = $10,980 / $8,400 = 1.31x
Смешанный ROI  = $2,310 / $8,670 × 100 = 26.6%

Это тот уровень, на котором работает двойная бухгалтерская запись: рекламный спенд и комиссии сети проводятся как дебет, подтверждённые постбеки дохода — как кредит, а чистая прибыль — это то, что остаётся, когда каждая реальная транзакция занесена в книгу, — не оценка, а учёт. Модуль финансов DarkCore ведёт это автоматически для каждого воркспейса, так что «смешанный ROAS» — это не таблица, которую ты пересобираешь каждый понедельник.

Одно предостережение: смешанные цифры скрывают, какая именно кампания делает работу. Одна только гемблинг-кампания держит ROI 31.7%, тогда как нутра — на уровне 14.3%; смешанный показатель 26.6% выглядит здоровым, но выглядел бы иначе завтра, если бы источник гемблинг-трафика забанили. Держи маржинальную цифру по каждой кампании рядом со смешанной.

Типичные ошибки

  1. Считать регистрации или пиксельные события «purchase» за доход. Facebook насчитал 1,020 регистраций; депозит внесли только 150 — масштабирование по количеству регистраций вместо подтверждённых депозитов — это то, как кампания с «3.1x ROAS» превращается в убыток $2,400.
  2. Считать RevShare ROAS только по стоимости FTD в день 1. RevShare накапливается на протяжении всего окна атрибуции — рибиллы, повторные депозиты, дальнейшая игра. Оценка только по первому депозиту занижает доход и убивает прибыльные кампании до того, как они созреют.
  3. Использовать смешанный ROAS вместо маржинального ROAS по каждой кампании или адсету. Смешанный 1.3x может означать, что один прибыльный адсет тащит на себе три убыточных. Решения об отключении требуют маржинальной цифры, а не средней по аккаунту.
  4. Не учитывать нерекламные расходы в ROI. Комиссии сети, подписка на трекер/CRM, чарджбеки и рефанды — всё это уменьшает реальную прибыль. Кампания может показывать ROAS 1.4x и одновременно иметь отрицательный ROI, когда учтены все реальные расходы.
  5. Сравнивать CPA- и RevShare-офферы по сырому ROAS. ROAS 1.2x на фиксированной CPA-выплате и ROAS 1.2x на RevShare-оффере, который ещё накапливается, несут совершенно разный риск — цифра CPA финальна в момент срабатывания постбека, а цифра RevShare всё ещё движется.

FAQ

Какой ROAS считается хорошим для платного трафика на партнёрские офферы?

Универсальной цифры не существует — всё зависит от модели выплат и структуры расходов. CPA-офферы должны перекрывать точку безубыточности ROAS (часто 1.15x–1.3x с учётом комиссий трекера и сети), чтобы имело смысл их запускать. RevShare-офферы обычно требуют большего запаса — 1.3x–1.5x и выше по цифрам окна FTD — потому что часть этого коэффициента всё ещё должна покрывать волатильность рибиллов и отток, который невозможно предсказать в день 1.

В чём разница между ROAS и ROI?

ROAS — это доход, делённый только на рекламный спенд, — он игнорирует все остальные расходы. ROI — это чистая прибыль (доход минус общие расходы, включая нерекламные), делённая на общие расходы, в процентах. Кампания может показывать сильный ROAS и одновременно иметь отрицательный ROI, если нерекламные расходы достаточно велики.

ROMI — это то же самое, что ROI?

Функционально — да, та же формула, более узкий охват. ROMI изолирует отдачу именно от маркетинговых расходов, что важно, когда есть затраты вне маркетинга (себестоимость товара, фулфилмент). Для медиабайера, чья основная затрата — это рекламный спенд плюс комиссия сети/трекера, ROMI и ROI обычно сходятся в одну цифру.

Как быстро проверить, прибыльна ли кампания?

Сравни её реальный ROAS — доход из подтверждённых конверсий, а не из предполагаемой пикселем ценности — с точкой безубыточности ROAS (1 + нерекламные расходы ÷ рекламный спенд). Если реальный ROAS перекрывает точку безубыточности — ты в плюсе; если нет, никакая метрика CTR или CPM в другом месте дашборда этого не изменит.

Каждая формула выше — это простая арифметика. Сложное здесь — кормить её реальными цифрами вместо тех, которые платформа готова тебе показать. Facebook всегда будет отчитываться по тому событию, которое ты ему передал, и тогда, когда передал, и никогда не проверит твою CRM на депозит, который пришёл через девятнадцать дней. Если ты масштабируешь или убиваешь кампании только по ROAS из Ads Manager, посчитай ту же математику по подтверждённым конверсиям в течение недели — и посмотри, насколько далеко расходятся эти две цифры. DarkCore по умолчанию атрибутирует доход по реальным постбекам депозитов и CPA, так что ROAS, ROI и auto-rules работают с цифрой, которая действительно правдива. Напиши нам в Telegram или войди и проверь свои реальные цифры.

  • roas
  • roi
  • медиабаинг
  • точка безубыточности
  • юнит-экономика