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

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

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

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1532
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1045
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    820
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    915
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    853
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1208

Интеграция 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 день. Закажите интеграцию и начните видеть реальную отдачу от рекламы. Свяжитесь с нами, чтобы получить индивидуальный план интеграции.