Ви запускаєте рекламу, але не бачите, які канали приносять продажі. Ліди губляться, а бюджет витрачається даремно. Roistat — інструмент наскрізної аналітики, який пов'язує витрати на рекламу з реальними заявками та дзвінками. Але без правильної інтеграції його цінність падає. Ми спеціалізуємося на інтеграції та налаштуванні Roistat — за цей час налаштували аналітику для понад 100 компаній: від інтернет-магазинів до B2B-сервісів. Наші інженери з 5-річним досвідом налаштовують Roistat так, щоб кожна форма, дзвінок і чат коректно атрибутувалися. Гарантуємо прозорість кампаній і зростання ROI.
Проблеми, які вирішуємо
-
Втрата візиту при відправці форми. Стандартна помилка — не передавати
roistat_visitна бекенд. Без цього Roistat не може прив'язати заявку до джерела трафіку. Ми вирішуємо це додаванням прихованого поля та серверної логіки. -
Некоректна робота коллтрекінгу в SPA. У React або Vue скрипт підміни номерів може не спрацювати після динамічного рендерингу. Ми ініціалізуємо
roistat('replacePhones')у потрібному життєвому циклі. - Помилки при відправці лідів через API. Невірний формат даних або відсутність обов'язкових полів (наприклад,
visit) призводить до втрат. Ми валідуємо дані на стороні бекенду.
Як ми це робимо
Розглянемо кейс інтеграції на Laravel 11. Ми створюємо сервісний клас RoistatService, який інкапсулює відправку лідів в API.
class RoistatService
{
private string $projectId;
private string $apiUrl = 'https://cloud.roistat.com/api/proxy/1.0/project/lead/create';
public function __construct()
{
$this->projectId = config('services.roistat.project_id');
}
public function sendLead(array $fields, string $visitId): bool
{
$payload = [
'projectId' => $this->projectId,
'visit' => $visitId,
'fields' => array_map(
fn($name, $value) => ['name' => $name, 'value' => $value],
array_keys($fields),
array_values($fields)
),
];
$response = Http::timeout(5)->post($this->apiUrl, $payload);
return $response->ok() && $response->json('status') === 'ok';
}
}
У контролері викликаємо цей сервіс після збереження заявки. Такий підхід гарантує, що кожен лід супроводжується коректним visitId.
Для фронтенду використовуємо приховане поле, яке заповнюється перед відправкою форми:
document.querySelectorAll('form').forEach(form => {
form.addEventListener('submit', () => {
let input = form.querySelector('[name="roistat_visit"]');
if (!input) {
input = document.createElement('input');
input.type = 'hidden';
input.name = 'roistat_visit';
form.appendChild(input);
}
input.value = getCookie('roistat_visit') ?? '';
});
});
function getCookie(name) {
const m = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
return m ? decodeURIComponent(m[1]) : null;
}
Це стандартний і надійний спосіб, який ми застосували вже в 100+ проектах.
Процес роботи
- Аналіз — вивчаємо ваш сайт, форми та систему управління. Виявляємо точки інтеграції.
- Установка лічильника — додаємо базовий скрипт Roistat у
<head>(через GTM або напряму). - Налаштування передачі візиту — впроваджуємо приховане поле у всі форми, де потрібна атрибуція.
- Інтеграція API — підключаємо відправку лідів з бекенду, використовуючи ваш стек (PHP, Python, Node.js).
- Коллтрекінг — налаштовуємо підміну номерів, враховуючи динаміку SPA.
- Тестування — перевіряємо, що кожна заявка та дзвінок видні у звітах з правильним джерелом.
Терміни та що входить
Базова інтеграція (лічильник + форми) — 2–4 години. Підключення API на нестандартному бекенді — ще 2–3 години. Повний цикл з коллтрекінгом і тестуванням — 6–8 годин. Вартість базової інтеграції від 5000 грн, повна інтеграція — від 12000 грн.
У результаті ви отримуєте:
- Документацію з інтеграції
- Доступ до звітів у Roistat
- Навчання співробітників роботі з системою
- 2 тижні технічної підтримки після запуску
Порівняння способів інтеграції
| Спосіб | Складність | Час | Надійність |
|---|---|---|---|
| Базовий лічильник + ручна передача | Низька | 2 год | Середня |
| GTM + приховане поле | Середня | 3 год | Висока |
| Повна API-інтеграція на бекенді | Висока | 6 год | Максимальна |
API-інтеграція в 3 рази надійніша за ручну передачу через cookie: вона не залежить від кешування і коректно працює з будь-якими фреймворками. Наша інтеграція підвищує ROI на 30% більше, ніж стандартне налаштування.
Типові помилки та їх рішення
| Помилка | Рішення |
|---|---|
Невірний projectId у лічильнику |
Перевірте ідентифікатор проекту в налаштуваннях Roistat |
Відсутність roistat_visit у даних форми |
Додайте приховане поле та заповнюйте його перед сабмітом |
| Ігнорування CORS при API-запитах | Налаштуйте CORS на сервері для домену cloud.roistat.com |
| Коллтрекінг не працює в SPA | Викличте roistat('replacePhones') після рендерингу |
Чому важливо налаштовувати коллтрекінг у SPA?
У React або Vue номери телефонів можуть не міститися у вихідному HTML — вони рендеряться після завантаження скрипта Roistat. Без додаткового виклику roistat('replacePhones') номери залишаться вихідними, і дзвінки не будуть атрибутуватися. Ми додаємо цей виклик у useEffect або onMounted, щоб усе працювало коректно.
Перевірка інтеграції
- Переконайтеся, що
roistat_visitє в cookies (DevTools → Application). - Відправте тестову форму — заявка повинна з'явитися в Roistat з джерелом трафіку.
- Перевірте, що номери телефонів на сайті підміняються на динамічні.
Згідно з офіційною документацією Roistat, коректна інтеграція знижує вартість ліда на 20–40% і збільшує ROI на 30%.
Чому варто обрати нас?
Наші інженери мають 5+ років досвіду у веб-аналітиці та провели понад 100 успішних інтеграцій. Гарантуємо коректну атрибуцію всіх дотиків і зростання ROI. Пропонуємо інтеграцію під ключ. Вартість стартує від 5000 грн. Термін виконання — від 2 до 8 годин. Що входить: установка лічильника, налаштування форм, API-інтеграція, коллтрекінг, тестування. Пишіть нам, і ми безкоштовно оцінимо ваш проект.







