Вы запустили интернет-магазин на 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 часов |







