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

次の 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 という 1 つの列があります。

試験運用版データセット

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

country

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

global

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