Экспериментируем с задержкой первого ввода в отчете Chrome UX

Цель отчета об опыте пользователей Chrome — помочь веб-сообществу понять распределение и эволюцию реальной производительности пользователей. На сегодняшний день наше внимание уделялось показателям отрисовки и загрузки страниц, таким как First Contentful Paint (FCP) и Onload (OL), которые помогли нам понять, как веб-сайты визуально работают для пользователей. Начиная с выпуска за июнь 2018 года, мы экспериментируем с новой ориентированной на пользователя метрикой, которая фокусируется на интерактивности веб-страниц: первая задержка ввода (FID). Этот новый показатель позволит нам лучше понять, насколько веб-сайты реагируют на действия пользователя.

FID недавно стал доступен в Chrome в качестве пробной версии , что означает, что веб-сайты могут экспериментировать с этой новой функцией веб-платформы. Аналогичным образом, FID будет доступен в отчете Chrome UX в качестве экспериментальной метрики, что означает, что он будет доступен на протяжении всего периода первоначальной пробной версии в отдельном «экспериментальном» пространстве имен.

Как измеряется FID

Так что же такое FID? Вот как это определено в сообщении блога с объявлением о первой входной задержке :

Задержка первого ввода (FID) измеряет время с момента, когда пользователь впервые взаимодействует с вашим сайтом (т. е. когда он нажимает ссылку, нажимает кнопку или использует собственный элемент управления на основе JavaScript) до момента, когда браузер фактически может реагировать на это взаимодействие.

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

Это все равно, что измерить время от звонка в дверь до открытия двери. Если это занимает много времени, причин может быть много. Например, возможно, человек находится далеко от двери или не может двигаться быстро. Аналогично, веб-страницы могут быть заняты другой работой или устройство пользователя может работать медленно.

Исследование FID в отчете Chrome UX

Имея за месяц данные FID из миллионов стран происхождения, уже можно обнаружить множество интересных идей. Давайте рассмотрим несколько запросов, демонстрирующих, как извлечь эту информацию из отчета Chrome UX Report на BigQuery.

Начнем с запроса процента быстрого FID для разработчиков.google.com . Мы можем определить быстрый опыт как тот, в котором FID составляет менее 100 мс. Согласно рекомендациям RAIL , если задержка составляет 100 мс или больше, для пользователя она должна ощущаться мгновенно.

SELECT
  ROUND(SUM(IF(fid.start < 100, fid.density, 0)), 4) AS fast_fid
FROM
  `chrome-ux-report.all.201806`,
  UNNEST(experimental.first_input_delay.histogram.bin) AS fid
WHERE
  origin = 'https://developers.google.com'

Результаты показывают, что 95% переживаний FID такого происхождения воспринимаются как мгновенные. Это кажется очень хорошим, но как это соотносится со всеми источниками в наборе данных?

SELECT
  ROUND(SUM(IF(fid.start < 100, fid.density, 0)) / SUM(fid.density), 4) AS fast_fid
FROM
  `chrome-ux-report.all.201806`,
  UNNEST(experimental.first_input_delay.histogram.bin) AS fid

Результаты этого запроса показывают, что 84% событий FID составляют менее 100 мс. Таким образом, сайт development.google.com выше среднего.

Далее давайте попробуем разрезать эти данные и посмотреть, есть ли разница между процентом быстрого FID на настольных компьютерах и мобильных устройствах. Одна из гипотез заключается в том, что мобильные устройства имеют более медленные значения FID, возможно, из-за более медленного оборудования по сравнению с настольными компьютерами. Если процессор менее мощный, он может быть более загружен в течение более длительного времени и привести к замедлению работы FID.

SELECT
  form_factor.name AS form_factor,
  ROUND(SUM(IF(fid.start < 100, fid.density, 0)) / SUM(fid.density), 4) AS fast_fid
FROM
  `chrome-ux-report.all.201806`,
  UNNEST(experimental.first_input_delay.histogram.bin) AS fid
GROUP BY
  form_factor
форм-фактор fast_fid
рабочий стол 96,02%
телефон 79,90%
планшет 76,48%

Результаты подтверждают нашу гипотезу. Настольные компьютеры имеют более высокую совокупную плотность быстрого FID, чем форм-факторы телефонов и планшетов. Чтобы понять, почему существуют эти различия, например, в производительности процессора, потребуется A/B-тестирование, выходящее за рамки отчета Chrome UX.

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

Пример 1: http://secretlycanadian.com.

Диафильм WebPageTest с сайта secretlycanadian.com

Это происхождение имеет 98% событий FID менее 100 мс. Как они это делают? Анализируя, как она построена в WebPageTest , мы видим, что это довольно тяжелая страница WordPress, но она имеет 168 КБ JavaScript, который выполняется примерно за 500 мс на нашей лабораторной машине. По данным HTTP Archive , это не очень-то похоже на JavaScript, который помещает эту страницу в 28-й процентиль.

Водопад AWebPageTest на secretlycanadian.com

Розовая полоса, охватывающая 2,7–3,0 секунды, — это этап анализа HTML . В это время страница не является интерактивной и выглядит визуально неполной (см. «3.0s» в диафильме выше). После этого любые длительные задачи, которые необходимо обработать, разбиваются, чтобы основной поток оставался в состоянии покоя. Розовые линии в строке 11 показывают, как работа JavaScript распределяется быстрыми порциями.

Пример 2: https://www.wtfast.com .

Диафильм WebPageTest сайта wtfast.com

Этот источник имеет 96% мгновенных событий FID. Он загружает 267 КБ JavaScript (38-й процентиль в HTTP-архиве) и обрабатывает его в течение 900 мс на лабораторной машине. Диафильм показывает, что на прорисовку фона странице уходит около 5 секунд, а на прорисовку содержимого — еще около 2 секунд.

Водопад WebPageTest на wtfast.com

Что самое интересное в результатах, так это то, что ничего интерактивного даже не видно, пока основной поток занят от 3 до 5 секунд. На самом деле медлительность FCP этой страницы улучшает FID . Это хороший пример важности использования множества показателей для представления пользовательского опыта.

Начать изучение

Вы можете узнать больше о FID в выпуске «Состояние Интернета» на этой неделе:

Наличие FID в отчете Chrome UX позволяет нам установить базовый уровень интерактивности. Используя эту базовую линию, мы можем наблюдать ее изменения в будущих выпусках или сравнивать отдельные источники. Если вы хотите начать сбор FID при полевых измерениях на вашем собственном объекте, зарегистрируйтесь на пробную версию Origin, перейдя на bit.ly/event-timing-ot и выберите функцию «Время событий». И, конечно же, начните изучать набор данных, чтобы получить интересную информацию о состоянии интерактивности в Интернете. Это все еще экспериментальный показатель, поэтому оставьте свой отзыв и поделитесь своим анализом в группе обсуждения Chrome UX Report или @ChromeUXReport в Твиттере.