Відстеження конверсій
Revolink може відстежувати, що роблять відвідувачі після кліку по вашому посиланню: реєстрації, покупки, ліди, перегляди сторінок і будь-яку власну подію, яку ви визначите. Результати показуються в розрізі посилання, правила маршрутизації та A/B-варіанта, тож ви точно знаєте, який варіант дає найбільше результатів.
У цьому посібнику: налаштування відстеження, встановлення SDK, відстеження подій і читання даних.
Як це працює
Коли відвідувач натискає на ваше посилання Revolink, SDK розпізнає, що візит прийшов із вашого посилання, і починає сесію. Усі події, що відбуваються протягом цієї сесії, зараховуються посиланню (а також конкретному правилу маршрутизації чи A/B-варіанту, під який потрапив відвідувач).
Атрибуція йде від посилання
SDK відстежує події лише для відвідувачів, які прийшли через посилання Revolink. Якщо хтось відкриває ваш сайт напряму, не натискаючи на посилання Revolink, його події не враховуються. Так ваші дані лишаються чистими, а атрибуція точною.
Крок 1 — Згенеруйте ключ робочого простору
Перейдіть у Налаштування робочого простору → Трекінг конверсій.

Натисніть Згенерувати ключ. Revolink створить унікальний ключ для вашого робочого простору й покаже фрагмент для встановлення.

