Інтеграція 1С-Бітрікс з Roistat: налаштування наскрізної аналітики

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

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

Часті запитання

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1523
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1043
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    813
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    905
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    849
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1200

Інтеграція 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.
  • Реалізація мапінгу статусів та ідемпотентної відправки.
  • Тестування на тестовому та бойовому контурах.
  • Документація по доопрацюванням та налаштуванням.

Орієнтовні терміни

Етап Час
Базова передача замовлень (події оплати) від 3 до 5 днів
Додавання оновлення статусів (скасування/повернення) +2–3 дні
Інтеграція з Бітрікс24 (угоди з дзвінків) +3–5 днів

Вартість розраховується індивідуально після аудиту поточної схеми. Оцінюємо проєкт за 1 день.

Досвід та гарантії

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

Отримайте консультацію з налаштування наскрізної аналітики — ми проведемо аудит за 1 день. Замовте інтеграцію і почніть бачити реальну віддачу від реклами. Зв'яжіться з нами, щоб отримати індивідуальний план інтеграції.