Продукту — реальное поведение, а не клики
Счётчик кликов говорит, что кнопку нажали. Он не говорит, что перед этим страница думала четыре секунды и половина людей ушла до того, как она ответила.
Продуктовая аналитика обычно устроена вокруг событий: нажали кнопку, открыли экран, дошли до шага. Из событий строится воронка, в воронке видно, где теряются люди.
Чего в ней не видно — почему. Событие «не нажал кнопку» не отправляется.
Что пропускает событийная аналитика
Ожидание. Между открытием экрана и появлением кнопки может пройти четыре секунды. Пользователь, ушедший в эти четыре секунды, в воронке выглядит как человек, которому не подошло предложение.
Ошибки, не видимые пользователю как ошибки. Запрос не выполнился, интерфейс остался в прежнем состоянии, человек нажал ещё раз, потом ушёл. В событиях это два клика и выход.
Разницу между устройствами и сетями. Сценарий, который на быстром ноутбуке проходится за секунду, на среднем телефоне в плохой сети может не проходиться вовсе.
Что даёт соединение двух картин
Наблюдение за фронтендом даёт вторую половину: сколько времени заняло появление интерфейса, были ли ошибки, какой процентиль отзывчивости у тех, кто дошёл, и у тех, кто нет.
Соединённое с воронкой, это меняет вывод. Провал на шаге может оказаться не продуктовым, а инженерным — и тогда правильное действие не в переписывании текста на кнопке.
Обратное тоже случается: шаг быстрый и без ошибок, а люди уходят. Тогда это действительно продукт, и теперь это знание, а не предположение.
Почему для этого нужны свои данные
Потому что соединять надо на уровне сессии, а не сравнивать две панели глазами.
Когда продуктовые события лежат в одном сервисе, а метрики загрузки в другом, соединения не происходит. Формально данные есть, практически вопрос «была ли у ушедших хуже отзывчивость» остаётся без ответа, потому что нет способа сопоставить.
Свой стек снимает это ограничение: оба потока приходят в одно хранилище, и запрос по обоим — обычный запрос.
Что при этом стоит не собирать
Всё, что позволяет опознать человека, если для ответов на ваши вопросы это не требуется.
Соблазн собрать больше велик, особенно когда данные свои и лимитов нет. Но собранное придётся хранить, защищать и объяснять — а вопрос «была ли у ушедших хуже отзывчивость» отвечается на агрегатах без идентификаторов.
Правило простое: сначала вопрос, потом данные под него. Обратный порядок даёт хранилище, полное данных, на которых никто ничего не считает.
Что это меняет в разговоре между продуктом и разработкой
Появляется общий предмет. Спор «у нас медленно» против «у нас нормально» превращается в один график с распределением по процентилям, где видно, у какой доли пользователей и насколько.
Это скучнее, чем спор, и заметно короче.