Chrome ユーザー エクスペリエンス レポートでの初回入力遅延に関するテスト

Chrome ユーザー エクスペリエンス レポートの目的は、実際のユーザー パフォーマンスの分布と変化をウェブ コミュニティが把握できるようにすることです。これまで、Google はペイントとページ読み込みの指標(First Contentful Paint(FCP)や Onload(OL)など)に重点を置いてきました。これらの指標は、ウェブサイトがユーザーに対して視覚的にどのように機能しているかを把握するのに役立ちます。2018 年 6 月のリリースより、ウェブページのインタラクティビティに焦点を当てた新しいユーザー中心の指標である初回入力遅延(FID)をテストしています。この新しい指標により、ユーザー入力に対するウェブサイトの応答性をより深く理解できるようになります。

FID は最近、Chrome でオリジン トライアルとして利用可能になりました。つまり、ウェブサイトはこの新しいウェブ プラットフォーム機能を試験運用できます。同様に、FID は Chrome UX レポートで試験運用版指標として利用できます。つまり、オリジン トライアルの期間中は、別の「試験運用版」名前空間で利用できます。

FID の測定方法

FID とは何でしょうか?これは、First Input Delay の通知のブログ投稿で次のように定義されています。

初回入力遅延(FID)は、ユーザーが最初にサイトを操作したとき(リンクをクリックしたとき、ボタンをタップしたとき、カスタムの JavaScript ベースのコントロールを使用したとき)からブラウザがその操作に対して実際に応答するまでの時間です。

ビジー状態のメインスレッドがユーザー操作への応答を遅らせる仕組みを示すアニメーション。

ドアホンを鳴らしてからドアを開けるまでの時間を測定するようなものです。時間がかかる場合は、さまざまな原因が考えられます。たとえば、ドアから離れている場合や、すぐに動けない場合があります。同様に、ウェブページが他の処理でビジー状態になっている場合や、ユーザーのデバイスが遅い場合もあります。

Chrome UX レポートで FID を調べる

数百万ものオリジンから 1 か月分の FID データが収集されているため、すでに多くの興味深い分析情報を確認できます。BigQuery の Chrome UX レポートからこれらの分析情報を抽出する方法を示すクエリをいくつか見てみましょう。

まず、developers.google.com の FID が短いエクスペリエンスの割合をクエリします。短いエクスペリエンスとは、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'

結果から、このオリジンでの FID エクスペリエンスの 95% が瞬時に認識されていることがわかります。これは非常に優れた結果ですが、データセット内のすべてのオリジンと比較するとどうでしょうか。

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

このクエリの結果は、FID エクスペリエンスの 84% が 100 ミリ秒未満であることを示しています。つまり、developers.google.com は平均を上回っています。

次に、このデータをスライスして、パソコンとモバイルで高速 FID の割合に違いがあるかどうかを確認します。1 つの仮説として、モバイル デバイスの FID 値が遅いことが考えられます。これは、デスクトップ パソコンと比較してハードウェアが遅いことが原因である可能性があります。CPU の処理能力が低い場合、CPU が長時間ビジー状態になり、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
form_factor fast_fid
デスクトップ 96.02%
電話 79.90%
タブレット 76.48%

結果は仮説を裏付けています。パソコンでは、スマートフォンやタブレット フォーム ファクタよりも、高速な FID エクスペリエンスの累積密度が高くなります。これらの違い(CPU パフォーマンスなど)の理由を把握するには、Chrome UX レポートの範囲外の A/B テストが必要になります。

オリジンの FID が速いかどうかを確認する方法を確認したので、パフォーマンスが非常に優れたオリジンをいくつか見てみましょう。

例 1: http://secretlycanadian.com

secretlycanadian.com の WebPageTest フィルムストリップ

このオリジンでは、FID エクスペリエンスの 98% が 100 ミリ秒未満です。どうやって実現しているのでしょうか。WebPageTest でこのページの作成方法を分析すると、画像が多い WordPress ページであることがわかります。また、168 KB の JavaScript が含まれており、ラボマシンで約 500 ミリ秒で実行されます。HTTP Archive によると、これは JavaScript があまり使用されていないページで、28 パーセンタイルになります。

secretlycanadian.com の AWebPageTest ウォーターフォール

2.7 ~ 3.0 秒のピンク色のバーが [HTML の解析] フェーズです。この間、ページはインタラクティブではなく、視覚的には不完全な状態になります(上のフィルムストリップの「3.0 秒」を参照)。その後、処理が必要な長いタスクは分割され、メインスレッドが休止状態を維持します。行 11 のピンクの線は、JavaScript 処理が短時間でバーストする様子を示しています。

例 2: https://www.wtfast.com

wtfast.com の WebPageTest フィルムストリップ

このオリジンでは、96% の FID が即時エクスペリエンスです。267 KB の JavaScript(HTTP Archive の 38 パーセンタイル)を読み込み、ラボマシンで 900 ms 処理します。フィルムストリップは、ページが背景の描画に約 5 秒、コンテンツの描画にさらに約 2 秒かかっていることを示しています。

wtfast.com の WebPageTest ウォーターフォール

この結果で最も興味深いのは、メインスレッドが 3~5 秒間ビジー状態になっている間、インタラクティブなものが何も表示されないことです。FID が改善されたのは、このページの FCP が遅いためです。これは、ユーザー エクスペリエンスを表すために多くの指標を使用することの重要性を示す良い例です。

探索を始める

FID について詳しくは、今週の「The State of the Web」のエピソードをご覧ください。

Chrome UX レポートで FID を利用できるようになったことで、インタラクティビティ エクスペリエンスのベースラインを設定できるようになりました。このベースラインを使用すると、今後のリリースでの変化を観察したり、個々のオリジンをベンチマークしたりできます。ご自身のサイトのフィールド測定で FID の収集を開始するには、bit.ly/event-timing-ot にアクセスしてイベント タイミング機能を選択し、オリジン トライアルに登録します。もちろん、データセットの探索を開始して、ウェブ上のインタラクティビティの状態に関する興味深い分析情報を確認しましょう。これはまだ試験運用中の指標であるため、Chrome UX レポートのディスカッション グループまたは Twitter の @ChromeUXReport でフィードバックや分析を共有してください。