Настройка динамического коллтрекинга на 1С-Битрикс
Мы сталкивались с ситуацией: клиент тратит $4.5k–6.5k на рекламу, видит 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 номеров обойдётся примерно в $68–98 в месяц — это плата за точность. Благодаря точной атрибуции вы перестаёте сливать до 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 статический коллтрекинг
| Характеристика | Динамический коллтрекинг | Статический коллтрекинг |
|---|---|---|
| Точность атрибуции | До визита | До канала |
| Необходимое количество номеров | Равно числу одновременных посетителей | Равно числу каналов |
| Стоимость (пример) | от $68–98/мес за 50 номеров | от $4–6/мес за 5 номеров |
| Эффективность для высокого трафика | Высокая (3-5 раз точнее) | Низкая |
| Интеграция с CRM | Полная (каждый звонок в сделке) | Частичная (только канал) |
Динамический коллтрекинг точнее статического в 3–5 раз для сайтов с высоким трафиком. Статический присваивает один номер каналу — если по каналу пришло 100 человек, а позвонил один, вы не узнаете, кто именно. Динамический отслеживает каждого посетителя, связывая звонок с конкретным визитом и его UTM-метками.
Что входит в работу? (Deliverables)
| Этап | Что делаем | Результат |
|---|---|---|
| Аналитика | Аудит текущей структуры телефонов, выбор провайдера, расчёт пула | Схема подмены, техническое задание |
| Установка скрипта | Встраивание скрипта через OnEpilog, настройка событий |
Скрипт на всех страницах, без дублей |
| Разметка телефонов | Правка шаблонов компонентов (шапка, карточка товара, контакты) | Все телефоны размечены data-атрибутами |
| Настройка групп подмены | Создание групп для разных отделов в ЛК провайдера | Корректная подмена для каждой линии |
| Интеграция с аналитикой | Настройка событий GA4, Яндекс.Метрика, CRM (опционально) | Сквозная аналитика звонков |
| Тестирование | Проверка подмены для всех каналов (utm, прямой заход, кеш) | Протокол тестирования |
Как настроить коллтрекинг на Битрикс: пошаговая инструкция
- Аудит текущего сайта: Определите, где выводятся телефоны и как они размечены. Убедитесь, что нет блокировок скриптов (CSP, если используются).
- Выбор провайдера: Сравните условия Callibri, CoMagic, Roistat. Для начала используйте пробный период.
- Регистрация и получение скрипта: Зарегистрируйтесь у провайдера, возьмите JS-скрипт и идентификатор счётчика.
-
Установка скрипта на сайт: Добавьте код через
OnEpilogв/local/php_interface/init.phpкак показано выше. - Разметка телефонов: Промаркируйте каждый телефон атрибутами
data-original-phoneиdata-phone-display. - Настройка пула: В личном кабинете провайдера укажите количество номеров, которое перекрывает пиковую посещаемость.
- Интеграция с аналитикой: Настройте передачу событий в GA4 и Яндекс.Метрику.
- Тестирование: Проверьте подмену для разных UTM, прямых заходов, кешированных страниц.
Чек-лист проверки после настройки
- Открыть сайт с UTM-метками
?utm_source=yandex&utm_medium=cpc— телефон должен смениться. - Открыть без UTM (прямой заход) — отображается дефолтный номер из пула.
- Проверить кешированные страницы: после прогрева кеша телефон всё равно подменяется.
- Убедиться, что телефоны в og:image и Schema.org статические, не подменяемые.
- Проверить мобильную версию — click-to-call ведёт на подменный номер.
Свяжитесь с нами для аудита вашего проекта — оценим текущую схему за один день. Закажите настройку коллтрекинга — первый звонок бесплатно. Наш опыт: более 50 проектов на Битрикс, гарантируем, что каждый звонок будет атрибутирован к источнику.
Согласно данным провайдера Callibri, точность подмены при правильной настройке достигает 99.9%.







