BigQuery での CrUX

BigQuery での CrUX データの構造について学習します。

はじめに

Chrome UX レポート(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
  • first_input
    • delay
  • layout_instability
    • cumulative_layout_shift
  • interaction_to_next_paint
  • 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 出所 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 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
有効な接続タイプ別のトラフィックの割合
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 という列があります。

試験運用版データセット

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

country

experimental.country データセットには、country_CC データセットの集計データが含まれており、データセットの日付を示す yyyymm 列が追加されています。スキーマは、日付列と country_code 列が追加された以外は生テーブルと同じで、月別テーブルを結合せずに国レベルの時系列比較クエリを実行できます。

global

experimental.global データセットには、all データセットの集計データが含まれており、データセットの日付を示す yyyymm 列が追加されています。スキーマは元テーブルと同じで、日付が追加されているため、月ごとのテーブルを結合せずに経時的な比較クエリを実行できます。