Чем продуктовая аналитика отличается от performance-метрик (RUM)?
Вопрос
В чём разница между продуктовой аналитикой (Google Analytics, Amplitude) и performance-метриками/RUM (Web Vitals), и почему frontend-команде важны обе?
Короткий ответ
Продуктовая аналитика (GA, Amplitude) отвечает на вопрос "что пользователи делают в продукте" — клики, переходы, воронки конверсии. Performance-метрики и RUM (Web Vitals: LCP, INP, CLS) отвечают на вопрос "насколько быстро и отзывчиво продукт работает у реальных пользователей". Первое про поведение, второе про скорость/качество исполнения, и обе категории нужны frontend-команде для разных решений.
Подробный ответ
Продуктовая аналитика (Google Analytics, Amplitude, Mixpanel, Яндекс.Метрика):
- Собирает события пользовательского поведения: просмотры страниц, клики по кнопкам, заполнение форм, добавление в корзину.
- Строит воронки (funnels) — сколько пользователей дошло от посадочной страницы до оформления заказа и на каком шаге отваливаются, когортный анализ, retention.
- Отвечает на продуктовые/бизнес-вопросы: "какой вариант кнопки конвертит лучше" (A/B-тесты), "откуда приходят самые ценные пользователи", "какая фича непопулярна и почему".
- Используется продакт-менеджерами, маркетингом, дизайнерами — но настройка событий и разметки (data layer,
track()-вызовы) — обычно ответственность frontend-разработчиков.
Performance/RUM метрики (Web Vitals):
- Собираются через браузерные API (
PerformanceObserver) прямо у реальных пользователей в реальных условиях сети/устройств — это и называется RUM (Real User Monitoring), в противовес синтетическим лабораторным замерам (Lighthouse на CI-машине с фиксированными условиями). - Ключевые метрики Core Web Vitals:
- LCP — скорость отрисовки основного контента.
- INP — отзывчивость на действия пользователя.
- CLS — визуальная стабильность (не "прыгает" ли вёрстка).
- Отвечают на инженерные вопросы: "стала ли страница медленнее после последнего релиза", "у какого процента пользователей плохой LCP и коррелирует ли это с оттоком", "влияет ли медленный сторонний скрипт на INP".
- Google использует Core Web Vitals как фактор ранжирования в поиске, так что это не только вопрос UX, но и SEO/бизнес-метрики.
Почему важны обе. Аналитика без performance-метрик не объясняет почему просела конверсия — часто причина в том, что страница стала на секунду медленнее грузиться, и это невидимо в чистых поведенческих событиях, если их не сопоставить с метриками скорости. А performance-метрики без продуктовой аналитики не показывают бизнес-эффект — LCP улучшился на 200мс, но неизвестно, повлияло ли это реально на конверсию или retention. На практике команды коррелируют оба набора данных: например, размечают в GA/Amplitude сегмент пользователей с плохим LCP и сравнивают их конверсию с сегментом с хорошим LCP.
Пример
// Продуктовая аналитика: событие "добавил в корзину"
gtag('event', 'add_to_cart', {
currency: 'USD',
value: 49.99,
items: [{ item_id: 'SKU123', item_name: 'Wireless Mouse' }],
})
// RUM: сбор Web Vitals и отправка вместе с контекстом страницы,
// чтобы потом можно было сопоставить с продуктовыми метриками
import { onLCP, onINP, onCLS } from 'web-vitals'
function report(metric) {
const payload = {
name: metric.name, // 'LCP' | 'INP' | 'CLS'
value: metric.value,
id: metric.id,
page: location.pathname,
}
navigator.sendBeacon('/rum-collector', JSON.stringify(payload))
}
onLCP(report)
onINP(report)
onCLS(report)
Дополнительные вопросы
- Как связать данные RUM (Web Vitals) с продуктовыми метриками конверсии на практике?
- Чем синтетическое измерение (Lighthouse в CI) хуже и лучше RUM с реальных пользователей?
- Какие есть риски и ограничения (privacy, GDPR) при сборе поведенческой аналитики?