created: 2022-09-10T09:21:28.156Z

GA4 (Google Analytics 4) から BigQuery に連携されたデータを簡単にクエリするためのビュー定義

Google Analytics 4 から BigQuery 連携が簡単になった。コンソールでちょこちょこやるだけで GA4 のデータが毎日 BigQuery に連携されるようになっている。

今回は GA4 のデータを SQL でクエリしやすいように加工したビューをメモっておく。

  • 連携されるデータの構造がややこしかったのでフラットにする
  • カラムがたくさんあってよく使うやつだけに絞ったテーブルが欲しかった

定義

CREATE OR REPLACE VIEW tmp.v AS (
  SELECT
    _TABLE_SUFFIX TABLE_SUFFIX,
    event_name,
    timestamp_micros(event_timestamp) event_timestamp,
    user_pseudo_id,
    -- event_params
    bqutil.fn.get_value("ga_session_id", event_params).int_value ga_session_id,
    bqutil.fn.get_value("ga_session_number", event_params).int_value ga_session_number,
    bqutil.fn.get_value("page_title", event_params).string_value page_title,
    bqutil.fn.get_value("page_location", event_params).string_value page_location,
    bqutil.fn.get_value("page_referrer", event_params).string_value page_referrer,
    bqutil.fn.get_value("ignore_referrer", event_params).string_value ignore_referrer,
    -- traffic_source
    traffic_source.name traffic_source_name,
    traffic_source.medium traffic_source_medium,
    traffic_source.source traffic_source_source,
    -- device
    device.category device_category,
    device.mobile_model_name device_mobile_model_name,
    device.operating_system_version device_operating_system_version,
    device.web_info.browser device_web_info_browser,
    device.web_info.browser_version device_web_info_browser_version
  FROM
    `proj-123456.analytics_987654321.events_*`
  WHERE
    event_name = "page_view"
);
  • TABLE_SUFFIX = "20220101" とかやるとちゃんとスキャン範囲を絞ってくれる

参考

プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに
[ad] プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに
Joe Celko, ミック (Kindle版)