【データ分析】BigQueryにおけるGA4 event_paramsの展開とUNNESTによる分析
はじめに
GA4をBigQueryにExport設定して、BigQuery上でGA4データを分析する際に、よくつまずくのが、GA4のevent_paramsの解析の仕方。今回は、こちらに関してまとめる。
event_paramsとは?
GA4のイベントは、特定のユーザーの行動やサイト、アプリの状態変化を記録する。GA4では、イベントのトラッキングと分析にevent_nameとevent_paramsの2つの主要な要素を使用する。
event_name
-
文字列で、特定のイベントを一意に識別する。これはイベントの種類を表し、例えば**
page_view、purchase、sign_up**などがあり、ユーザーで設定可能。
event_params
- イベントの各パラメータを格納した繰り返しレコード。
BigQueryにエクスポートされたGA4のイベントテーブルのフィールド(一部)。
| フィールド(抜粋) | 型 | メモ |
|---|---|---|
| event_date | STRING | イベントが記録された日付 |
| event_name | STRING | イベント名(session_start やpage_viewなど) |
| event_params | RECORD | イベントの各パラメータを格納した繰り返しレコード。 |
event_params列には配列が格納されている
event_paramsはイベントに関連する追加情報を格納するレコード(またはオブジェクト)の配列。各レコードはキー(key)と値(value)のペアを持ち、イベントのコンテキストまたは追加の詳細を提供する。
具体的には、下記のように1つのevent_nameに対して、複数のevent_paramsがkey, valueのペアで格納されている。
{
"event_name":"session_start",
"event_params":[
{"key":"page_referrer", "string_value":"https://www.bing.com/"},
{"key":"ga_session_id", "int_value":1670474519},
{"key":"page_location", "string_value":"https://exammple.com/page1"},
{"key":"page_title", "string_value":"page1"},
・・・(省略)
]
}
BigQueryにエクスポートされたテーブルでは下記のように表示される。
| event_date | event_timestamp | event_name | event_params.key | event_params_value.string_value |
|---|---|---|---|---|
| 20220222 | 1643673600483790 | page_view | page_location | https://example.com |
| page_title | Home | |||
| medium | referral | |||
| source | ||||
| page_referrer | https://www.google.com | |||
| <parameters...> | <values...> |
よく設定されるevent_params項目
- page_location(key): ユーザーが訪れたページのURL。
- page_referrer(key): ユーザーが前に訪れたページのURL。
- event_category(key): イベントのカテゴリ。UA時代のパラメーター
- event_label(key): イベントのラベル。UA時代のパラメーター
- value(value): イベントに関連する数値(例:購入金額)。
ちなみに、GA4では、Universal Analytics(UA)時代の**event_categoryやevent_label**といったパラメータは標準では使用されず、任意で設定することが可能になっている。
event_paramsのvalue の4つの異なるタイプ(string, int, float, double)
さらにややこしいのが、event_paramsのvalueには、実際には4つの異なるタイプがある:string_value、int_value、float_value、double_value。
これらはイベントのコンテキストに応じて異なる種類のデータを格納するために使われる。
string_value
- テキスト情報を格納。一番よく使われる。
- ページのURL、ユーザーが実行したアクションの種類、製品名、カテゴリ名など。たとえば、ユーザーがどのボタンをクリックしたか、どの製品を閲覧したかなどの情報が含まれる。
int_value
- 整数を格納。数が大きくない特定のカウントやIDなど、小数点を含まない数値データに適している。
- 具体的なケース: ページビューの数、あるイベントが発生した回数、製品IDやカテゴリIDなど
float_value
- 浮動小数点数を格納。小数点を含む数値や、非常に大きいまたは小さい数値を扱う場合に適している。
- 具体的なケース: 製品のレビュースコアやユーザー評価、ある行動の平均時間(秒)、または特定のイベントに関連する割引率など。
double_value
- 浮動小数点数を格納するが、**
float_value**よりも大きな範囲と精度を持つ。より精密な計算や、より大きい範囲の数値を必要とする場合に使用される。 - 具体的なケース: 金額や距離、時間など、より高い精度が要求される数値データに使用される。たとえば、高価な商品の価格や、ユーザーがアプリを使用した総時間(ミリ秒単位)、長い距離(メートル単位)など。

event_paramsを送る際のvalueタイプは自動推論される。
GA4イベントを送信する際に、gtag.jsでは値のタイプを
続きはこちらで記載しています。
Discussion