Настройка ROI-аналитики по рекламным каналам Битрикс24

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка ROI-аналитики по рекламным каналам Битрикс24
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка 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=first, N=last
            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
Яндекс/brand 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 недель.