Никита.Бердников
roistat

Настройка Roistat без ошибок: как с первого раза свести рекламу с продажами в amoCRM и увидеть реальную окупаемость

Разбираю настройку Roistat как сборку цепочки реклама→заявка→сделка→оплата: где рвётся атрибуция и почему окупаемость каналов считается неверно с первого дня.

Никита Бердников
Партнёр amoCRM и Roistat·26 июня 2026
Настройка Roistat без ошибок: как с первого раза свести рекламу с продажами в amoCRM и увидеть реальную окупаемость

«Подключён» — ещё не значит «считает верно»

Roistat начинает рисовать окупаемость каналов в первый же день после подключения. И цифры выглядят достоверно: вот источники, вот заявки, вот доход по строкам. Проблема в том, что эти цифры остаются на экране даже когда цепочка реклама→заявка→сделка→оплата разорвана в одном из звеньев. Система не показывает дыру — она показывает результат, посчитанный по тому, что до неё долетело.

Окупаемость становится правдой только при одном условии: непрерывная цепочка. Номер визита долетает из cookie в поле сделки amoCRM, выручка берётся из даты оплаты, разметка едина по всем кабинетам. Рвётся любое звено — ручная сделка без источника, пустое поле roistat, разнобой в метках — и система продолжает считать, но уже неверно. Бюджет начинают перераспределять в пользу каналов, которые просто лучше «видно» в отчёте. С первого дня.

Разберу цепочку по звеньям — где именно она рвётся на старте и почему.

Номер визита — звено, на котором держится атрибуция

Вся связка источника с деньгами держится на одном техническом параметре — номере визита. Пользователь заходит на сайт, ему в cookie _roistat_visit_ присваивается номер визита. Он оставляет заявку — в amoCRM создаётся лид, и в поле «roistat» автоматически передаётся этот номер. Именно он связывает конкретную сделку с источником трафика, по которому человек пришёл.

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

Передачу cookie на старте я проверяю в первую очередь, потому что обрыв здесь обнуляет атрибуцию по всем последующим сделкам разом. В отчёте это выглядит безобидно — «трафик без источника», строчка как строчка. На деле это означает, что часть выручки уже не привязана ни к одному каналу.

Деньги приходят из даты оплаты в amoCRM

Деньги приходят из даты оплаты в amoCRM
Деньги приходят из даты оплаты в amoCRM
Цепочка атрибуции Roistat
Цепочка атрибуции Roistat

Дальше важный момент, который ломает интуицию. Выручка для расчёта окупаемости подтягивается из поля «Дата оплаты» (date_paid), а не по факту поступления заявки. Roistat загружает полную историю изменения сделок и умеет подтягивать себестоимость из CRM — значит, считать можно по чистым деньгам, а не по обороту.

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

CRM здесь остаётся единственным достоверным источником по деньгам. Когда сделка переходит в статус «Оплачено», система находит идентификатор, присвоенный человеку при первом визите, и привязывает выручку к каналу. Рекламные кабинеты видят клики и заявки — деньги они не видят. Поэтому источник истины по выручке — amoCRM, и качество данных в нём определяет качество всей аналитики.

Где цепочка рвётся на старте

Технических причин обнуления атрибуции на старте немного, и они повторяются от проекта к проекту. На Tilda в формах отключена опция «Посылать Cookies» — номер визита просто не уезжает в CRM. В ссылках сломана разметка: пропали разделители ?&, потеряны параметры rs/roistat, отсутствуют roistat_referrer и roistat_pos. SIP-пользователь коллтрекинга не зарегистрирован в АТС — и звонки не привязываются к визитам, телефонный канал выпадает целиком.

Диагностика Roistat задаёт здесь конкретные пороги, и я отношусь к ним как к сигнализации. Уже 1% заявок без номера визита — повод лезть проверять передачу cookies. Поле roistat заполнено меньше чем у 70% сделок (пусто более чем у трети) — это системная потеря источника, а не случайность.