Крок 2 — Встановіть скрипт
Скопіюйте фрагмент скрипта й вставте його в <head> кожної сторінки, яку хочете відстежувати, зазвичай у спільний файл макета.
<script src="https://cdn.revolink.link/sdk/conversion.js"
data-workspace-key="YOUR_KEY"></script>
Замініть YOUR_KEY на ваш справжній ключ (у фрагменті в налаштуваннях він уже підставлений).
Один ключ на робочий простір
Ключ прив'язаний до робочого простору. Якщо ви користуєтеся кількома робочими просторами, у кожного свій ключ: використовуйте правильний для кожного сайту.
Що SDK відстежує автоматично
Після встановлення SDK відстежує ці події без жодного додаткового коду, але лише для відвідувачів, які прийшли через посилання Revolink:
page_view
Спрацьовує одразу, коли відвідувач відкриває сторінку. Це перша подія будь-якої сесії: вона підтверджує, що атрибуція визначена правильно. Надсилається через fetch, щоб SDK міг виявити недійсний ключ робочого простору й за потреби припинити подальше відстеження.
scroll_depth
Спрацьовує, коли відвідувач залишає сторінку (вкладка стає прихованою або браузер закривається). Фіксує максимальний відсоток прокручування за сесію, округлений до 25, 50, 75 або 100. Надсилаються лише ненульові значення.
Використовує upsert: якщо відвідувач повертається на ту саму сторінку в межах тієї самої сесії, значення оновлюється, а новий запис не додається.
time_on_page
Спрацьовує разом із scroll_depth при приховуванні сторінки. Враховує лише час, коли вкладка справді була видимою: перемикання на іншу вкладку ставить таймер на паузу. Значення в секундах.
Також використовує upsert, тож перемикання між вкладками туди й назад накопичується в один запис на сторінку за сесію.
outbound_click
Спрацьовує щоразу, коли відвідувач натискає на посилання (<a href>), що веде на інший домен. Зберігає повний href як metadata.url. Корисно, щоб зрозуміти, які зовнішні посилання відвідувачі натискають найчастіше.
Події залученості та квоти
scroll_depth, time_on_page і outbound_click не враховуються в місячній квоті конверсій вашого тарифу. Враховуються лише явні події.
Усі доступні події
Автоматичні (відстежує SDK)
| Подія | Коли спрацьовує | Враховується в квоті |
|---|---|---|
page_view | Сторінка завантажується, відвідувач прийшов через посилання Revolink | Так |
scroll_depth | Відвідувач залишає сторінку | Ні |
time_on_page | Відвідувач залишає сторінку | Ні |
outbound_click | Відвідувач натискає на посилання на зовнішній домен | Ні |
Стандартні (відстежуйте вручну, рекомендовано)
Використовуйте ці назви для подій, що відповідають типовим етапам воронки. Вони відображаються у готових картках дашборда (ліди, продажі, дохід).
| Подія | Коли надсилати | Підтримує value/currency |
|---|---|---|
lead | Надіслано контактну форму, зібрано email | Ні |
complete_registration | Створено новий обліковий запис | Ні |
initiate_checkout | Відкрито сторінку оформлення замовлення | Ні |
subscribe | Розпочато підписку | Так |
purchase | Оплату завершено | Так |
view_content | Переглянуто ключову сторінку (продукт, ціни) | Ні |
Логіка воронки
lead має дедуплікацію: якщо для тієї самої пари «сесія + посилання» вже є подія lead, друга не додається. Це запобігає подвійному підрахунку при повторному надсиланні форм. Власні події з countAs: 'lead' дедуплікуються так само.
Події з указаним value (зокрема з нестандартними назвами) рахуються в дашборді як продажі.
Власні події
Можна надсилати подію з будь-якою назвою до 64 символів. Власні події відображаються в розбивці за подіями на сторінці «Конверсії» поряд зі стандартними. Вони враховуються в місячній квоті.
revolink.track('video_played');
revolink.track('calculator_used', { tool: 'roi' });
revolink.track('coupon_applied', { code: 'SUMMER10' }, 0, 'USD');
За замовчуванням власні події відображаються як кліки у зведенні дашборда (кількості «Ліди» / «Продажі»). Щоб вони рахувалися як ліди чи продажі, додайте countAs у metadata:
revolink.track('signup_completed', { countAs: 'lead' });
revolink.track('order_placed', { countAs: 'sale' }, 59.99, 'USD');
Допустимі значення: 'lead', 'sale'. Якщо countAs не вказано, подія рахується як клік (за замовчуванням).
Відстеження через HTML-атрибути
JavaScript не потрібен: додайте data-revolink-action до будь-якого елемента, і SDK автоматично надішле подію, коли на елемент натиснуть:
<button
data-revolink-action="purchase"
data-revolink-value="49.99"
data-revolink-currency="USD"
data-revolink-metadata='{"plan":"pro"}'>
Buy now
</button>
| Атрибут | Обов'язковий | Опис |
|---|---|---|
data-revolink-action | Так | Назва події, яку потрібно надіслати |
data-revolink-value | Ні | Грошова сума (число) |
data-revolink-currency | Ні | Трилітерний код валюти |
data-revolink-metadata | Ні | JSON-об'єкт із додатковими даними (до 10 ключів) |
Ідентифікація користувача
Викличте revolink.setUser() перед відстеженням подій, щоб прикріпити ідентифікатор до кожної події. Це покращує атрибуцію, коли та сама людина заходить з різних пристроїв чи в різних сесіях.
revolink.setUser({
userId: 'user_123', // your internal user ID
hashedEmail: sha256(email) // SHA-256 hash of the email, never raw
});
Ніколи не надсилайте email у відкритому вигляді
Завжди хешуйте email за допомогою SHA-256 перед передаванням. Revolink зберігає лише hashedEmail і не може відновити початкове значення.
Після виклику setUser усі наступні виклики revolink.track() у цій сесії містять ці ідентифікатори.
Відстеження на стороні сервера
Надсилання подій із вашого бекенда обходить блокувальники реклами та ITP (Intelligent Tracking Prevention). Використовуйте це для цінних подій, як-от покупки, де найважливіша точність.
Ендпоінт: POST /apiv1/track-conversion
Автентифікація: Authorization: Bearer YOUR_KEY
Щоб захиститися від підроблених запитів, Revolink підтримує підпис запитів HMAC. Ваш секрет HMAC показано на вкладці Трекінг конверсій у розділі HMAC Secret.
// Node.js example
const crypto = require('crypto');
const payload = JSON.stringify({
event: 'purchase',
value: 49.99,
currency: 'USD',
userId: 'user_123',
linkSlug: 'my-campaign' // optional — attribute to a specific link
});
const signature = crypto
.createHmac('sha256', HMAC_SECRET)
.update(payload)
.digest('hex');
fetch('https://api.revolink.link/apiv1/track-conversion', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer YOUR_KEY`,
'X-Revolink-Signature': signature
},
body: payload
});
Поля тіла запиту:
| Поле | Тип | Опис |
|---|---|---|
event | string | Назва події (обов'язково) |
value | number | Грошова сума |
currency | string | Трилітерний код валюти ISO |
sessionId | string | ID сесії (щоб прив'язати до сесії в браузері) |
userId | string | Ваш внутрішній ID користувача |
hashedEmail | string | SHA-256 хеш email користувача |
linkSlug | string | Slug посилання Revolink, якому слід зарахувати цю подію |
ruleId | string | ID правила маршрутизації (для атрибуції на рівні правила) |
abVariantId | string | ID A/B-варіанта (для атрибуції на рівні A/B) |
metadata | object | Власні дані ключ/значення (до 10 ключів, по 64 символи). Задайте countAs: 'lead' або countAs: 'sale', щоб визначити, як власна подія рахується у зведеннях дашборда. |
page | string | URL сторінки, де відбулася подія |
referrer | string | URL реферера |
Якщо для вашого робочого простору задано conversionHmacSecret, заголовок X-Revolink-Signature обов'язковий: запити без дійсного підпису відхиляються.
Перегляд даних про конверсії
Перейдіть у розділ Конверсії в лівому меню.

На сторінці дві вкладки:
Вкладка «Події»
Показує всі відстежені події (крім автоматичних подій залученості).
Угорі зведені показники: усього конверсій, кількість лідів, кількість продажів і дохід за кожною валютою.
Нижче: графік конверсій за вибраний період і таблиця окремих подій із назвою події, пристроєм, сторінкою, сумою та часом.
Фільтри: звужуйте дані за назвою події, типом пристрою, валютою, сумою чи slug посилання.
Вкладка «Залученість»

Показує автоматичні метрики залученості:
- Глибина прокручування: розподіл за тим, як далеко відвідувачі прокрутили сторінку (25%, 50%, 75%, 100%)
- Час на сторінці: розподіл сесій за тривалістю: менше 30 с, 30–60 с, понад 60 с; а також середнє значення
- Вихідні кліки: найпопулярніші зовнішні URL, на які клікали, із кількістю
Атрибуція: посилання, правила та A/B-варіанти
Кожна подія зараховується конкретному посиланню, правилу маршрутизації та A/B-варіанту, під які потрапив відвідувач, коли клікнув по вашому посиланню.
Цей розподіл можна побачити в:
- Аналітиці посилання: відкрийте будь-яке посилання, перейдіть на вкладку «Аналітика» й прокрутіть до Конверсій, щоб побачити події, зараховані цьому посиланню
- Сторінці «Конверсії»: відфільтруйте за посиланням, щоб бачити лише події певної кампанії

Якщо на посиланні запущено A/B-тест чи правила маршрутизації, дані про конверсії показують результати за кожним правилом і варіантом, тож ви можете напряму порівняти, яка версія конвертує краще.
Перегенерація ключа
Ключ робочого простору можна перегенерувати будь-коли в Налаштування робочого простору → Трекінг конверсій (лише для власників робочого простору).
Одразу оновіть тег скрипта
Після перегенерації старий ключ перестає працювати. Будь-яка сторінка зі старим ключем виведе попередження в консоль браузера й припинить відстеження. Якнайшвидше оновіть атрибут data-workspace-key у тезі скрипта на всіх сторінках.

Ліміти тарифу
Кожен тариф включає місячну квоту подій конверсій. Події залученості (scroll_depth, time_on_page, outbound_click) у квоту не входять; враховуються лише явні події.
Коли квоту вичерпано, нові події відхиляються з HTTP 429, і ви отримуєте сповіщення. Наявні події зберігаються. Квота оновлюється відповідно до вашого платіжного циклу.
Поширені запитання
Чи відстежує SDK відвідувачів, які прийшли не через посилання Revolink?
Ні. SDK перевіряє наявність cookie атрибуції Revolink (_rvl_rl). Якщо його немає, SDK одразу завершує роботу й нічого не відстежує. Так задумано: враховується лише трафік, що походить від ваших посилань.
Що буде, якщо відвідувач вимкне JavaScript або користується блокувальником реклами?
Клієнтські події SDK буде заблоковано. Для цінних подій, які не можна пропустити, використовуйте відстеження на стороні сервера.
Чи можна відстежувати ту саму подію і з браузерного SDK, і з сервера?
Можна, але ту саму конверсію можна порахувати двічі. Використовуйте sessionId у серверній події, щоб зіставити її з сесією в браузері, і тримайте логіку узгодженою.
Чи безпечно зберігаються дані про email?
Revolink ніколи не зберігає email-адреси у відкритому вигляді. Зберігається лише хеш SHA-256. Ви маєте самі захешувати email перед викликом revolink.setUser() або включенням у серверну подію.
Що таке підпис HMAC і чи потрібен він мені?
Підпис HMAC дає змогу Revolink переконатися, що серверні події надіслано з вашого бекенда, а не підроблено. Якщо для вашого робочого простору налаштовано секрет HMAC, кожен серверний запит має містити заголовок X-Revolink-Signature. Для продакшну це настійно рекомендується.
Чи можна надсилати грошові події без валюти?
Ні. Якщо ви передаєте value без currency (або навпаки), обидва поля мовчки відкидаються. Завжди надсилайте їх разом.
Які назви подій варто використовувати?
За можливості використовуйте стандартні назви (lead, purchase, subscribe, complete_registration, initiate_checkout): вони відповідають готовим воронкам у дашборді. Власні назви теж працюють, але відображаються лише в розбивці «за подіями».
Як зробити так, щоб власна подія рахувалася як лід чи продаж?
Додайте countAs: 'lead' або countAs: 'sale' у metadata події. Це вказує Revolink, як класифікувати подію у зведенні «Ліди/Продажі» та на графіках воронки. Без countAs власні події рахуються як кліки.
Скільки ключів metadata можна прикріпити до події?
До 10 ключів на подію. Ключі обрізаються до 64 символів. Значення мають бути рядками, числами чи булевими значеннями.