К содержанию
ActionPulse

Записи сессий

Как найти нужную запись сессии, что показывает плеер, сколько записи хранятся, что в них попадает, а что не записывается никогда, и каким атрибутом исключить блок страницы.

Кому
Продуктовым командам и поддержке
Проверено
На этой странице

Запись сессии — это воспроизведение того, что происходило в браузере пользователя: разметка страницы и её изменения, перемещения курсора, прокрутка, клики. Смотреть записи подряд бесполезно. Они работают тогда, когда у вас уже есть вопрос: «почему на этом шаге воронки уходит половина» или «что видел человек, который написал в поддержку».

Поведение → Записи действий.

Как найти нужную запись

Экран показывает список сессий, а не только записанных. У сессии без записи в последней колонке будет «Нет записи» — это нормально: события собираются всегда, а запись ведётся только для выбранной доли сессий.

Фильтры на экране ровно такие:

Фильтр Что делает
Период по умолчанию последние 7 календарных дней; максимум 90 дней
URL содержит подстрока в любом адресе внутри сессии, до 2048 байт
Actor ID идентификатор человека, до 256 байт
Наличие записи Любое / Есть запись / Нет записи
Rage click Любой / Есть / Нет

Про фильтры стоит знать три вещи.

URL — это подстрока, а не точное совпадение. Значение /pricing найдёт и /pricing, и /ru/pricing/enterprise. Сессия попадает в список, если хотя бы одно её событие содержит эту подстроку в адресе.

Actor ID ищет по всем идентификаторам человека. Значение сопоставляется с каноническим идентификатором, с user_id и с анонимным идентификатором, а связанные идентификаторы разворачиваются: если вы подставите user_id, найдутся и сессии, которые человек провёл анонимно до входа.

Период ограничен 90 днями. Это предел одного запроса, а не срок хранения. Более длинный период интерфейс не отправит и покажет ошибку валидации.

Колонки списка: Последняя активность, Актор, URL, Длительность, События, Сигналы (значки «Запись» и «Rage») и ссылка «Смотреть запись». Сортировка — по последней активности, новые сверху; страница — 50 сессий, дальше «Загрузить ещё».

Приходите из отчёта, а не из списка

Список сессий отвечает на вопрос «покажи все сессии за период». На практике полезнее приходить из отчёта, где уже видна проблема:

  • карточка человека → у сессии с записью есть ссылка «Смотреть запись»;
  • воронка, разбор отвалившихся на переходе → «Сессии отвалившихся»;
  • удержание, список людей ячейки → «Смотреть сессии».

Такие переходы сами подставляют фильтры и период, поэтому вы попадаете сразу в нужную выборку. Ссылки появляются, если разбор по людям входит в тариф, а период исходного отчёта укладывается в 90 дней.

Что видно в плеере

Плеер открывается по ссылке из списка. Управление:

  • «Воспроизвести» / «Пауза»;
  • скорость — ровно 1×, 2× и 4×;
  • «Пропускать паузы» — по умолчанию выключено; включайте, когда сессия длинная, а интересуют только действия;
  • ползунок позиции с шагом 100 мс и текущим временем в формате м:сс.

Над ползунком нанесены маркеры — четыре вида, других нет:

Маркер Что означает
Клик нажатие
Rage click серия быстрых кликов в одно место
Dead click клик, после которого на странице ничего не изменилось
JS error ошибка JavaScript в этот момент

Под ползунком — легенда со счётчиком по каждому виду, а ниже список маркеров: нажатие на строку перематывает запись к этому моменту. Именно так удобно смотреть запись — не с начала, а от проблемного места.

Маркеры не несут никакой дополнительной информации: в запись переносится только факт события. Ни селектор, ни адрес, ни текст ошибки в тело записи не попадают — их видно в отчётах «Поведение» и «Диагностика».

Если запись не сохранилась или её срок хранения истёк, вместо плеера появится «Запись недоступна». События этой сессии при этом остаются доступны в карточке человека — стирается запись, а не история событий.

Сколько хранятся записи

Срок хранения записей задаётся тарифом и составляет от 7 дней до 90 дней. Записи старше срока удаляются, а не скрываются: истёкшие части стираются из хранилища ежедневной задачей очистки. Сверху действует общий предел в 90 дней — дольше записи не хранятся ни при каких условиях.

Отдельного месячного лимита на число записанных сессий в тарифах нет: расход ограничен сроком хранения, долей записываемых сессий и пределами одной сессии.

Пределы одной записи зафиксированы в трекере:

Предел Значение
Длительность записи 60 минут
Объём записи за сессию 10 МиБ в сжатом виде
Размер одной части 512 КиБ
Отправка накопленного каждые 5 секунд

