BACK
Use casesRouter analytics — переходы страниц
Use cases · 21

Router analytics — переходы страниц

Паттерн

Аналитика должна знать, какие страницы реально просматривает пользователь, и в какой последовательности. Не «попытки перехода», а именно успешно завершённые навигации.

Какую проблему решаем

Если логировать NavigationStart, в аналитике появятся «призраки» — guard отменил, redirect перенаправил, ошибка прервала. Метрики завышены, воронка сломана. Нужно слушать только финал, и формировать пары (откуда → куда).

Операторы и зачем они нужны

  • filter — оставляем только NavigationEnd. Cancel и Error выбрасываем.
  • pairwise — отдаёт пару [предыдущий URL, следующий URL]. Идеально для модели «переход».
  • map — собирает analytics payload (from, to, timestamp и т.д.).

Подводные камни

  • pairwise ДО filter — отменённая навигация попадёт в пару и испортит данные. Сначала filter, потом pairwise.
  • Первая страница не создаёт перехода (некуда сравнивать с предыдущей). Если нужен initial referrer — добавьте startWith.
  • Не блокируйте навигацию ожиданием отправки аналитики. Analytics — fire-and-forget side effect.

Что в итоге получаем

Аналитика получает чистый поток реальных переходов между страницами, без шума от отменённых попыток.

script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...