Настройка динамического коллтрекинга на 1С-Битрикс

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

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

Этапы разработки

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1361
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    948
  • 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
    694
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    833
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    732
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1075

Настройка динамического коллтрекинга на 1С-Битрикс

Мы сталкивались с ситуацией: клиент тратит 500 000 ₽ на рекламу, видит 1000 лидов в CRM, но не знает, какой канал принёс звонок. Без динамического коллтрекинга эта часть конверсии остаётся слепой зоной. Для ecommerce и услуг звонки составляют 40–60% заявок — игнорировать их нельзя. Мы научились настраивать коллтрекинг на 1С-Битрикс так, чтобы каждый звонок ложился в аналитику с UTM-метками, ключевым словом и источником.

Принцип работы: каждому посетителю показывается уникальный подменный номер из пула. Система сопоставляет номер с сессией и передаёт данные в системы аналитики. После звонка номер возвращается в пул. Точность подмены — до 99.9% при правильной настройке.

Выбор провайдера и установка скрипта

Основные провайдеры: Callibri, CoMagic, Roistat, Ringostat, Mango Office. Все предлагают JS-скрипт и API. Для Битрикс скрипт добавляем через Bitrix\Main\Page\Asset::addString в событии OnEpilog — это гарантирует, что скрипт не попадёт в кеш и не продублируется при AJAX-навигации.

// /local/php_interface/init.php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'main',
    'OnEpilog',
    function () {
        if (\Bitrix\Main\Application::getInstance()->getContext()->getRequest()->isAdminSection()) {
            return;
        }

        $asset = \Bitrix\Main\Page\Asset::getInstance();
        $asset->addString(
            '<script type="text/javascript">
                (function(w,d,n,t){
                    // Код скрипта провайдера коллтрекинга
                    w[n] = w[n] || function(){(w[n].q=w[n].q||[]).push(arguments)};
                    t = d.createElement("script");
                    t.async = 1;
                    t.src = "https://tracker.callibri.ru/callibri.js";
                    d.head.appendChild(t);
                })(window,document,"callibri");
                callibri("setCounter", "YOUR_COUNTER_ID");
            </script>',
            true
        );
    }
);

Как правильно разметить телефоны на сайте Битрикс?

Для корректной подмены телефон должен быть размечен через data-атрибуты. В шаблоне компонента (например, header.php) меняем вывод:

<!-- Вместо -->
<span class="phone">+7 (495) 123-45-67</span>

<!-- Используем -->
<span class="calltracking-phone"
      data-original-phone="+74951234567"
      data-phone-display="+7 (495) 123-45-67">
    +7 (495) 123-45-67
</span>

Скрипт провайдера находит элементы по CSS-селектору и подменяет содержимое. Если на сайте несколько телефонов (основной, отдел продаж, сервис), каждому назначается отдельная группа подмены в личном кабинете провайдера.

Почему важен размер пула номеров?

Пул должен покрывать максимальное количество одновременных посетителей. Например, при 30 одновременных посетителях и средней сессии 4 минуты нужно минимум 30 номеров. Недостаток пула приводит к тому, что новые посетители видят статический номер — данные теряются. Пул из 50 номеров обойдётся примерно в 7 500 ₽ в месяц — это плата за точность. Благодаря точной атрибуции вы перестаёте сливать до 40% рекламного бюджета на нецелевые звонки.

Для Битрикс-сайтов с кешированием есть нюанс: если страница кеширована на уровне Композитного сайта или nginx, скрипт коллтрекинга может загружаться с задержкой. Решение — телефон в HTML оставлять как fallback, а подмена выполняется через JS после полной загрузки страницы.

Типичная ошибка: скрипт не срабатывает на кешированных страницах Если скрипт добавлен в шапку без отключения кеша, он не выполняется на композитных страницах. Используйте событие `OnEpilog` и установите флаг отключения кеша через `$asset->getKernelInfo()->set($asset::KERNEL)` — так скрипт будет загружаться динамически даже на кешированных страницах.

Передача звонков в Google Analytics 4 и Яндекс.Метрику

Провайдеры умеют отправлять события о звонках в GA4 и Метрику. Для GA4 используем события phone_call_start и phone_call_end с параметрами call_id, utm_source, duration, is_target. Интеграция выполняется через настройки провайдера или кастомный код:

callibri('onCallStart', function(callData) {
    gtag('event', 'phone_call_start', {
        'call_id'     : callData.callId,
        'utm_source'  : callData.utmSource,
        'utm_campaign': callData.utmCampaign,
    });
});

