Roistat считает окупаемость рекламы только тогда, когда видит не заявки, а реальные деньги. Источник этих денег — RetailCRM: именно там заказ проходит путь от нового до оплаченного и отгружённого. Разбираем, как построить корректную связку и что чаще всего ломает отчёты.
Что даёт связка Roistat и RetailCRM
Roistat — сервис сквозной аналитики: он собирает расходы из рекламных кабинетов (Яндекс Директ, VK Реклама, Google Ads и другие), сопоставляет их с заявками и продажами и показывает окупаемость по каждому каналу, кампании и ключевому слову. Но сам по себе Roistat знает только про визиты и лиды на сайте. Данные о том, чем закончился заказ, живут в RetailCRM — оплачен он, отменён или ушёл в возврат.
Связка закрывает этот разрыв. Roistat передаёт в заказ метку визита, а RetailCRM возвращает статус и сумму. В результате в отчётах видно не абстрактную «стоимость заявки», а ROI, CPO и прибыль по каналу с учётом реальной выручки.
- реклама окупается или сливает бюджет — по конкретной кампании, а не в среднем;
- какие каналы дают заказы, которые доходят до оплаты, а какие — только отмены;
- сколько стоит привлечение оплаченного клиента (CPO), а не просто лида;
- как ведёт себя LTV когорты клиентов, пришедших с разных источников.
Как устроена сквозная аналитика технически
Механика опирается на три сущности: visit id Roistat, поле заказа в RetailCRM и обмен статусами. Логика такая:
- Скрипт Roistat на сайте присваивает посетителю уникальный номер визита и хранит его в cookie
roistat_visit. - Когда пользователь оформляет заказ, этот номер должен попасть в заказ RetailCRM — в отдельное пользовательское поле.
- RetailCRM по API или через веб-хук сообщает Roistat, что заказ создан, а затем — что он сменил статус (оплачен, отменён, возврат).
- Roistat связывает визит с рекламным источником и «дотягивает» до него выручку из CRM.
Подключение: пошаговый порядок
Roistat интегрируется с RetailCRM через готовый модуль в кабинете Roistat плюс ключ API со стороны CRM. Общая последовательность:
- В RetailCRM создайте ключ доступа:
Настройки → Интеграция → Ключи доступа к API, выдайте права на заказы, клиентов и справочники. - Заведите пользовательское поле заказа для метки визита:
Настройки → Поля и справочники → Поля заказа, тип «Строка», символьный код видаroistat_visit. - В кабинете Roistat откройте
Интеграции → CRM → RetailCRM, укажите адрес аккаунта и ключ API. - Сопоставьте статусы RetailCRM со стадиями воронки Roistat: какие статусы считать продажей, какие — отказом.
- Настройте передачу visit id: значение cookie
roistat_visitнужно записать в скрытое поле формы заказа на сайте и передать в CRM.
Если заказы попадают в RetailCRM из интернет-магазина (1С-Битрикс, CS-Cart, кастомный фронт), метку визита прокидывают на этапе формирования заказа на стороне сайта — иначе поле придёт пустым.
Какие данные ходят между системами
Обмен двусторонний. Ниже — что и в какую сторону передаётся при штатной интеграции.
| Данные | Направление | Зачем |
|---|---|---|
| visit id (roistat_visit) | Сайт → RetailCRM | Привязать заказ к рекламному визиту |
| Факт создания заказа | RetailCRM → Roistat | Появление сделки в воронке |
| Сумма заказа | RetailCRM → Roistat | Расчёт выручки и ROI |
| Статус и группа статусов | RetailCRM → Roistat | Разделение на продажи и отказы |
| Себестоимость / маржа | RetailCRM → Roistat | Аналитика по прибыли, а не обороту |
Статусы, возвраты и работа с маржой
Главная ценность связки — учёт денег по факту, а не по заявке. Поэтому важно грамотно сопоставить статусную модель RetailCRM с этапами Roistat.
- Продажа — группа статусов «Выполнен» / «Оплачен и отгружён». Именно эта выручка идёт в расчёт ROI.
- Отказ — «Отменён», «Не дозвонились», «Дубль». Roistat не засчитывает их как выручку, но учитывает в конверсии канала.
- Возврат — если заказ вернули, сумму нужно вычесть из выручки источника, иначе ROI будет завышен.
Для аналитики по прибыли передавайте себестоимость. В RetailCRM закупочная цена хранится в карточке товара, а маржа считается на уровне заказа — эти данные Roistat использует, чтобы показать не оборот, а чистую прибыль по каналу. Это резко меняет картину: канал с большим оборотом и низкой маржой может оказаться убыточным.
Типичные ошибки при внедрении
Большинство проблем со сквозной аналитикой — это не «Roistat врёт», а нарушенная передача данных. Что проверять в первую очередь:
- Пустой visit id. Поле в заказе есть, но приходит пустым — значит cookie не прокидывается в форму. Проверьте JS на странице оформления.
- Заказы по телефону. Если клиент звонит, visit id теряется. Здесь нужен коллтрекинг, который передаёт источник звонка отдельно.
- Рассинхрон статусов. Новый статус в RetailCRM не сопоставлен со стадией в Roistat — продажи «повисают» в неопределённой воронке.
- Задержка веб-хука. Если статусы улетают пачками, отчёты обновляются с лагом; лучше передавать изменения событийно.
- Тестовые заказы. Внутренние проверки без фильтрации искажают конверсию — заводите отдельный статус или тег для теста.
Итог
Roistat и RetailCRM в связке превращают догадки о рекламе в цифры прибыли: видно, какой канал приносит оплаченные заказы, а какой — только заявки и отмены. Технически всё держится на трёх вещах — метке визита в заказе, корректном сопоставлении статусов и честном учёте возвратов и маржи.
Мы настраиваем такую сквозную аналитику под ключ: заводим поля и ключи API, прокидываем visit id в заказ, сопоставляем воронки и проверяем сходимость выручки. Если нужна связка Roistat с RetailCRM, которая считает деньги, а не заявки — поможем собрать её без двойного учёта и слепых зон.
Частые вопросы
Чем сквозная аналитика в Roistat отличается от отчётов внутри RetailCRM?
RetailCRM показывает продажи по каналам и менеджерам, но не знает про расходы на рекламу. Roistat добавляет данные из рекламных кабинетов и считает окупаемость каждой кампании с учётом реальной выручки из CRM.
Обязательно ли передавать visit id в заказ?
Да, это ядро связки. Без метки визита Roistat не свяжет оплаченный заказ с конкретной рекламной кампанией и отнесёт продажу в неопределённый источник.
Как учитываются заказы, оформленные по телефону?
Для звонков visit id из cookie недоступен. Нужен коллтрекинг: он определяет рекламный источник звонка и передаёт его в заказ отдельно, дополняя онлайн-данные.
Что происходит с выручкой при возврате заказа?
Если статусы сопоставлены корректно, возврат уменьшает выручку соответствующего источника. Иначе ROI канала окажется завышенным, потому что вернувшиеся деньги останутся в отчёте.
Можно ли считать не оборот, а прибыль по каналу?
Да, если передавать в Roistat себестоимость из карточек товаров RetailCRM. Тогда отчёты покажут маржу и чистую прибыль источника, а не только валовый оборот.
Нужен ли программист для настройки?
Базовая интеграция настраивается ключом API и модулем в кабинете Roistat. Разработчик обычно нужен только чтобы прокинуть visit id в форму заказа на сайте.
Как избежать двойного учёта заказов?
Оставьте один авторитетный источник продаж — как правило RetailCRM — и не передавайте те же заказы дополнительно из скрипта сайта. Иначе выручка задвоится.
Поможем с настройкой и поддержкой RetailCRM
Поможем с настройкой, доработкой и поддержкой RetailCRM.