BigQuery での CrUX データの構造について学習します。
はじめに
Chrome UX レポート(CrUX)の元データは、Google Cloud Platform(GCP)でホストされている BigQuery のデータベースで入手できます。
BigQuery 上の CrUX では、トレンドの分析、ウェブ テクノロジーの比較、ベンチマーク ドメインの比較など、2017 年以降の完全なデータセットに直接クエリを実行できます。
データは月次リリースといくつかのサマリー テーブルで構成されており、データを簡単にクエリできるようになっています。詳細については後述します。
BigQuery データは CrUX ダッシュボードの基礎となるため、SQL クエリを記述せずにこのデータを可視化できます。
GCP でデータセットにアクセスする
BigQuery を使用するには、GCP プロジェクトと SQL の基本的な知識が必要です。BigQuery の CrUX データセットは、無料枠の上限まで無料でアクセスして探索できます。無料枠は毎月更新され、BigQuery から提供されます。また、GCP の新規ユーザーは、無料枠を超えた費用をカバーする登録クレジットの対象となる場合があります。GCP プロジェクトにはクレジット カードを用意する必要があります。詳しくは、クレジット カードを入力する必要があるのはなぜですか?をご覧ください。
BigQuery を初めて使用する場合は、次の手順でプロジェクトを設定します。
- Google Cloud Platform に移動します。
- [プロジェクトを作成] をクリックします。
- 新しいプロジェクトに「My Chrome UX Report」のような名前を付けて [作成] をクリックします。
- お支払い情報の入力を求められたら、お支払い情報を入力します。
- [BigQuery の CrUX データセット] に移動します。
これで、データセットに対してクエリを実行する準備が整いました。
プロジェクトの編成
BigQuery 上の CrUX データは、翌月の第 2 火曜日にリリースされます。毎月は、chrome-ux-report.all
の新しいテーブルとしてリリースされます。月ごとの統計情報の概要を示すマテリアライズド テーブルも数多くあります。
- chrome-ux-report
詳細なテーブル スキーマ
元テーブル
各国の元テーブルと all
データセットのスキーマは次のとおりです。
origin
effective_connection_type
form_factor
first_paint
first_contentful_paint
largest_contentful_paint
dom_content_loaded
onload
first_input
delay
layout_instability
- cloudbuild_layout_shift
interaction_to_next_paint
experimental
permission
notifications
time_to_first_byte
popularity
マテリアライズド テーブルのスキーマ
マテリアライズド テーブルにより、多くの主要ディメンションによるサマリー データに簡単にアクセスできます。ヒストグラムは提供されず、パフォーマンス データはパフォーマンス評価と 75 パーセンタイル値によって小数に集計されます。metrics_summary
テーブルから一連のサンプル行を例として以下に示します。
yyyymm | 出所 | fast_lcp | avg_lcp | slow_lcp | p75_lcp |
---|---|---|---|---|---|
202204 | https://example.com | 0.9056 | 0.0635 | 0.0301 | 1600 |
202203 | https://example.com | 0.9209 | 0.052 | 0.0274 | 1,400 |
202202 | https://example.com | 0.9169 | 0.0545 | 0.0284 | 1500 |
202201 | https://example.com | 0.9072 | 0.0626 | 0.0298 | 1500 |
202204 年のデータセットでは、https://example.com
の実際のユーザー エクスペリエンスの 90.56% が良好な LCP の基準を満たしており、75 パーセンタイルの粗い LCP 値は 1,600 ms であったことがわかります。前月よりも少し遅くなっています。
次の 4 つのマテリアライズド テーブルが用意されています。
metrics_summary
- 月別およびオリジン別の主要指標
device_summary
- 月、オリジン、デバイスタイプ別の主要指標
country_summary
- 月、オリジン、デバイスタイプ、国別の主要指標
origin_summary
- データセットに含まれるすべてのオリジンのリスト
metrics_summary
metrics_summary
テーブルには、各オリジンと各月次データセットの統計情報の概要が含まれています。
yyyymm
- データ収集期間の月
origin
- サイト元の URL
rank
- 大まかな人気ランキング(2021 年 3 月時点)
[small|medium|large]_cls
- CLS しきい値別のトラフィックの割合
[fast|avg|slow]_<metric>
- パフォーマンスしきい値別のトラフィックの割合
p75_<metric>
- パフォーマンス指標の 75 パーセンタイル値(ミリ秒)
notification_permission_[accept|deny|ignore|dismiss]
- 通知権限の動作の割合
[desktop|phone|tablet]Density
- トラフィックに占めるフォーム ファクタ別の割合
[_4G|_3G|_2G|slow2G|offline]Density
- 有効な接続タイプ別のトラフィックの割合
device_summary
device_summary
テーブルには、月、オリジン、国、デバイス別に集計された統計情報が含まれています。metrics_summary
列以外にも、以下があります。
device
- デバイスのフォーム ファクタ
country_summary
country_summary
テーブルには、月、オリジン、国、デバイス別に集計された統計情報が含まれています。metrics_summary
列以外にも、以下があります。
origin_summary
origin_summary
テーブルには、CrUX データセットに含まれるすべてのオリジンのリストが含まれています。このテーブルは、データセット内の最新のオリジンリストで毎月更新され、origin
という列があります。
試験運用版データセット
試験運用版データセットのテーブルは、デフォルトの YYYYMM
テーブルとまったく同じコピーですが、パーティショニングやクラスタリングなどの新しい高度な BigQuery 機能を利用して、クエリをより迅速かつシンプルに低コストで記述できます。
country
experimental.country
データセットには、country_CC
データセットの集計データが含まれており、データセットの日付を表す yyyymm
列が追加されています。スキーマは生テーブルと同じですが、日付列と country_code
列が追加されています。これにより、月別のテーブルを結合することなく、国レベルの時系列比較クエリを実行できます。
global
experimental.global
データセットには、all
データセットの集計データが含まれ、データセットの日付を示す yyyymm
列が追加されています。スキーマは元テーブルと同じですが、日付が追加されているため、月別のテーブルを結合せずに時間の経過に伴うクエリを実行できます。