callibri('onCallEnd', function(callData) {
    gtag('event', 'phone_call_end', {
        'call_id'  : callData.callId,
        'duration' : callData.duration,
        'is_target': callData.isTarget,
    });
});

Сравнение: динамический vs статический коллтрекинг

Характеристика Динамический коллтрекинг Статический коллтрекинг
Точность атрибуции До визита До канала
Необходимое количество номеров Равно числу одновременных посетителей Равно числу каналов
Стоимость (пример) от 7 500 ₽/мес за 50 номеров от 500 ₽/мес за 5 номеров
Эффективность для высокого трафика Высокая (3-5 раз точнее) Низкая
Интеграция с CRM Полная (каждый звонок в сделке) Частичная (только канал)

Динамический коллтрекинг точнее статического в 3–5 раз для сайтов с высоким трафиком. Статический присваивает один номер каналу — если по каналу пришло 100 человек, а позвонил один, вы не узнаете, кто именно. Динамический отслеживает каждого посетителя, связывая звонок с конкретным визитом и его UTM-метками.

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

Этап Что делаем Результат
Аналитика Аудит текущей структуры телефонов, выбор провайдера, расчёт пула Схема подмены, техническое задание
Установка скрипта Встраивание скрипта через OnEpilog, настройка событий Скрипт на всех страницах, без дублей
Разметка телефонов Правка шаблонов компонентов (шапка, карточка товара, контакты) Все телефоны размечены data-атрибутами
Настройка групп подмены Создание групп для разных отделов в ЛК провайдера Корректная подмена для каждой линии
Интеграция с аналитикой Настройка событий GA4, Яндекс.Метрика, CRM (опционально) Сквозная аналитика звонков
Тестирование Проверка подмены для всех каналов (utm, прямой заход, кеш) Протокол тестирования

Как настроить коллтрекинг на Битрикс: пошаговая инструкция

  1. Аудит текущего сайта: Определите, где выводятся телефоны и как они размечены. Убедитесь, что нет блокировок скриптов (CSP, если используются).
  2. Выбор провайдера: Сравните условия Callibri, CoMagic, Roistat. Для начала используйте пробный период.
  3. Регистрация и получение скрипта: Зарегистрируйтесь у провайдера, возьмите JS-скрипт и идентификатор счётчика.
  4. Установка скрипта на сайт: Добавьте код через OnEpilog в /local/php_interface/init.php как показано выше.
  5. Разметка телефонов: Промаркируйте каждый телефон атрибутами data-original-phone и data-phone-display.
  6. Настройка пула: В личном кабинете провайдера укажите количество номеров, которое перекрывает пиковую посещаемость.
  7. Интеграция с аналитикой: Настройте передачу событий в GA4 и Яндекс.Метрику.
  8. Тестирование: Проверьте подмену для разных UTM, прямых заходов, кешированных страниц.

Чек-лист проверки после настройки

  • Открыть сайт с UTM-метками ?utm_source=yandex&utm_medium=cpc — телефон должен смениться.
  • Открыть без UTM (прямой заход) — отображается дефолтный номер из пула.
  • Проверить кешированные страницы: после прогрева кеша телефон всё равно подменяется.
  • Убедиться, что телефоны в og:image и Schema.org статические, не подменяемые.
  • Проверить мобильную версию — click-to-call ведёт на подменный номер.

Свяжитесь с нами для аудита вашего проекта — оценим текущую схему за один день. Закажите настройку коллтрекинга — первый звонок бесплатно. Наш опыт: более 50 проектов на Битрикс, гарантируем, что каждый звонок будет атрибутирован к источнику.

Согласно данным провайдера Callibri, точность подмены при правильной настройке достигает 99.9%.

Почему аналитика 1С-Битрикс часто вводит в заблуждение

Счётчики стоят, пиксели повешены, CRM подключена — а цифры расходятся во все стороны. Конверсия e-commerce не передаётся в dataLayer. UTM-теряются на редиректах ЧПУ. Маркетолог видит 100 лидов, коммерческий директор — 70 сделок, и каждый считает по-своему. Решения принимаются по ощущениям, а рекламный бюджет улетает в никуда.

Мы настраиваем аналитику 1С-Битрикс более 10 лет. Через наши руки прошло 500+ проектов — от мелких интернет-магазинов до федеральных ритейлеров с товарооборотом 2 млрд рублей. Опыт показывает: в 90% случаев dataLayer либо отсутствует, либо собран с ошибками, которые крадут 30-40% e-commerce событий. Наш подход — не «поставил счётчик и забыл», а полноценная сквозная аналитика с гарантией корректной передачи всех критических параметров.

Как аналитика 1С-Битрикс решает проблему расхождения данных

