Объект INPMetric является одной из ключевых структур данных в библиотеке Web Vitals, используемой для измерения показателя Interaction to Next Paint (INP) — метрики, отражающей отзывчивость страницы на пользовательские взаимодействия. INP оценивает, сколько времени проходит между взаимодействием пользователя с интерфейсом (клик, нажатие клавиши, касание) и моментом, когда браузер визуально обновляет страницу.
Объект INPMetric представляет собой JavaScript-объект с фиксированным набором полей, каждое из которых имеет строго определённый тип и предназначение.
value
numberrating
Тип:
'good' | 'needs-improvement' | 'poor'
Описание: Категория качества взаимодействия, основанная на пороговых значениях INP:
'good' — значение меньше 200 мс'needs-improvement' — 200–500 мс'poor' — больше 500 мсИспользование: Позволяет быстро классифицировать UX страницы для аналитических панелей и отчетов.
delta
numberentries
Тип:
Array
Описание: Массив объектов
InteractionEntry, описывающих каждое отдельное
пользовательское взаимодействие, участвовавшее в вычислении
INP.
Структура InteractionEntry:
interface InteractionEntry {
name: string; // Тип события: 'click', 'keydown', 'pointerdown' и др.
startTime: number; // Время начала взаимодействия относительно загрузки страницы (ms)
processingEnd: number; // Время окончания обработки события (ms)
duration: number; // Длительность обработки события (ms)
}Примечание: Поле entries позволяет
анализировать, какие события наиболее влияют на задержку
взаимодействия.
id
stringname
string'INP'. Это поле упрощает интеграцию с инструментами
визуализации и аналитики, где обрабатываются несколько Web Vitals
одновременно.isFinal
booleanisFinal = true сигнализирует, что больше изменений не
будет, и значение можно сохранять для отчетности.deltaMode
Тип: number
Описание: Определяет единицы измерения delta по аналогии с Performance API:
0 — миллисекунды1 — секундыИспользование: Позволяет корректно
интерпретировать delta при обмене данными между разными
системами мониторинга.