Интеграция 1С-Битрикс с Roistat: настройка сквозной аналитики

Интеграция 1С-Битрикс с Roistat Представьте: вы тратите на контекстную рекламу, а Roistat показывает только лиды, не видя выручку по каналам. Мы настраиваем интеграцию 1С-Битрикс с Roistat, чтобы связать заказы с посещениями и рассчитывать ROMI по каждому источнику. На одном проекте интернет-мага
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с Roistat: настройка сквозной аналитики
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1428
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1008
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    745
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    869
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    782
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1149

Интеграция 1С-Битрикс с Roistat

Представьте: вы тратите на контекстную рекламу, а Roistat показывает только лиды, не видя выручку по каналам. Мы настраиваем интеграцию 1С-Битрикс с Roistat, чтобы связать заказы с посещениями и рассчитывать ROMI по каждому источнику. На одном проекте интернет-магазина 40% заказов теряли привязку к визиту из-за неправильной инициализации скрипта на динамических страницах. Бюджет в $4.5k–6.5k. уходил впустую. При среднем чеке $140–200. точная аналитика окупается за месяц. После интеграции ROMI по контексту вырос на 30%, а по таргету — на 15%, что позволило перераспределить бюджет с убыточных каналов. Экономия составила до 30% рекламного бюджета.

Согласно документации Roistat, идентификатор визита roistat_visit сохраняется в cookie на 7 дней и позволяет привязать заказ к источнику.

В отличие от стандартной аналитики, где вы видите только лиды, сквозная аналитика с Roistat даёт точную картину ROMI в 2 раза быстрее.

Как Roistat связывает визит с заказом?

Roistat использует JavaScript-счётчик, который присваивает каждому визиту уникальный идентификатор roistat_visit (число). Он сохраняется в cookie с TTL 7 дней (настраивается). Когда пользователь оформляет заказ, скрытое поле в форме передаёт это значение в заказ Битрикс. Без него Roistat не знает, какой рекламный канал привёл покупателя.

Что мешает корректной передаче roistat_visit?

Частая проблема — динамические формы (React, Vue). Скрипт Roistat может не успеть записать cookie до того, как форма попытается его прочитать. Решение — подписываться на событие roistat:inited и только после него инициализировать скрытое поле. Другая проблема — ajax-обновление формы после валидации. Нужно перезаполнять поле при каждом рендере.

На серверной части сохраняем roistat_visit в пользовательское свойство заказа UF_ROISTAT_VISIT. Обработчик события OnSaleOrderBeforeSaved в компоненте sale.order.ajax:

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderBeforeSaved', function (\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $rsVisit = $_REQUEST['roistat_visit'] ?? $_COOKIE['roistat_visit'] ?? ''; if ($rsVisit) { $order->setField('UF_ROISTAT_VISIT', $rsVisit); } } ); 

Как передавать данные о заказах в Roistat?

Roistat принимает информацию через REST API Roistat. Пример запроса:

POST https://cloud.roistat.com/api/v1/project/orders X-ApiKey: project_api_key Content-Type: application/json { "orders": [{ "id": "BITRIX_ORDER_123", "visit": "4521890", "creation_date": "2026-03-13 10:00:00", "cost": 4990.00, "revenue": 4990.00, "currency": "USD" }] } 

visit — тот самый идентификатор из cookie. cost — сумма заказа. По этим данным Roistat строит отчёт по источникам. Интеграцию строим на событии OnSaleStatusOrderChange — при переходе в статус «Оплачен» (или кастомный «Выполнен») отправляем запрос. Для отмены — отдельный запрос с status: "canceled" и revenue: 0.

Почему важно обновлять статусы при отменах и возвратах?

Заказ может менять статус несколько раз. Roistat поддерживает обновление: повторная передача с тем же id обновляет запись (идепотентность). Настраиваем маппинг статусов Битрикс → Roistat:

Статус Битрикс Статус Roistat revenue
N (новый) new 0
P (оплачен) confirmed сумма
F (выполнен) confirmed сумма
C (отменён) canceled 0

Передаём статус при каждом изменении, используя id заказа как ключ. Это исключает дубли.

Как настроить передачу заказов пошагово?

  1. Установите скрипт Roistat и дождитесь события roistat:inited.
  2. Добавьте скрытое поле roistat_visit в форму оформления заказа.
  3. В обработчике OnSaleOrderBeforeSaved сохраните значение в пользовательское поле заказа.
  4. Настройте маппинг статусов и обработчик OnSaleStatusOrderChange для отправки в API.
  5. Проверьте передачу на тестовом заказе: создайте заказ, проверьте в Roistat.

Телефонные звонки и чаты

Если на сайте используется call tracking от Roistat, то звонки автоматически привязываются к визиту. При интеграции с Битрикс24 через REST API можно создать сделку при звонке и сразу передать её в Roistat. Настраиваем обработчик создания сделки в Битрикс24 и отправляем данные (сумму, roistat_visit) в Roistat API.

Подробный пример обработчика отправки
// Отправка заказа при оплате $eventManager->addEventHandler('sale', 'OnSaleStatusOrderChange', function($orderId, $status) { $order = \Bitrix\Sale\Order::load($orderId); $rsVisit = $order->getField('UF_ROISTAT_VISIT'); if ($rsVisit) { $api = new RoistatApi(API_KEY); $api->sendOrder([ 'id' => $orderId, 'visit' => $rsVisit, 'cost' => $order->getPrice(), 'status' => mapStatus($status), ]); } }); 

Что входит в работу?

  • Аудит текущего трекинга: проверка UTM-меток, cookies, счётчика Roistat.
  • Добавление скрытого поля roistat_visit в форму оформления заказа с правильной инициализацией.
  • Настройка события OnSaleOrderBeforeSaved для сохранения визита в заказ.
  • Разработка обработчика OnSaleStatusOrderChange для отправки заказов в Roistat API.
  • Реализация маппинга статусов и idempotent-отправки.
  • Тестирование на тестовом и боевом контурах.
  • Документация по доработкам и настройкам.

Ориентировочные сроки

Этап Время
Базовая передача заказов (события оплаты) от 3 до 5 дней
Добавление обновления статусов (отмены/возвраты) +2–3 дня
Интеграция с Битрикс24 (сделки из звонков) +3–5 дней

Стоимость рассчитывается индивидуально после аудита текущей схемы. Оцениваем проект за 1 день.

Опыт и гарантии

Наша команда имеет 10+ лет опыта разработки на 1С-Битрикс и Битрикс24, более 50 выполненных интеграций с Roistat. Используем проверенные паттерны: тегированное кэширование, агенты для отложенной отправки, повторные попытки при ошибках API. Даём гарантию на корректную передачу данных в течение 30 дней после запуска.

Получите консультацию по настройке сквозной аналитики — мы проведём аудит за 1 день. Закажите интеграцию и начните видеть реальную отдачу от рекламы. Свяжитесь с нами, чтобы получить индивидуальный план интеграции.