GA4のBigQuery出力項目一覧（チートシート）

# GA4の出力項目一覧を作成した
GA4のデータをBigQueryに出力した場合のデータ構造は公式ページに解説があるもののわかりくいため、俯瞰しやすい一覧を作成した。スプレッドシートして公開しておくのでご活用ください。

[GA4のBigQuery出力項目一覧（Google Sheets）](https://docs.google.com/spreadsheets/d/1JNmpTtHkmBn-61_nTPMm-O2uzSPBU7PhpKvRb7Ro5Y0/edit?usp=sharing)

![ga4_list.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206394/4c54b386-5056-92a7-8b82-720be2f5c5e7.png)


# 一番重要なのに項目一覧からは読み取れない「イベントパラメータ」

GA4ではページビューもすべて「イベント」として計測される。

「イベント」として計測した情報は、evemt_paramsのなかに、Key-Value形式で格納されている。※どのようなKEYの項目があるか、Valueがどのカラム（String_valueなのかint_valueなのか）は「イベント」ごとに異なる


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206394/a89564c8-96de-85ee-816d-d10a316861ce.png)

主要なイベントには以下のようなものがある

| パラメータ               | 説明                                               |
|--------------------------|----------------------------------------------------|
| ga_session_id            | 同一ユーザの内でセッションを一意に特定するID          |
| ga_session_number        | 同一ユーザのセッション数（1の場合、初回訪問）          |
| page_title               | ページのタイトル                                   |
| page_location            | ページのURL                                        |
| page_referrer            | リファラURL（前のページのURL）                      |
| ignore_referrer          | リファラを無視するかどうかを示すフラグ                |
| medium                   | トラフィックの媒体（例: organic、CPCなど）            |
| campaign                 | キャンペーン名                                      |
| source                   | トラフィックのソース（例: Google、Newsletterなど）    |
| term                     | キャンペーンのキーワード                            |
| entrances                | ランディングページの場合に1を設定                     |
| engaged_session_event    | エンゲージしたセッションのイベントかどうか            |
| engagement_time_msec     | エンゲージメント時間（ミリ秒）                        |
| session_engaged          | セッションがエンゲージしたかどうかを示すフラグ        |
| percent_scrolled         | ページのスクロール率（パーセント）                    |
| file_extension           | ダウンロードされたファイルの拡張子                    |
| file_name                | ダウンロードされたファイルの名前                      |
| link_text                | クリックされたリンクのテキスト                        |
| link_url                 | クリックされたリンクのURL                             |
| link_classes             | クリックされたリンクのクラス属性                      |
| link_domain              | クリックされたリンクのドメイン                        |
| outbound                 | 外部リンクかどうかを示すフラグ                        |
| batch_ordering_id        | データバッチの処理順序を示すID                        |
| batch_page_id            | データバッチの処理単位を示すID                        |


イベントごとに設定されるパラメータは異なる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206394/1949b2c6-1949-04b6-5540-839d416066d9.png)


# 「イベントパラメータ」を取得するSQL

分析に使用する際には以下のようなSQLを実行して横持ちに変換すると使いやすい。網掛けの箇所がポイント。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206394/35bfcb97-e47d-8303-3971-243cf04675f2.png)



```
SELECT
    event_date
  , event_timestamp 
  , event_name
  , (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id
  , (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') AS page_location
  , (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_title') AS page_title
FROM
    `your-project-name.analytics_XXXXXXXXX.events_*`
WHERE
    _TABLE_SUFFIX  between "20240101" and  "20240531"

```

このSQLを実行すると、このように横持ちで出力できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206394/b33f307f-1314-5c13-b1e1-3273214a3cff.png)

※この話も冒頭のスプレッドシートに記載しています