Чем продуктовая аналитика отличается от performance-метрик (RUM)?

MiddleFrontend инструменты #tooling #analytics #web-vitals

Вопрос

В чём разница между продуктовой аналитикой (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) при сборе поведенческой аналитики?