0
GA4のBigQueryにエクスポートしたデータのevent値の格納カラムがイベントによって違う
2023-01-04

GA4のデータをBigQueryにエクスポートして、DataformでゴニョゴニョしてからLookerStudioで可視化するということをやってた

そもそもGA4のデータはevent_paramsがREPEATEDなのでLookerStudioなどで可視化する場合はひと手間入れてあげるほうが使いやすい

ということでevent_paramsをフラットにして各イベントのキーをカラムとして扱うようにしてた

下記を参考にとりあえずはイベントの名前(event_params.key)は決め打ちで進めた

Googleアナリティクス4のBigQueryエクスポート仕様 – marketechlabo

イメージ

  • before

alt

  • after

alt

実際のSQLはこんな感じ(一部抜粋)

SELECT
  event_date,
  event_timestamp,
  event_name,
  (SELECT e.value.int_value FROM UNNEST(event_params) e WHERE e.key = 'ga_session_id' ) e_ga_session_id,
  (SELECT e.value.int_value FROM UNNEST(event_params) e WHERE e.key = 'ga_session_number' ) e_ga_session_number,
  (SELECT e.value.string_value FROM UNNEST(event_params) e WHERE e.key = 'session_engaged' ) e_session_engaged,
  (SELECT e.value.string_value FROM UNNEST(event_params) e WHERE e.key = 'page_title' ) e_page_title
FROM `project.dataset.events_20230103`

各種valueはevent_params.value.string_value, event_params.value.int_value… といったようにevent_params.keyによって値の型が異なるのでどのカラムにデータが格納されるかが変わる

しかし、いくつか確認してみたところsession_engagedの場合、event_nameの値によって格納されるカラム(int_value,string_value)が違うようだった

alt

  • SQL
SELECT
  event_date,
  event_timestamp,
  event_name,
  event.key,
  event.value
FROM
  `project.dataset.events_20230103`,
  UNNEST(event_params) AS event
WHERE
  AND event.key = 'session_engaged'

なんと…

迷った末いったん実際のSQLはsession_engagementのみ次のような書き方でお茶を濁した

(SELECT COALESCE(e.value.string_value, SAFE_CAST(e.value.int_value AS STRING)) FROM UNNEST(event_params) e WHERE e.key = 'session_engaged' ) e_session_engaged

とりあえず統一して扱えるようにはなった

0

Profile

swfz
swfz
日々学んだことを残していく
Today I Learned
コード片置き場

Account

RSS

Powered by Pixela
© 2024. swfz