BigQuery の CrUX レポートにランク マグニチュードを追加

2021 年 2 月のデータセットを皮切りに、BigQuery の CrUX レポートに試験運用版の指標を追加し、オリジンの人気度を上位 1,000 件のオリジン、トップ 10,000、トップ 100,000、上位 100 万などと判定します。

実際にどのようになっているか見てみましょう。

SELECT
  experimental.popularity.rank AS rank_magnitude,
  COUNT(DISTINCT origin) AS num_origins
FROM
  `chrome-ux-report.all.202102`
GROUP BY
  rank_magnitude
ORDER BY
  rank_magnitude
rank_magnitude num_origins
1 1,000 1,000
2 10,000 9,000
3 100,000 90,000
4 1,000,000 900,000
15 10,000,000 7,264,371

2021 年 2 月のグローバル データセットの場合、5 つのバケットがあります。予想どおり、1 行目にはランクの大きさが 1,000 のオリジンが 1,000 件あることがわかります。これは、指標で上位の 1,000 件のオリジンです。行 2 は意外に見えますが、上位 10,000 セットのオリジンは 9,000 しかありません。これは、行 1 のオリジンも上位 10,000 セットに含まれているためです。上位 10, 000 のオリジンを選択するには、クエリ時に experimental.popularity.rank <= 10000 を指定する必要があります。

データセットには国別のランクの大きさも含まれます。たとえば、次のクエリはドイツで人気のある 10, 000 のオリジンを一覧表示します。

SELECT DISTINCT origin
FROM `chrome-ux-report.country_de.202102`
WHERE experimental.popularity.rank <= 10000

新しい人気指標の可能性について触れるため、First Contentful Paint 指標(FCP)に関して、ウェブの人気セグメントの違いを見てみましょう。このクエリでは、1 秒を高速なユーザー エクスペリエンスと見なしています。

SELECT
  SUM(fcp.density)/count(distinct origin)
FROM
  `chrome-ux-report.all.202102`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  fcp.start < 1000 AND experimental.popularity.rank <= 1000

experimental.popularity.rank が 1,000 以下のオリジンでは、FCP 指標値が 1,000 ミリ秒未満のすべてのヒストグラム バケット密度を合計し、オリジンの数で除算します。つまり、最も人気のあるオリジン 1,000 の高速 FCP 読み込みの平均割合を計算します。このクエリではすべてのオリジンの重みが等しいため、これは間違いなく完全ではありません。ただし、where 句を変更して experimental.popularity.rank <= 10000 以下を指定することで、結果がランクの大きさの変更の影響を受けやすいかどうかを確認します。10, 000、100, 000 などに対して行います。

オリジンのランクの大きさ FCP が 1 秒未満での割合(オリジンの平均)
1.000 53.6%
10,000 49.6%
100,000 45.9%
1,000,000 43.2%
10,000,000 39.9%

これは、ウェブでのユーザー エクスペリエンスが高速になるほど、人気が高いことと相関関係があることを示しています。

2022 年 10 月のデータセットでは、これをさらに半分のランクのステップに分割しました。このデータセットに対して最初のクエリを再実行すると、半分のステップと、各ランクの大きさでオリジンの数が表示されます。

SELECT
  experimental.popularity.rank AS rank_magnitude,
  COUNT(DISTINCT origin) AS num_origins
FROM
  `chrome-ux-report.all.202210`
GROUP BY
  rank_magnitude
ORDER BY
  rank_magnitude
rank_magnitude num_origins
1 1,000 1,000
2 5,000 4,000
3 10,000 5,000
4 50,000 40,000
5 100,000 50,000
6 500,000 400,000
7 1,000,000 500,000
8 5,000,000 4,000,000
9 10,000,000 5,000,000
10 50,000,000 7,637,195

BigQuery での CrUX の使用について詳細を確認し、他のサンプルクエリについては CrUX クックブックをご覧ください。もしよろしければ、クエリを共有して、結果をお知らせください。