Решение — не в добавлении новых счётчиков, а в исправлении dataLayer и замыкании цепочки «визит → лид → сделка → оплата». Мы внедряем корректную передачу e-commerce событий, настраиваем сквозную аналитику с привязкой к CRM и строим дашборды, где каждый канал виден с реальным ROI. Результат: погрешность данных снижается с 40% до 1–2%, а маркетинговый бюджет начинает работать на полную.

Яндекс.Метрика: настройка e-commerce без потерь

Базовая настройка — и почему её обычно делают криво

Счётчик Метрики ставят все. Правильно — единицы.

  • Установка через GTM, а не вставкой в header.php — иначе при обновлении шаблона счётчик слетит
  • Цели: не абстрактные «клик по кнопке», а конкретные — basket_add, отправка формы bx_form_submit, переход на /personal/order/make/
  • Вебвизор — включаешь, а он пишет 1% сессий, потому что в настройках стоит семплирование. Нужно явно задать процент записи — 20-30% для сбалансированных данных — и не забыть про 152-ФЗ
  • Фильтрация внутреннего трафика — без этого трафик сотрудников добавляет 15-20% мусорных визитов. Фильтруем по IP, cookie _ym_debug, заголовкам

Электронная коммерция — самая недооценённая фича

Модуль eCommerce в Метрике передаёт полную цепочку покупательского поведения. Проблема в том, что в Битрикс из коробки он работает только с компонентом sale.order.ajax, и то криво — теряет remove_from_cart при AJAX-обновлении корзины.

Что мы передаём в dataLayer:

  • Просмотр карточки — id, name, brand, category, price. Без brand Метрика не построит отчёт по брендам, без category — по категориям
  • Добавление в корзину — ловим событие onBXAddToBasket через JS, а не через обработчик OnSaleBasketItemAdd на сервере. Серверный обработчик не знает про JS-контекст
  • Удаление из корзины — тут ловушка: штатный компонент sale.basket.basket при AJAX-обновлении не генерирует отдельное событие удаления. Нужен свой обсёрвер
  • Покупка — передаём на sale/order/complete/, включая coupon и revenue с учётом скидок
Пример настройки dataLayer для события add_to_cart
BX.addCustomEvent('onBXAddToBasket', function(product) {
    window.dataLayer.push({
        'event': 'add_to_cart',
        'ecommerce': {
            'items': [{
                'item_id': product.id,
                'item_name': product.name,
                'price': product.price,
                'quantity': 1
            }]
        }
    });
});

Данные, которые уходят в Метрику

Параметр Откуда берём Грабли
ID товара PRODUCT_ID из инфоблока Не путать с ID торгового предложения — это разные сущности
Категория Цепочка разделов инфоблока Метрика ждёт формат «Электроника/Смартфоны», разделитель — /
Бренд Свойство инфоблока Если Highload-справочник — нужен дополнительный запрос
Цена CATALOG_PRICE_1 или тип цены контрагента Передавать финальную, после скидок
Купон CSaleBasket::GetList → DISCOUNT_COUPON Может быть пустым — не ломайте dataLayer

Google Analytics 4: почему Битрикс требует ручной настройки?

Чем GA4 отличается от Universal Analytics

GA4 работает на событиях, а не на хитах. Нет «просмотров страниц» в привычном смысле — есть page_view как одно из событий. Для Битрикса это значит, что AJAX-переходы (фильтрация каталога, пагинация) нужно пушить вручную.

Ключевые события e-commerce: view_item_list → select_item → view_item → add_to_cart → view_cart → begin_checkout → add_shipping_info → add_payment_info → purchase.

Каждое событие требует свой набор параметров. purchase без transaction_id — не засчитается. add_to_cart без массива items — бесполезен. GA4 молча проглотит невалидные данные и покажет пустые отчёты. По нашей статистике, в 60% Битрикс-проектов GA4 настроен с нарушением спецификации Enhanced E-commerce. Это приводит к потере до 40% транзакций в отчётах.

Пользовательские параметры, которые реально нужны

Не надо передавать всё подряд. Пять параметров, дающих 80% пользы:

  • user_type — guest / registered / wholesale
  • user_group — группа пользователя из Битрикс
  • order_count — количество заказов у пользователя
  • cumulative_discount — накопительная скидка
  • first_source — UTM первого визита

Сквозная аналитика: замыкаем цепочку от клика до сделки

Метрика видит визиты. CRM видит сделки. Рекламный кабинет видит расходы. А связь между ними — разрыв. Менеджер закрыл сделку на 500К, но Метрика показывает источник (direct), потому что клиент пришёл по прямой ссылке из закладок, а первый контакт был через Директ три месяца назад.

