GA4 Hacks

現役データアナリスト2名がGA4に関するナレッジを発信するブログです。

【GA4】ABテストでのデータをBigQueryで抽出してみた

こんにちは。
今回はGA4でABテストを実施した際にBigQueryでクエリを作成したので共有します。
 

前提

2023年9月30日にGoogleOptimizeは終了してしまうためサーバーでのABテストを実施しています。

Google Optimize Sunset - Optimize Resource Hub

ep.keyとep.value.string_valueにABテストを設定しています。

ABテストでのセッションを取得

--------------------------------------------------------------------------------------------------

--GA4でセッションを取得
with hit_tbl as(
  select
    date(timestamp_micros(event_timestamp), 'Asia/Tokyo') AS hit_date
    ,concat(user_pseudo_id, cast*1 as session_id
    ,(select value.string_value from unnest(event_params) where key = 'page_location') as page_location
    ,ep.value.string_value
    ,ep.key as event_param_key
  from
    `analytics_12345678.events_*`
  where
    _TABLE_SUFFIX between 'YYYYMMDD' and 'YYYYMMDD'
 )

 

--ABテストをしたセッションを抽出する
,abtest_tbl as (
 select
   session_id
   ,max(case when event_param_key = 'ABtest' then 1 else 0 end)as abtest_flg --ep.keyにABテストを設定
   ,max(case when string_value = 'ABtest_a' then 1 else 0 end)as a_flg
   ,max(case when string_value = 'ABtest_a' then 1 else 0 end)as a_flg
 from
   hits_tbl
 group by 1
)

 

--ABテストをしたセッションに絞り込む
,session_tbl as (
  select
    hits.session_id
   ,a_flg
   ,b_flg
   ,page_location
  from
   hits_tbl
    inner join (
       select
         session_id
         ,a_flg
         ,b_flg
       from
         abtest_tbl
       where
         abtest_flg =1
    )as ss
on hits.session_id = ss.session_id
)

--------------------------------------------------------------------------------------------------

このあとにそれぞれ抽出したいセッションやページを設定し、抽出できれば完了です。

*1:select value.int_value from unnest(event_params) where key = 'ga_session_id') as string