Главная дыра — без техники. Офлайн-сделки и ручной ввод. Менеджер заводит сделку руками, канал не указывает — и она выпадает из атрибуции навсегда: привязать клиента к рекламе постфактум уже нельзя, метки фиксируются в момент клика, которого здесь не было. Лечится это автоматизацией ввода — статическими значениями и промокодами для офлайн-источников плюс заполнением поля roistat для каждого такого случая. Сборку этой цепочки целиком я и беру на настройку Roistat под выручку, потому что половина обрывов живёт именно на стыке сайта, телефонии и ручного ввода в CRM.

Единое написание меток по всем кабинетам

Единое написание меток по всем кабинетам
Единое написание меток по всем кабинетам

Отдельно — разметка UTM. Каждое объявление обязано стабильно передавать utm_source, utm_medium, utm_campaign, utm_content, utm_term в одинаковом написании по всем системам — Яндекс.Директ, VK Реклама и остальные. Разнобой в написании дробит один и тот же канал на несколько строк в отчёте, и окупаемость по нему рассыпается: часть выручки в одной строке, часть в другой, вывод по каналу сделать нельзя.

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

Когда окупаемость становится правдой

ROMI считается прямо: (Доход − Затраты на маркетинг) ÷ Затраты на маркетинг × 100%. При доходе 500 000 ₽ и расходах 200 000 ₽ выходит 150%. Ниже 0% — реклама в убыток, 0% — вернули вложенное без прибыли. Формула элементарная, и именно поэтому опасная: она посчитает что угодно из любых чисел, которые ей дали.

Корректный ROMI живёт только при сведённых в один контур данных сайта, рекламных кабинетов, CRM и коллтрекинга. При разорванной атрибуции цифра спекулятивна — красивая и бесполезная. Плюс сами пороги «нормы» не учитывают маржинальность: высокий процент при тонкой марже легко прячет убыток. Как одна оплата проходит через формулу и где модель приписывает её не тому каналу — я разбирал отдельно в материале о том, как Roistat считает ROMI на одной воронке.

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

И последнее. Пока кабинеты, CRM, телефония и веб-аналитика не связаны в один контур, одна конверсия считается по-разному в каждой системе. Тогда оптимизация уходит на дешёвый клик и дешёвую заявку — вместо дешёвой продажи. Roistat окупается в тот момент, когда цепочка реклама→заявка→сделка→оплата собрана без разрывов. До этого момента он не считает окупаемость — он её имитирует.

roistatсквозная аналитика
Никита Бердников

Никита Бердников

Официальный партнёр amoCRM (ID 28602378), Roistat, SIPUNI и Wazzup24. 5+ лет настраиваю CRM, сквозную аналитику и телефонию под выручку — лично, без агентских посредников. 25+ проектов, ₽100M+ выручки клиентов.

Похожие статьи

Окупаемость рекламы в длинном цикле сделки: окно атрибуции по медиане и когорты в Roistat
6 мин

Окупаемость рекламы в длинном цикле сделки: окно атрибуции по медиане и когорты в Roistat

В строительстве, недвижимости и корпоративных продажах Roistat относит расход к месяцу клика, а выручку — к месяцу оплаты. Как настроить окно атрибуции по медиа

roistatсквозная аналитика
Никита Бердников · 21 авг 2026Читать
Почему Roistat показывает канал убыточным: вклад в сделку прячется в цепочке касаний
5 мин

Почему Roistat показывает канал убыточным: вклад в сделку прячется в цепочке касаний

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

roistatсквозная аналитика
Никита Бердников · 8 авг 2026Читать
Зелёный ROMI в Roistat без прибыли: где в отчёте теряется маржа и почему счёт по выручке завышает окупаемость
5 мин

Зелёный ROMI в Roistat без прибыли: где в отчёте теряется маржа и почему счёт по выручке завышает окупаемость

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

roistatсквозная аналитика
Никита Бердников · 25 июля 2026Читать

Кейс по теме

Собственный проект — nikitaberdnikov.ru — Услуги для бизнеса

0 ₽/мес · за сквозную аналитику вместо подписки на сервис

Разберу вашу ситуацию

Если статья попала в вашу задачу — напишите, что у вас сейчас со связкой реклама → CRM → выручка. Отвечу лично в течение рабочего дня.

Отвечаю сам в течение 2 часов в рабочее время. Без спама и обзвонов.