BigQuery の CrUX

BigQuery で CrUX データがどのように構造化されているかについて説明します。

はじめに

Chrome ユーザー エクスペリエンス レポート(CrUX)の基盤となる生データは、Google Cloud でホストされているデータベースである BigQuery で利用できます。

BigQuery の CrUX を使用すると、2017 年まで遡ってデータセット全体を直接クエリできます。たとえば、トレンドの分析、ウェブ テクノロジーの比較、ドメインのベンチマークなどを行うことができます。

データは月ごとのリリースで構造化されています。また、データをクエリするための迅速なアクセスを提供する概要テーブルも多数用意されています。

BigQuery のデータは CrUX ダッシュボードの基盤であり、SQL クエリを記述せずにこのデータを可視化できます。

データセットを活用する

BigQuery を使用するには、Google Cloud アカウントと SQL の基本的な知識が必要です。BigQuery の CrUX データセットは、BigQuery が毎月更新して提供する無料枠の上限まで無料でアクセスして探索できます。また、Google Cloud の新規ユーザーは、無料枠を超える費用をまかなうための登録クレジットをご利用いただける場合があります。Google Cloud プロジェクトにはクレジット カードを指定する必要があります。クレジット カードを指定する必要があるのはなぜですか?をご覧ください。

BigQuery を初めて使用する場合は、次の手順に沿ってプロジェクトを設定します。

  1. Google Cloud コンソールで [プロジェクトを作成] に移動します。
  2. 新しいプロジェクトに「My Chrome UX Report」などの名前を付けて、[作成] をクリックします。
  3. お支払い情報の入力を求められたら、情報を入力します。
  4. BigQuery の CrUX データセットに移動します。

これで、データセットのクエリを開始する準備が整いました。

プロジェクトの編成

BigQuery の CrUX データは、翌月の第 2 火曜日にリリースされます。各月は chrome-ux-report.all の新しいテーブルとしてリリースされます。また、各月の概要統計情報を提供するマテリアライズド テーブルも多数あります。

詳細なテーブル スキーマ

各国の元データテーブルと all データセットは、年と月ごとに提供されます。

元テーブル

未加工テーブルのスキーマは次のとおりです。

  • origin
  • effective_connection_type
  • form_factor
  • first_paint
  • first_contentful_paint
  • largest_contentful_paint
  • dom_content_loaded
  • onload
  • layout_instability
    • cumulative_layout_shift
  • interaction_to_next_paint
  • round_trip_time
  • navigation_types
    • navigate
    • navigate_cache
    • reload
    • restore
    • back_forward
    • back_forward_cache
    • prerender
  • experimental
    • permission
      • notifications
    • time_to_first_byte
    • popularity

マテリアライズド テーブルのスキーマ

マテリアライズド テーブルは、複数のキー ディメンションで概要データに簡単にアクセスできるようにするために提供されています。ヒストグラムは提供されず、代わりにパフォーマンス データがパフォーマンス評価と 75 パーセンタイル値によって分数に集計されます。この例では、metrics_summary テーブルの行の例を示します。

yyyymm origin 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 1400
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 ミリ秒であったことを示しています。これは、前月よりも若干遅くなっています。

次の 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>
パフォーマンスしきい値別のトラフィックの割合
[low|medium|high]_rtt
RTT しきい値別のトラフィックの割合
p75_<metric>
パフォーマンス指標の 75 パーセンタイル値(ミリ秒)
notification_permission_[accept|deny|ignore|dismiss]
通知権限の動作の割合
[desktop|phone|tablet]Density
フォーム ファクタ別のトラフィックの割合
[_4G|_3G|_2G|slow2G|offline]Density
有効な接続タイプ別のトラフィックの割合rtt ヒストグラムから計算(2025 年 2 月以降)、オフラインなし)
navigation_type_[navigate|navigate_cache|reload|restore|back_forward|back_forward_cache|prerender]
ナビゲーション タイプの割合

device_summary

device_summary テーブルには、月、参照元、国、デバイス別に集計された統計情報が含まれています。metrics_summary 列に加えて、次の列があります。

device
デバイスのフォーム ファクタ

country_summary

country_summary テーブルには、月、参照元、国、デバイス別に集計された統計情報が含まれています。metrics_summary 列に加えて、次の列があります。

country_code
2 文字の国コード
device
デバイスのフォーム ファクタ

origin_summary

origin_summary テーブルには、CrUX データセット内のすべてのオリジンのリストが含まれています。このテーブルは、データセット内のオリジンの最新のリストで毎月更新され、origin という 1 つの列があります。

試験運用版のデータセット

試験運用データセットのテーブルは、デフォルトの YYYYMM テーブルの正確なコピーですが、パーティショニングクラスタリングなどの新しい高度な BigQuery 機能を利用して、より高速でシンプルかつ低コストのクエリを作成できます。

country

experimental.country データセットには、country_CC データセットの集計データと、データセットの日付を表す yyyymm 列が含まれています。スキーマは、日付列と country_code 列が追加されている点を除いて、未加工のテーブルと同じです。これにより、月次テーブルを結合せずに、国レベルの経時比較クエリを実行できます。

global

experimental.global データセットには、all データセットの集計データと、データセットの日付を表す yyyymm 列が含まれています。スキーマは未加工のテーブルと同一で、日付が追加されています。これにより、月次テーブルを結合せずに、経時的な比較クエリを実行できます。