Огляд
Phone Swap — це функція атрибуції дзвінків, яка динамічно замінює телефонні номери на вашому сайті залежно від джерела трафіку відвідувача. Коли відвідувач приходить з конкретної кампанії — Google Ads, Facebook, партнерського реферала або будь-якого UTM-посилання — трекер автоматично замінює ваш основний номер на виділений трекінговий номер. Коли відвідувач дзвонить на цей номер, ви точно знаєте яка кампанія привела дзвінок.
Як це працює
Налаштуйте підміну в кампанії
Відкрийте кампанію та встановіть Original Phone (номер на вашому сайті) і Replacement Phone (трекінговий номер для цієї кампанії). Детальніше у розділі Кампанії — Phone Swap.
Відвідувач заходить на сайт
Відвідувач натискає посилання кампанії (з UTM-параметрами) і скрипт трекера завантажується. Трекер отримує активні правила підміни з сервера.
Збіг UTM-параметрів
Трекер перевіряє UTM-параметри відвідувача проти кожного правила. Всі ненульові поля збігу (utm_source, utm_medium, utm_campaign, rvl_ref) повинні збігатися точно. Перше правило, що збіглося, перемагає.
Номер замінюється
Трекер знаходить всі екземпляри оригінального номера на сторінці — у
tel: посиланнях, у тексті з атрибутом data-revol-phone — і замінює їх трекінговим номером. Заміна зберігає форматування оригінального номера.Подія записується
Записується подія
phone_swap з оригінальним та замінним номерами. Ця подія відображається у Activity Log та таблиці Campaign Performance.Вкладка Phone Swap
Вкладка Phone Swap показує всі активні правила підміни з ваших кампаній в одній таблиці:| Колонка | Опис |
|---|---|
| Campaign | Назва кампанії з UTM-умовами (source, medium тощо) нижче |
| Phone Swap | Оригінальний номер → Замінний номер |
| Status | Активний або неактивний |
Додавання номерів на сайт
Трекер замінює телефонні номери двома способами:1. Tel-посилання (автоматично)
Будь-яке посилання<a href="tel:..."> на сторінці виявляється автоматично. Якщо href збігається з оригінальним номером з правила, він замінюється — і атрибут href, і видимий текст.
tel: посилання автоматично.
2. Data-атрибут (явний)
Для номерів, які не вtel: посиланнях (простий текст, span, div), додайте атрибут data-revol-phone:
data-revol-phone приховуються (visibility: hidden) до завершення підміни, запобігаючи миготінню оригінального номера.
Збереження формату
Трекер зберігає форматування оригінального номера при заміні. Якщо оригінальний і замінний мають однакову кількість цифр, замінний форматується за шаблоном оригінального:| Оригінал | Заміна (сира) | Результат |
|---|---|---|
+380 (44) 123-45-67 | +380949876543 | +380 (94) 987-65-43 |
044 123 45 67 | 0949876543 | 094 987 65 43 |
+380441234567 | +380949876543 | +380949876543 |
Підтримка SPA
Модуль підміни використовує MutationObserver для спостереження за динамічно доданими елементами. Якщо ваш сайт побудований на React, Vue, Angular або будь-якому фреймворку, що рендерить контент після завантаження сторінки — трекер виявляє нові елементи з номерами при їх появі в DOM і замінює їх автоматично. Observer спостерігає за всім body документа на предмет:- Нових посилань
<a href="tel:..."> - Нових елементів з атрибутом
data-revol-phone
Правила збігу
Правила підміни формуються з кампаній. Кожна кампанія з встановленими Original Phone та Replacement Phone створює правило.Як працює збіг
Трекер перевіряє UTM-параметри відвідувача проти полів збігу правила. Всі ненульові поля повинні збігатися точно (логіка AND):utm_source, але utm_medium порожній — достатньо збігу лише source. Порожні поля ігноруються при збігу.
Пріоритет
Якщо кілька кампаній відповідають UTM-параметрам відвідувача, використовується перше правило, що збіглося. Правила повертаються у порядку створення.Події підміни
Кожна підміна генерує подіюphone_swap, що записується один раз за сесію відвідувача. Подія містить:
- Activity Log — як тип події
phone_swapз даними from/to - Таблиці Campaign Performance — у колонці Phone Swaps
- Деталях сесії — у хронології подій сесії відвідувача
Сценарії використання
Відстеження дзвінків Google Ads
Відстеження дзвінків Google Ads
Створіть кампанію з
utm_source=google, utm_medium=cpc. Встановіть оригінальний номер як ваш основний бізнес-номер, а замінний — як виділений трекінговий номер. Кожен дзвінок від відвідувачів Google Ads атрибутується до цієї кампанії.Результат: Ви бачите скільки саме дзвінків генерують ваші витрати на Google Ads — у тому ж дашборді, що й чат-розмови, відправлення форм та перегляди сторінок.Багатоканальна атрибуція
Багатоканальна атрибуція
Створіть окремі кампанії для кожного джерела трафіку — Google, Facebook, Instagram, email-розсилка — кожна зі своїм трекінговим номером. Один і той же оригінальний номер на сайті замінюється по-різному залежно від того, звідки прийшов відвідувач.
| Кампанія | Джерело | Трекінговий номер |
|---|---|---|
| Google Brand | google / cpc | +380 44 111 1111 |
| Facebook Ads | facebook / paid | +380 44 222 2222 |
| Розсилка | newsletter / email | +380 44 333 3333 |
| Органіка | — (без підміни) | Оригінальний номер |
Офлайн-маркетинг (друк, білборди)
Офлайн-маркетинг (друк, білборди)
Створіть кампанію для друкованої реклами з унікальним параметром
rvl_ref. Додайте виділений номер. Коли хтось дзвонить з номера на флаєрі — ви знаєте, що це з друку, а не з диджиталу. Поєднайте з QR-кодом для цифрового трекінгу тих самих матеріалів.Партнерський та реферальний трекінг
Партнерський та реферальний трекінг
Дайте кожному партнеру власну кампанію з
rvl_ref=partner_name та виділений трекінговий номер. Відстежуйте точну кількість дзвінків від кожного партнера — разом із сесіями, переглядами сторінок та AI-розмовами.A/B тестування лендінгів
A/B тестування лендінгів
Створіть дві кампанії з однаковим джерелом, але різними значеннями
utm_content (напр., landing-v1 vs landing-v2), кожна з різним трекінговим номером. Порівнюйте обсяги дзвінків між варіантами.Інтеграція з SIP
Phone Swap стає значно потужнішим у поєднанні з інтеграцією SIP (VoIP) номерів. Коли ви використовуєте SIP-трекінгові номери як замінні, весь життєвий цикл дзвінка фіксується в Revol:Відвідувач бачить SIP-трекінговий номер
Трекер замінює оригінальний номер на SIP-номер для відвідувачів з конкретної кампанії.
Відвідувач дзвонить на SIP-номер
Дзвінок маршрутизується через вашого VoIP-провайдера (Binotel, Twilio тощо) і з’єднується з вашою командою.
Дзвінок записується та аналізується
З активною VoIP-інтеграцією дзвінок записується, транскрибується і прив’язується до сесії відвідувача. Ви бачите повний шлях: яку рекламу натиснув, які сторінки переглянув, і що сказав під час дзвінка.
Що ви отримуєте
З Phone Swap + SIP-інтеграцією разом ви маєте повний пайплайн атрибуції дзвінків:| Дані | Джерело |
|---|---|
| Яка кампанія привела відвідувача | UTM-параметри → Збіг кампанії |
| Які сторінки відвідувач переглянув перед дзвінком | Потік сторінок сесії |
| Скільки часу провів на сайті | Тривалість сесії |
| Що сказав під час дзвінка | Запис + транскрипт VoIP |
| Якість ліда та намір | AI-аналіз дзвінка |
| На який трекінговий номер подзвонив | Дані події phone_swap |
| Вартість дзвінка (якщо відомі витрати на рекламу) | Атрибуція кампанії + дані рекламної платформи |
Найкращі практики
Використовуйте виділені номери для кожної кампанії
Використовуйте виділені номери для кожної кампанії
Не використовуйте один трекінговий номер для кількох кампаній — це зводить нанівець атрибуцію. Кожна кампанія повинна мати унікальний замінний номер.
Додайте data-revol-phone до всіх елементів з номерами
Додайте data-revol-phone до всіх елементів з номерами
Навіть якщо ви використовуєте
tel: посилання (які виявляються автоматично), додавання data-revol-phone запобігає миготінню оригінального номера до завершення підміни.Зберігайте однаковий оригінальний номер
Зберігайте однаковий оригінальний номер
Використовуйте один і той же оригінальний номер у всіх кампаніях. Трекер шукає саме цей номер на сторінці — якщо на сайті різні номери в різних секціях, створіть окремі правила підміни для кожного.
Тестуйте з UTM-параметрами
Тестуйте з UTM-параметрами
Після налаштування правила підміни відвідайте свій сайт з відповідними UTM-параметрами (напр.,
?utm_source=google&utm_medium=cpc) та перевірте, що номер змінюється. Перевірте Activity Log на наявність події phone_swap.Технічні деталі
| Деталь | Значення |
|---|---|
| Модуль | tracker/modules/phone-swap.js — завантажується ліниво, лише коли є правила |
| Збіг | Точний збіг всіх ненульових UTM-полів (логіка AND) |
| Виявлення | Посилання <a href="tel:..."> + елементи [data-revol-phone] |
| Підтримка SPA | MutationObserver на document.body (childList + subtree) |
| Запобігання миготінню | CSS visibility: hidden на [data-revol-phone] до підміни |
| Трекінг подій | Одна подія phone_swap за сесію (лише перша підміна) |
| Оновлення конфігу | Кожні 5 хвилин через фонове опитування |
| Нормалізація номерів | Видаляє пробіли, дефіси, дужки, крапки перед порівнянням |