Сквозная аналитика замыкает цепочку: рекламный клик → визит → лид в CRM → сделка → оплата → ROI. <cite>По нашим данным, после внедрения сквозной аналитики клиенты перераспределяют бюджет в пользу каналов с высоким LTV, и ROI растёт в среднем на 25% за квартал.</cite>

Как собираем

  1. UTM-метки фиксируем в cookie с TTL 90 дней и дублируем в сквозную систему
  2. При создании лида в Битрикс24 записываем UTM в пользовательские поля сделки
  3. Коллтрекинг подменяет номер и привязывает звонок к визиту
  4. Менеджер ведёт сделку по воронке, закрывает — сумма привязана к источнику
  5. Сервис агрегирует расходы через API рекламных кабинетов
  6. ROI = (выручка — расходы) / расходы по каждой кампании

Инструменты

Платформа Сильная сторона Слабое место
Roistat Мультиканальная атрибуция, коллтрекинг, интеграция с Битрикс24 Ежемесячная стоимость
Calltouch Лучший коллтрекинг на рынке Сквозная аналитика слабее, чем у Roistat
CoMagic (UIS) Связка звонки + чат + аналитика Интерфейс устарел
Битрикс24 CRM-аналитика Бесплатно, внутри CRM Не считает расходы на рекламу, нет коллтрекинга

Дашборды: три экрана вместо десяти отчётов

Строим дашборды в DataLens или Looker Studio. Ключевое — не перегружать.

  • Дашборд для директора — выручка, количество заказов, средний чек, сравнение с прошлым периодом. Пять виджетов, обновление раз в час.
  • Дашборд для маркетолога — трафик по каналам, CAC, ROI кампаний, конверсия воронки, эффективность промокодов.
  • Дашборд для коммерческого — конверсия менеджеров, скорость обработки заказов, повторные покупки. DataLens подключаем напрямую к PostgreSQL/MySQL Битрикса через b_sale_order и b_sale_basket.

Воронка: где именно дыра

Типичная воронка Битрикс-магазина:

Этап Что смотрим Где обычно проблема
Каталог → Карточка CTR по товарам Плохие фото, нет цены в списке
Карточка → Корзина Add-to-cart rate Нет кнопки «Купить» в первом экране
Корзина → Чекаут Checkout initiation Неожиданная стоимость доставки
Чекаут → Заказ Completion rate Обязательная регистрация, падение sale.order.ajax

Провал на чекауте — самый дорогой. Пользователь уже хотел купить, уже положил в корзину, и тут sale.order.ajax кидает 500-ку из-за не настроенного обработчика доставки. После аудита воронки мы фиксируем проблему, и конверсия чекаута вырастает в 1.5-2 раза за месяц.

Когортный анализ и LTV

Группируем по месяцу первой покупки, смотрим retention через 30, 60, 90 дней. В DataLens строится через SQL-запрос к b_sale_order с GROUP BY DATE_TRUNC('month', DATE_INSERT).

Главный инсайт когортного анализа — какой канал привлекает клиентов с высоким LTV. Контекст может давать дешёвые первые заказы, но нулевой repeat rate. А SEO-трафик конвертируется хуже, зато возвращается. Без этого анализа вы рискуете переплачивать за каналы, которые дают одноразовых покупателей.

Что входит в настройку аналитики 1С-Битрикс

  • Аудит текущего dataLayer и исправление ошибок
  • Настройка корректного e-commerce трекинга для Метрики и GA4
  • Разработка пользовательских событий под бизнес-требования
  • Интеграция сквозной аналитики (Roistat/Calltouch) с Битрикс24
  • Создание дашбордов в DataLens/Looker Studio
  • Документация по всем событиям и параметрам
  • Обучение маркетологов и коммерческого отдела работе с отчётами
  • Техническая поддержка на месяц после запуска

Сроки

Задача Срок
Метрика + eCommerce (с корректным dataLayer) 3-5 дней
GA4 + Enhanced E-commerce 3-5 дней
Сквозная аналитика (Roistat/Calltouch + CRM) 2-4 недели
Дашборды в DataLens/Looker Studio 1-2 недели
Комплексная система 4-8 недель

Закажите аудит или настройку аналитики

Проверим, не теряете ли вы деньги на аналитике: проведём аудит текущей настройки за один день. Закажите настройку сквозной аналитики — получите дашборд с реальным ROI по каждому каналу уже через две недели. Получите консультацию по коррекции dataLayer и выбору подходящего инструмента сквозной аналитики для вашего Битрикс-проекта.