Настройка динамического коллтрекинга на 1С-Битрикс
Динамический коллтрекинг решает одну конкретную проблему: какое рекламное объявление или канал привёл клиента, который позвонил. Без него в отчёте по рекламе видно клики и конверсии на сайте, но звонки выпадают из картины. В ecommerce и услугах, где 40–60% заявок приходит по телефону, это делает аналитику бесполезной.
Принцип работы: каждому посетителю показывается уникальный подменный номер телефона из пула. Система коллтрекинга сопоставляет номер с визитом и фиксирует UTM-метки, источник, ключевое слово. После звонка номер возвращается в пул.
Выбор провайдера и установка скрипта
Основные провайдеры на рынке: Callibri, CoMagic, Roistat, Ringostat, Mango Office. У каждого — свой JS-скрипт и API. Архитектурно все они работают одинаково: вставляете скрипт в <head>, он подменяет телефоны на странице по CSS-селектору или через span с data-атрибутом.
Для Битрикс скрипт добавляем через стандартный механизм Bitrix\Main\Page\Asset:
// /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 // в head
);
}
);
Добавление через OnEpilog гарантирует, что скрипт не попадёт в кеш страниц Битрикс и не будет вставлен дважды при AJAX-навигации.
Разметка телефонов на сайте
Для корректной подмены телефон должен быть размечен. Рекомендуемый способ — data-атрибуты на span:
<!-- Вместо -->
<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>
Скрипт провайдера находит элементы по классу или атрибуту и заменяет содержимое. Если телефон выводится через компоненты Битрикс (шапка, карточка товара), правку делаем в шаблоне компонента — обычно header.php или кастомный шаблон.
Для сайтов с несколькими телефонами (основной, отдел продаж, сервис) — каждому можно назначить отдельный пул номеров через группы подмены. Настраивается в ЛК провайдера.
Настройка пула номеров
Размер пула определяет точность отслеживания. Расчёт: если на сайте одновременно 20 посетителей и средняя длительность сессии 3 минуты, нужно минимум 20 номеров. Провайдеры дают рекомендацию исходя из трафика.
Для Битрикс-сайтов с кешированием есть нюанс: если страница закеширована на уровне Битрикс (управляемый кеш или nginx), скрипт коллтрекинга может подгрузиться с задержкой или не подгрузиться совсем при отключённом JS. Решение — телефон в HTML ставить как fallback, а подмена происходит через JS уже после загрузки.
Передача данных в Google Analytics / Яндекс.Метрику
Провайдеры коллтрекинга умеют передавать звонки как события в GA4 и Метрику. Для этого в настройках провайдера указываем ID счётчиков. Дополнительно — проброс User ID для сшивки сессий:
// После инициализации счётчика GA4
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,
});
});
Проверка корректности подмены
После установки нужно проверить, что подмена работает для всех каналов. Чеклист:
- Открыть сайт с UTM-метками
?utm_source=yandex&utm_medium=cpc— телефон должен смениться - Открыть без UTM (прямой заход) — должен отображаться дефолтный номер из пула
- Проверить кешированные страницы: после прогрева кеша
bitrix:cacheтелефон всё равно должен подменяться - Убедиться, что телефон в og:image и Schema.org (если есть) — статический, не подменяемый
- Проверить мобильную версию — click-to-call должен вести на подменный номер
Состав работ
- Регистрация аккаунта у провайдера, формирование пула номеров
- Установка JS-скрипта в шаблон Битрикс через Asset API
- Разметка телефонов в шаблонах компонентов
- Настройка групп подмены (если несколько телефонов)
- Интеграция с GA4 / Яндекс.Метрикой через события
- Тестирование подмены по всем источникам трафика
Сроки: базовая настройка (один телефон, один пул) — 3–5 рабочих дней. Сложные схемы с несколькими телефонами, группами и интеграцией в CRM — 1–2 недели.







