Налаштування ROI-аналітики з рекламних каналів Бітрікс24

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування ROI-аналітики з рекламних каналів Бітрікс24
Проста
~1 робочий день
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування ROI-аналітики за рекламними каналами Бітрікс24

Вбудована аналітика Бітрікс24 CRM показує воронку угод та джерела лідів, але не показує, скільки грошей витрачено на кожен канал відносно виручки. ROI-аналітика — це обчислюваний показник, що вимагає даних з двох джерел: витрати з рекламних систем та доходи з CRM. Налаштування повної картини включає збір даних, маппінг атрибуції та візуалізацію.

Моделі атрибуції

Перш ніж налаштовувати звіти — потрібно визначитися з моделлю атрибуції: якому дотику приписується конверсія.

First-click — перший канал, через який користувач прийшов на сайт. Добре показує, що залучає нову аудиторію.

Last-click — останній канал перед конверсією. Стандарт GA4, Метрики. Переоцінює ретаргетинг та брендові запити.

Linear — рівномірний розподіл між усіма дотиками. Вимагає зберігання ланцюжка дотиків.

Для більшості B2B-компаній з довгим циклом угоди (місяць і більше) оптимальна first-click + last-click — два звіти одночасно. Для e-commerce — достатньо last-click.

Зберігання ланцюжка дотиків

Для мультидотикової атрибуції потрібна таблиця подій відвідувань, пов'язаних з лідом/угодою:

class TouchpointTable extends \Bitrix\Main\ORM\Data\DataManager
{
    public static function getTableName(): string { return 'local_crm_touchpoints'; }

    public static function getMap(): array
    {
        return [
            new \Bitrix\Main\ORM\Fields\IntegerField('ID', ['primary' => true, 'autocomplete' => true]),
            new \Bitrix\Main\ORM\Fields\StringField('SESSION_ID'),
            new \Bitrix\Main\ORM\Fields\IntegerField('LEAD_ID'),
            new \Bitrix\Main\ORM\Fields\IntegerField('DEAL_ID'),
            new \Bitrix\Main\ORM\Fields\StringField('UTM_SOURCE'),
            new \Bitrix\Main\ORM\Fields\StringField('UTM_CAMPAIGN'),
            new \Bitrix\Main\ORM\Fields\StringField('UTM_MEDIUM'),
            new \Bitrix\Main\ORM\Fields\StringField('UTM_TERM'),
            new \Bitrix\Main\ORM\Fields\IntegerField('TOUCH_ORDER'), // 1=перший, N=останній
            new \Bitrix\Main\ORM\Fields\DatetimeField('CREATED_AT'),
        ];
    }
}

Дані про дотики збираються через JavaScript-код на сайті: при кожному візиті з UTM-параметрами — запис у cookie/localStorage, при відправці форми — передача всього ланцюжка на сервер.

Обчислення ROI

class RoiReportBuilder
{
    public function buildReport(string $dateFrom, string $dateTo, string $attributionModel = 'last'): array
    {
        $deals = $this->getWonDeals($dateFrom, $dateTo);
        $costs = $this->getAdCosts($dateFrom, $dateTo);

        $revenueByChannel = [];
        foreach ($deals as $deal) {
            $channel = $this->getChannel($deal, $attributionModel);
            $revenueByChannel[$channel] = ($revenueByChannel[$channel] ?? 0) + $deal['OPPORTUNITY'];
        }

        $result = [];
        foreach ($costs as $channel => $cost) {
            $revenue = $revenueByChannel[$channel] ?? 0;
            $result[] = [
                'channel'  => $channel,
                'spend'    => $cost,
                'revenue'  => $revenue,
                'profit'   => $revenue - $cost,
                'roi'      => $cost > 0 ? round(($revenue - $cost) / $cost * 100, 1) : null,
                'roas'     => $cost > 0 ? round($revenue / $cost, 2) : null,
                'cpl'      => $cost > 0 ? round($cost / max(1, $this->getLeadsCount($channel, $dateFrom, $dateTo)), 0) : null,
            ];
        }

        usort($result, fn($a, $b) => ($b['roi'] ?? -PHP_INT_MAX) <=> ($a['roi'] ?? -PHP_INT_MAX));
        return $result;
    }
}

Метрики ROAS (Return on Ad Spend) та CPL (Cost Per Lead) доповнюють ROI — ROAS показує, скільки гривень виручки приніс кожен карбованець витрат; CPL — вартість ліда.

Дашборд у Бітрікс24

Для відображення ROI-аналітики в Бітрікс24 — два варіанти.

Варіант 1: Кастомний звіт у /local/php_interface/admin/ — таблиця з фільтром за періодом, можливістю перемикання моделі атрибуції, експортом до Excel.

Варіант 2: Вбудований застосунок Бітрікс24 (React) — дашборд відображається на окремій сторінці порталу. Дані беруться з кастомного бекенду (не з Бітрікс24 напряму). Графіки через Recharts або ApexCharts.

// React-компонент ROI-дашборду
function RoiDashboard() {
  const [period, setPeriod] = useState({ from: startOfMonth, to: today });
  const [model, setModel] = useState<'first' | 'last' | 'linear'>('last');

  const { data, isLoading } = useQuery({
    queryKey: ['roi', period, model],
    queryFn:  () => fetchRoiReport(period, model),
  });

  return (
    <div>
      <PeriodSelector value={period} onChange={setPeriod} />
      <ModelSelector value={model} onChange={setModel} />
      {isLoading ? <Spinner /> : (
        <>
          <RoiTable data={data?.channels} />
          <SpendVsRevenueChart data={data?.channels} />
        </>
      )}
    </div>
  );
}

Ключові звіти в системі

Зведена таблиця за каналами (основний звіт):

Канал Витрати Ліди CPL Виручка ROAS ROI
Яндекс/бренд 45 000 38 1 184 380 000 8,4 744%
VK/ретаргетинг 28 000 22 1 273 115 000 4,1 311%
Директ/конкуренти 67 000 19 3 526 95 000 1,4 42%

Динаміка по місяцях — тренд ROI кожного каналу. Дозволяє бачити сезонність та деградацію каналів.

Воронка за джерелами — конверсія лід → кваліфікований → угода в розрізі каналів. Канал з дешевими лідами, але низькою конверсією в угоду, може поступатися дорожчому каналу з якісними лідами.

Склад робіт

  • Визначення моделі атрибуції під бізнес-логіку
  • Користувацькі поля в лідах та угодах для UTM-даних
  • Збір ланцюжка дотиків (JavaScript + сервер)
  • Імпорт витрат з рекламних систем (cron)
  • Звіт з обчисленням ROI, ROAS, CPL
  • Дашборд: адміністративний розділ або React-застосунок Б24

Терміни: базовий ROI-звіт (last-click, один канал) — 1 тиждень. Мультиканальний дашборд з кількома моделями атрибуції — 3–5 тижнів.