🐙

【データ分析】BigQueryにおけるGA4 event_paramsの展開とUNNESTによる分析

2024/04/07に公開

はじめに

GA4をBigQueryにExport設定して、BigQuery上でGA4データを分析する際に、よくつまずくのが、GA4のevent_paramsの解析の仕方。今回は、こちらに関してまとめる。

event_paramsとは?

GA4のイベントは、特定のユーザーの行動やサイト、アプリの状態変化を記録する。GA4では、イベントのトラッキングと分析にevent_nameとevent_paramsの2つの主要な要素を使用する。

event_name

  • 文字列で、特定のイベントを一意に識別する。これはイベントの種類を表し、例えば**page_viewpurchasesign_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 google
page_referrer https://www.google.com
<parameters...> <values...>

よく設定されるevent_params項目

  1. page_location(key): ユーザーが訪れたページのURL。
  2. page_referrer(key): ユーザーが前に訪れたページのURL。
  3. event_category(key): イベントのカテゴリ。UA時代のパラメーター
  4. event_label(key): イベントのラベル。UA時代のパラメーター
  5. value(value): イベントに関連する数値(例:購入金額)。

ちなみに、GA4では、Universal Analytics(UA)時代の**event_categoryevent_label**といったパラメータは標準では使用されず、任意で設定することが可能になっている。

event_paramsvalue の4つの異なるタイプ(string, int, float, double)

さらにややこしいのが、event_paramsvalueには、実際には4つの異なるタイプがある:string_valueint_valuefloat_valuedouble_value

これらはイベントのコンテキストに応じて異なる種類のデータを格納するために使われる。

string_value

  • テキスト情報を格納。一番よく使われる。
  • ページのURL、ユーザーが実行したアクションの種類、製品名、カテゴリ名など。たとえば、ユーザーがどのボタンをクリックしたか、どの製品を閲覧したかなどの情報が含まれる。

int_value

  • 整数を格納。数が大きくない特定のカウントやIDなど、小数点を含まない数値データに適している。
  • 具体的なケース: ページビューの数、あるイベントが発生した回数、製品IDやカテゴリIDなど

float_value

  • 浮動小数点数を格納。小数点を含む数値や、非常に大きいまたは小さい数値を扱う場合に適している。
  • 具体的なケース: 製品のレビュースコアやユーザー評価、ある行動の平均時間(秒)、または特定のイベントに関連する割引率など。

double_value

  • 浮動小数点数を格納するが、**float_value**よりも大きな範囲と精度を持つ。より精密な計算や、より大きい範囲の数値を必要とする場合に使用される。
  • 具体的なケース: 金額や距離、時間など、より高い精度が要求される数値データに使用される。たとえば、高価な商品の価格や、ユーザーがアプリを使用した総時間(ミリ秒単位)、長い距離(メートル単位)など。

event_paramsを送る際のvalueタイプは自動推論される。

GA4イベントを送信する際に、gtag.jsでは値のタイプを

続きはこちらで記載しています。
https://kazulog.fun/dev/unraveling-ga4-event-params-in-bigquery/

Discussion