page_visibility_changed
Что означает
Позволяет отличать реальное активное время от вкладки, которая просто висела в фоне.
Источник
Коллектор SDK runtime в sdk/src/index.js.
Текущий статус реализации: отправляется текущим sdk/src/index.js.
Когда отправляется
Вкладка стала visible/hidden/frozen или страница уходит в background.
Зачем нужно
- Помогает отлаживать путь пользователя без сбора персональных данных.
- Сохраняет сопоставимость события между версиями SDK через
protocol_versionи mapping context. - Поддерживает live QA в окнах дашборда, перечисленных ниже.
Поля payload
Поля контракта из Excel: visibility_state, previous_visibility_state, visible_duration_ms_delta, hidden_duration_ms_delta.
Поля mapping/context: page_code, page_instance_id.
Общие поля envelope всегда включают event_id, event_type, event_ts, event_index, session_id, tab_id, page_instance_id, page_code, block_code, element_code, group_code, mapping_status и mapping_confidence.
Пример payload
{
"event_type": "page_visibility_changed",
"protocol_version": "sf.events.v1",
"event_id": "evt_example",
"session_id": "sess_example",
"page_code": "catalog_page",
"block_code": "unknown",
"element_code": "unknown",
"mapping_status": "mapped",
"payload": {
"visibility_state": "hidden"
}
}Запрещенные данные
- Сырые значения форм, поля, textarea/select, email, телефон, имя, адрес и комментарии.
- Сырые query string URL, cookies, значения localStorage/sessionStorage, innerHTML/outerHTML, полный DOM и полный текст страницы.
- Сырые координаты или поток движения указателя; разрешены только агрегаты и buckets.
Резервное поведение и ошибки
Если API недоступен — считать вкладку visible до pagehide, visibility_reliable=false.
Если опциональный mapping недоступен, оставляйте page_code, block_code, element_code или group_code как unknown; не блокируйте страницу и не добавляйте небезопасные резервные данные.
Экран дашборда
Ожидаемые окна live-debug: Страницы и маршруты, Активность и видимость.
QA также должен видеть строку в Лента сессии, если событие относится к загруженной сессии.
Использование в server-derived обработке
bot_score_updated
Использование в ML
Separates active engagement from background-tab time and improves bounce/no-activity labels.
QA-проверки checklist
- Switch the tab to background and back.
- Проверьте изменения
visibility_stateи разделение active/idle.