При достижении любого предела запись останавливается, буфер отбрасывается и в эту сессию больше не возобновляется. Факт остановки фиксируется отдельным событием pp.replay_capped с причиной — его видно в реестре событий. Сессия длиннее часа в запись целиком не попадёт: это осознанный компромисс в пользу предсказуемого объёма данных.

Что записывается и что не записывается

Запись — это не видео экрана, а поток изменений разметки, который плеер воспроизводит заново. Поэтому список «не записывается» короткий и жёсткий.

Режим текста задаётся на проект в Настройки → Сбор и приватность → Записи сессий → «Текст на странице»:

  • Строгий — маскировать весь текст (по умолчанию): текста страницы в записи нет вообще, видна только структура и поведение;
  • Стандартный — маскировать ввод и пароли: текст виден, поля ввода по-прежнему замаскированы.

Перемещения курсора и прокрутка записываются с прореживанием (50 мс и 150 мс соответственно) — этого достаточно, чтобы движение читалось, и заметно меньше данных, чем поток «как есть».

Подробный разбор приватности записей — что именно маскируется, как записи дополнительно обезвреживаются при воспроизведении и что писать в политику конфиденциальности — в статье приватность записей сессий.

Как исключить элемент или замаскировать содержимое

Здесь важно не перепутать два похожих атрибута. Мы специально называем точное поведение каждого.

Атрибут Автосбор поведения Записи сессий
data-pp-block исключает элемент и всё внутри исключает элемент и всё внутри
data-pp-ignore исключает элемент и всё внутри не влияет
<!-- В запись не попадёт: ни разметка, ни содержимое -->
<section data-pp-block>
  <h3>Медицинская карта</h3>
  <p>Диагноз: …</p>
</section>

<!-- Из отчёта «Поведение» уйдёт, но в записи останется видно -->
<div data-pp-ignore>
  <button>Служебная кнопка</button>
</div>

Отдельного атрибута для маскирования содержимого — вида data-pp-mask — в продукте нет. Маскирование управляется двумя механизмами, и оба работают на весь проект: поля ввода маскируются всегда, а весь остальной текст — в строгом режиме. Если нужно скрыть конкретный фрагмент, а остальной текст оставить видимым, оберните фрагмент в data-pp-block.

Маскирование и блокировка не зависят от тарифа: их нельзя отключить платной возможностью и нельзя ослабить настройкой проекта.

Кто может смотреть и что фиксируется

Список сессий и плеер требуют роли «Аналитик» или выше. Чтение ограничено 120 запросами в минуту на пользователя, проект и экран.

Каждый просмотр записи фиксируется в журнале аудита продукта, и запись в журнал делается до выдачи данных: если зафиксировать просмотр не удалось, данные не отдаются. В плеере об этом прямо сказано в блоке «Приватность записи».

В журнал попадает только производный отпечаток идентификатора сессии, привязанный к проекту, — ни сам идентификатор, ни содержимое записи там не хранятся. Отдельно фиксируются успешный просмотр, неудачное чтение и настоящий отказ по правам: отсутствующая или повреждённая запись никогда не выглядит в журнале как запрет доступа.

Включение записи

Записи выключены по умолчанию. Включаются в Настройки → Сбор и приватность → Записи сессий:

  1. Включите «Записывать выбранную долю сессий».
  2. Задайте «Доля записей» — от 0 до 100% с шагом 5.

Менять эти настройки могут «Владелец» и «Админ», видеть — все участники проекта.

Доля решается один раз на сессию: жребий бросается при старте сессии и держится до её конца, поэтому запись не может оборваться на середине из-за семплирования. Трекеры подхватывают новую конфигурацию в течение минуты, и изменения действуют только для новых сессий — история задним числом не заполняется.

Начинайте с небольшой доли. Записи нужны выборочно, а объём данных растёт линейно.

Если записей нет

Симптом Что проверить
Все сессии с пометкой «Нет записи» включён ли переключатель записей и не равна ли доля нулю
Раздел закрыт заглушкой о тарифе записи не входят в текущий тариф или лицензию on-prem
Раздел закрыт сообщением о правах у вас роль «Наблюдатель» — нужна «Аналитик» или выше
Записи не появляются только на части сайта политика безопасности сайта не разрешает worker-src blob: — без этого отказывают только записи, остальной сбор продолжается
Записи не появились сразу после включения конфигурация обновляется в течение минуты и применяется к новым сессиям
Сессия оборвалась на середине сработал предел длительности или объёма, см. pp.replay_capped
Ничего не собирается до согласия при data-consent="required" запись не стартует, пока согласие не выдано
В демо-проекте записей нет публичное демо не записывает посетителей — это не поломка
Запись открывалась, а теперь «Запись недоступна» истёк срок хранения по тарифу