Как правильно считать окупаемость SEO и рекламы: ROI, ROMI и модели атрибуции
Как я считаю ROI, ROMI, ROAS и CPA для SEO и рекламы: какие расходы и доходы включать, как не обмануть себя атрибуцией и какие отчёты нужны бизнесу.

Фраза «реклама окупается» часто оказывается пустой, пока не задано три вопроса: какая именно выручка учтена, какие расходы вошли в расчёт и кому мы присвоили продажу. Без этих ответов один и тот же проект может одновременно показывать ROAS 500%, отрицательный ROMI и прибыльный бизнес в целом. Ошибки здесь не в формулах — они обычно просты. Ошибки возникают в исходных данных и в желании получить один красивый показатель вместо честной модели.
Я считаю окупаемость не для отчёта подрядчика, а для решения: увеличить бюджет, остановить канал, изменить воронку или дать SEO больше времени. В этой статье собрал методику, которой пользуюсь при разборе рекламы и органического продвижения.
Посмотреть Nasloy ROI — сервис сквозной аналитики на базе Matomo
Сначала договоримся о терминах
ROI — Return on Investment, рентабельность инвестиций. В бизнесе его часто считают по всей инвестиции: маркетинг, производство, команда, логистика, платформа, комиссия и другие затраты.
ROMI — Return on Marketing Investment, рентабельность именно маркетинговых инвестиций. Он отвечает на вопрос: что принесла маркетинговая активность сверх связанных с ней затрат.
ROAS — Return on Ad Spend, отношение рекламной выручки к рекламным расходам. Это более узкий показатель: он может быть полезен для управления ставками и кампаниями, но не заменяет прибыльность.
CPA или CPL — стоимость целевого действия или лида. Эти метрики нужны для контроля воронки, однако дешёвый лид не обязательно становится клиентом.
| Метрика | Формула | Когда использовать | Чего она не показывает |
|---|---|---|---|
| CPA / CPL | Расходы / действия или лиды | Контроль верхней части воронки | Качество лида и прибыль |
| ROAS | Рекламная выручка / рекламные расходы | Управление рекламными кампаниями | Себестоимость, зарплаты, налоги |
| ROMI | (Маркетинговая прибыль − маркетинговые расходы) / маркетинговые расходы × 100% | Оценка эффективности маркетинга | Общую рентабельность компании |
| ROI | (Прибыль от инвестиции − все затраты) / все затраты × 100% | Решения об инвестициях и бизнес-модели | Детали качества отдельных каналов |
В отчёте я всегда подписываю формулу. Нельзя сравнить два ROMI, если в одном учтён только бюджет рекламного кабинета, а в другом — ещё агентская комиссия, скидки, доставка и зарплата отдела продаж.
Почему ROAS 500% не гарантирует прибыль
Представим магазин: реклама принесла выручку 500 000 ₽ при бюджете 100 000 ₽. ROAS равен 5 или 500%. На первый взгляд результат отличный. Но если валовая маржа 25%, то валовая прибыль составит 125 000 ₽. После вычета рекламы остаётся 25 000 ₽ до расходов на операционную команду, логистику, возвраты и налоги.
Если же считать от полной выручки, реклама выглядит в пять раз эффективнее, чем с точки зрения реальной экономики. Поэтому для ROMI я предпочитаю использовать валовую прибыль либо подтверждённую маржинальность, а не просто сумму оплаченных заказов.
Базовые формулы, которыми я пользуюсь
Для платной рекламы базовая связка выглядит так:
```
CPA = расходы на рекламу / количество целевых действий
CPL = расходы на рекламу / количество лидов
CAC = расходы на привлечение / новые клиенты
ROAS = выручка, атрибутированная рекламе / расходы на рекламу
ROMI = (валовая прибыль, атрибутированная маркетингу − маркетинговые расходы) / маркетинговые расходы × 100%
```
Слово «атрибутированная» здесь ключевое. При длинном цикле сделки я не включаю в расчёт только оплаты того же дня. Сначала задаю окно: например, рекламный клик в апреле может привести к договору в мае или июне. Затем использую согласованную модель атрибуции и обновляю когортный отчёт по мере созревания сделок.
Для SEO логика похожа, но расходы и сроки другие:
```
ROMI SEO = (валовая прибыль от органических сделок − затраты на SEO за период) / затраты на SEO × 100%
```
В затраты на SEO могут входить стратегия, техработы, контент, дизайн, разработка, ссылки, редактура и аналитика. Важно не приписывать органике продажи, которые пришли по брендовому спросу, ранее созданному рекламой или репутацией, не разобрав путь клиента.
Откуда брать данные, чтобы формулы не были фикцией
Я связываю четыре источника. Рекламные кабинеты дают расходы, клики и рекламные идентификаторы. Веб-аналитика показывает источник, кампанию, визит и событие. CRM хранит лид, квалификацию, сделку, статус и причину отказа. Учётная система или платёжный модуль подтверждают оплату, возврат и иногда маржу.
Путь должен быть склеен техническими идентификаторами: click ID, идентификатором визита, lead_id и deal_id. Номер телефона или email не стоит использовать как маркетинговый ключ в URL и событиях: это не нужно для расчёта и создаёт лишние риски для данных.
Matomo позволяет отслеживать кампании, цели и ecommerce-ценность. Его Reporting API можно использовать для программного получения отчётов. Но Matomo не узнаёт сам, что менеджер в CRM закрыл сделку через месяц. Этот этап нужно передать обратно через интеграцию и проверить на тестовых сценариях.
Какие расходы я включаю
Сначала делю расходы на три слоя.
Первый — медийный бюджет: деньги в Яндекс Директе, Google Ads, VK Ads и других системах. Он обязателен для ROAS.
Второй — прямые маркетинговые расходы: работа специалиста или агентства, коллтрекинг, антифрод, креативы, лендинги, фиды, копирайтинг и сервисы. Их обычно включаю в ROMI, если они прямо нужны каналу.
Третий — общебизнесовые расходы: производство, аренда, бухгалтерия, штат продаж, логистика и налоги. Они нужны, если считаем полный ROI продукта или направления.
Главное правило: не менять состав расходов задним числом, когда нужно доказать эффективность или неэффективность канала. Лучше показывать несколько уровней: ROAS по кабинету, ROMI маркетинга и маржинальность направления.
Как считать SEO честно
SEO редко похоже на рекламу «вложили сегодня — получили заказ завтра». Новые страницы индексируются не мгновенно, контент набирает видимость постепенно, а пользователи могут возвращаться через прямой вход или брендовый поиск. Поэтому месячный отчёт по SEO полезен для контроля работ, но часто слишком короток для окончательного вывода об окупаемости.
Я использую когортный подход. Беру группу страниц или кластер запросов, фиксирую дату запуска, расходы и органический спрос, а затем смотрю, как меняются лиды и выручка через 3, 6 и 12 месяцев. Отдельно разделяю брендовый и небрендовый органический трафик.
Плохой пример: сравнить январь с февралём и объявить SEO убыточным, хотя контент опубликован в конце января. Хороший пример: сравнить одинаковые когорты, учесть сезонность, изменения ассортимента, рекламу и скорость обработки лидов.
Как связать органику, рекламу, лиды и продажи в Matomo
Модели атрибуции: кому достаётся продажа
Клиент может познакомиться с брендом через рекламу, вернуться из поиска, прочитать статью, открыть письмо и только потом оставить заявку. Атрибуция — это правило, по которому стоимость или выручка распределяется между такими касаниями. Это не доказательство причинности, а прозрачная модель для принятия решений.
| Модель | Как распределяется ценность | Когда полезна | Риск интерпретации |
|---|---|---|---|
| Last non-direct | 100% последнему недирект-каналу | Оперативные отчёты и простая воронка | Переоценивает закрывающий канал |
| First touch | 100% первому касанию | Оценка спроса и узнаваемости | Недооценивает прогрев и ремаркетинг |
| Linear | Поровну всем касаниям | Когда нет сильной гипотезы о весах | Уравнивает важные и случайные визиты |
| Position based | Большая доля первому и последнему касанию | Длинный путь с явным знакомством и закрытием | Весы всё равно задаются вручную |
| Time decay | Больше ценности поздним касаниям | Короткий цикл и регулярные взаимодействия | Может недооценить начало пути |
Matomo в мультиканальной атрибуции поддерживает last interaction, last non-direct, first interaction, linear, position based и time decay. В Google Analytics набор доступных моделей и настройки отличаются, поэтому нельзя механически сравнивать отчёты двух систем без проверки их правил.
Я обычно вывожу как минимум first touch и last non-direct рядом. Если выводы по ним радикально различаются, это не ошибка — это сигнал, что канал участвует в пути клиента по-разному.
Пример расчёта без самообмана
Допустим, за месяц на рекламу потрачено 120 000 ₽. Кампания принесла 80 лидов, 20 квалифицированных заявок и 8 оплаченных сделок. Выручка — 480 000 ₽, валовая маржа — 40%, дополнительные прямые расходы на работу и сервисы — 30 000 ₽.
- CPL = 120 000 / 80 = 1 500 ₽;
- стоимость квалифицированной заявки = 120 000 / 20 = 6 000 ₽;
- CAC = 120 000 / 8 = 15 000 ₽;
- ROAS = 480 000 / 120 000 = 4 или 400%;
- валовая прибыль = 480 000 × 40% = 192 000 ₽;
- маркетинговые расходы = 120 000 + 30 000 = 150 000 ₽;
- ROMI = (192 000 − 150 000) / 150 000 × 100% = 28%.
Этот результат заметно скромнее ROAS 400%, но он пригоден для управленческого решения. А если часть сделок отменится или будет возвращена, я обновлю расчёт, а не оставлю в нём первоначальную оптимистичную выручку.
График, который я советую держать на дашборде
Вместо десятков виджетов полезнее одна последовательность по каждой кампании:
```
Расходы → клики → лиды → квалифицированные лиды → сделки → оплаты → валовая прибыль → ROMI
```
На каждом переходе видно, где находится проблема. Мало кликов — проверяем охват и ставку. Есть клики, но нет лидов — оффер, посадочная страница или качество трафика. Лиды есть, но не закрываются — смотрим квалификацию, скорость ответа и отдел продаж. Продажи есть, а ROMI слабый — считаем маржу, стоимость привлечения и повторные покупки.
Частые ошибки в отчётах
Первая — считать выручку вместо прибыли. Это делает товарный бизнес и проекты с высокой себестоимостью привлекательнее на бумаге, чем в реальности.
Вторая — оптимизировать рекламу на отправку формы, когда бизнес зарабатывает на подтверждённой оплате. В таком случае алгоритм начинает находить дешёвые, но слабые заявки.
Третья — игнорировать лаг между кликом и сделкой. Для сложных услуг правильнее смотреть когорты и созревание, а не только календарный месяц.
Четвёртая — дублировать конверсии между CRM, сайтом и рекламным кабинетом. Одна продажа должна иметь один устойчивый идентификатор.
Пятая — сравнивать каналы с разной атрибуцией. SEO в отчёте по first touch и реклама в отчёте по last click — это несопоставимые основания.
Шестая — не учитывать возвраты, отмены и скидки. Они особенно важны для e-commerce и подписочных моделей.
Как я выстраиваю отчётность
В начале проекта я фиксирую словарь метрик: что такое лид, квалифицированный лид, продажа, выручка, валовая прибыль, расход и возврат. Затем настраиваю сбор событий, правила UTM и передачу статусов из CRM. После этого сверяю тестовые сделки вручную и только потом показываю дашборд руководителю.
В Nasloy ROI я собираю слой сквозной аналитики на базе Matomo с улучшенными отчётами, атрибуцией каналов и контролем окупаемости. Это помогает видеть не только цифры из рекламного кабинета, но и путь до фактической продажи.
Если необходимо улучшить сам рекламный канал, посмотрите услугу ведения контекстной рекламы. Для роста небрендового спроса пригодится SEO-продвижение.
Вывод
Правильная окупаемость SEO и рекламы начинается не с формулы, а с качества данных и согласованных правил. ROAS помогает быстро управлять рекламным бюджетом. ROMI показывает, создаёт ли маркетинг прибыль после прямых затрат. ROI полезен на уровне продукта и бизнеса. Атрибуция объясняет, как распределяется ценность между каналами, но не отменяет необходимости проверять продажи и маржу.
Я выбираю систему отчётности, в которой можно дойти от итоговой цифры до конкретной сделки, кампании и касания. Тогда «реклама работает» превращается в измеримое решение — с понятными ограничениями, формулами и следующим действием.
Настроить контроль окупаемости в Nasloy ROI
Официальные источники
Matomo: мультиканальная атрибуция конверсий
Matomo: настройка и анализ отчётов по атрибуции
Google Analytics: основы атрибуции