Ви запустили інтернет-магазин на Laravel + React — 10 000 відвідувачів на день, але конверсія 1%. Google Analytics показує лише сторінки та сесії, а вам потрібні відповіді: який елемент форми відвалює, коли користувач кидає кошик. Mixpanel — інструмент подієвої аналітики, який перетворює кожну дію користувача на структуровану подію з контекстом. Ми — команда з 5-річним досвідом у веб-аналітиці, впровадили Mixpanel на 30+ проєктах. Беремося за інтеграцію під ключ: від SDK до дашбордів з когортами та воронками. Замовте консультацію — оцінимо проєкт за 24 години.
Mixpanel (en.wikipedia.org/wiki/Mixpanel) — платформа, орієнтована на події, а не на сторінки.
Чому Mixpanel кращий за Google Analytics для подієвої аналітики?
Google Analytics зав'язаний на сесії та перегляди сторінок. Mixpanel — на події: «натиснув кнопку», «заповнив форму», «почав оформлення». Воронки будуються миттєво, retention показує, скільки користувачів повернулося. Для SaaS та e-commerce це дає глибину, недоступну GA. Крім того, Mixpanel сегментує користувачів за властивостями без SQL.
| Характеристика | Google Analytics | Mixpanel |
|---|---|---|
| Модель даних | Сесії та перегляди сторінок | Події та властивості |
| Воронки | Обмежені, на основі цілей | Довільні, на будь-яких подіях |
| Retention | Сегменти, але негнучко | Когорти, авто-оновлювані |
| Ідентифікація | User-ID (складне налаштування) | Identify/Alias (1 метод) |
| Вартість | Безкоштовно (з обмеженнями) | Від $25/міс, але точніше |
Як ми налаштовуємо Mixpanel: встановлення SDK
Використовуємо два підходи: NPM-пакет для SPA або CDN-скрипт для класичних сайтів. В обох випадках ініціалізація з токеном із змінних оточення.
// NPM: встановлення та ініціалізація
import mixpanel from 'mixpanel-browser';
mixpanel.init(import.meta.env.VITE_MIXPANEL_TOKEN, {
debug: import.meta.env.DEV,
track_pageview: false,
persistence: 'localStorage',
ignore_dnt: false,
batch_requests: true,
batch_flush_interval_ms: 5000,
});Для класичних сайтів підключаємо CDN-скрипт з mixpanel.init('YOUR_TOKEN'). Режим batch_requests збільшує продуктивність — події надсилаються пачками раз на 5 секунд. У проєктах з високим навантаженням (понад 1000 подій/с) збільшуємо інтервал до 15 секунд, економлячи до 40% запитів.
Деталі налаштування batch-відправки
Щоб зменшити навантаження на браузер, ми вмикаємо batch_requests: true. Це надсилає події пачками кожні 5 секунд. Для високонавантажених проєктів збільшуємо інтервал до 10–15 секунд. Економить до 40% запитів.Що входить в нашу роботу
- SDK та трекінг: встановлення, налаштування базових подій (Page Viewed, Button Clicked, Form Submitted)
- Ідентифікація: зв'язування анонімних сеансів з реальними користувачами (identify, alias)
- Суперпроперті: автоматична передача контексту (версія застосунку, A/B-варіант, UTM-мітки)
- Server-side: трекінг подій з бекенду (оплати, поштові сповіщення) через HTTP API
- Дашборди та воронки: побудова звітів, налаштування сповіщень
- Документація: опис усіх подій, властивостей та схеми даних
- Навчання: передаємо знання вашій команді, консультуємо з аналітики
- Підтримка: 2 тижні після впровадження — допомагаємо з доопрацюваннями та питаннями
Трекінг подій: від простого до складного
Базовий трекінг — метод track. Для інтернет-магазину відстежуємо Product Viewed, Add to Cart, Purchase Completed. Кожна подія містить контекст: URL, реферер, користувацькі властивості.
// Приклади подій
mixpanel.track('Page Viewed', {
page_title: document.title,
page_url: window.location.pathname,
referrer: document.referrer || 'direct',
});
mixpanel.track('Button Clicked', {
button_text: 'Залишити заявку',
button_location: 'hero_section',
});
Як ідентифікувати користувача без реєстрації?
Якщо користувач заповнив форму, але не зареєструвався, використовуємо mixpanel.alias(email). Це зв'язує анонімний ID з email. Після реєстрації викликаємо identify(user.id) і встановлюємо властивості профілю через people.set. Суперпроперті (register) додаються один раз і передаються в усі наступні події.
Server-side трекінг: події з бекенду
Для операцій, недоступних на клієнті (підтвердження оплати, активація по email), використовуємо HTTP API Mixpanel. Надсилаємо POST-запит з base64-закодованим JSON. Наш досвід показує, що це підвищує точність даних на 15–20%.
// Приклад на Laravel
$data = [
'event' => 'Payment Completed',
'properties' => [
'token' => $token,
'distinct_id' => $userId,
'time' => time(),
'$insert_id' => uniqid('srv_', true),
'amount' => 14500,
],
];
Http::asForm()->post($endpoint, [
'data' => base64_encode(json_encode([$data])),
]); Відлагодження та перевірка
Вмикаємо debug-режим: mixpanel.set_config({ debug: true }). У консолі бачимо логи кожного track-виклику. Розширення Mixpanel для Chrome DevTools показує події в реальному часі. Гарантуємо, що дані відправляються коректно — перевіряємо на тестовому проєкті до запуску. Вартість інтеграції залежить від складності, але в середньому економія на внутрішніх ресурсах становить до 40% порівняно з самостійною розробкою.
Строки та вартість
Базова інтеграція (SDK + базові події) — 4–6 годин. Повний цикл з ідентифікацією, server-side та дашбордами — 1–2 дні. Вартість розраховується індивідуально, залежить від складності вашого проєкту. Замовте аудит вашого стеку аналітики — ми підберемо оптимальну схему та дамо оцінку за 24 години.
| Етап | Час |
|---|---|
| Встановлення SDK | 2–4 години |
| Трекінг подій | 2–4 години |
| Ідентифікація | 4–6 годин |
| Server-side трекінг | 4–8 годин |
| Дашборди та воронки | 4–8 годин |







