Google Analytics

Google Analytics 4: イベントパラメータをセッションスコープで集計する方法

こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。

みなさんはもうGA4使ってますか?

GA4にはユーザープロパティというユーザースコープのディメンションと、イベントパラメータというイベントスコープ(ヒットスコープ)のディメンションが存在してます。
で、セッションスコープのディメンションが今のところ存在してません。

そこで、イベントパラメータをセッションスコープで集計する方法はないかな?と考えて2通り見つけたので紹介します。

 

1. 分析ハブを使う

分析ハブの「セッションセグメント」を使えば特定のイベントパラメータが発生したセッションの分析が可能です。

セグメントの作り方はこうです。

1. 分析ハブを開いて、セグメントのとなりの「+」をクリックします。

セグメントの作成

2. そしてセッションセグメントを選びます。

セッションセグメントを作成

3. イベントパラメータを送信しているイベントを選び、パラメータと条件を指定します。
例えば、load_geoweatherイベントで送信しているイベントパラメータ「weather」の値が「Clear」に「完全一致する」という条件を選んでみました。

条件を指定

これを繰り返して、Clear(天気:晴れ)、Clouds(天気:くもり)、Rain(天気:雨) というセッションセグメントを3個作りました。

4. そして、作成したセッションセグメントを並べていけば、各イベントパラメータ値が発生したセッション毎の集計が出来ました。

セッションセグメントを並べて分析

 
ただし、この方法だとイベントパラメータの値の数だけセッションセグメントを作る必要があり、そこが難です。

また、上記3の手順でイベントパラメータからディメンションを作成してますが、分析ハブはディメンションを作成する前のデータは反映してくれません。。
というわけでディメンションは先に作っておきましょう。

GA4は急激に進化を続けてる過程なので、もしかしたらいつか「セッションパラメータ」なんて機能が爆誕してくれたら嬉しいですね。。

 

2. BigQueryを使う

さて、私が好きなのはこっちです。
BigQuery最強。

BigQueryを使って、分析ハブで作ったセッションセグメントによる修正を再現してみます。

-- まずは集計期間のデータを横持ちのフラットなレコードにする。
WITH t1 AS (
  SELECT
    event_timestamp,
    CONCAT(user_pseudo_id, CAST((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') as STRING)) AS sid,
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'weather') AS weather,
    CASE WHEN event_name = 'page_view' THEN 1
        ELSE 0 END AS page_view,
    CASE WHEN event_name = 'session_start' THEN 1
        ELSE 0 END AS session_start,
    CASE WHEN event_name = 'scroll' THEN 1
        ELSE 0 END AS scroll
  FROM
    `analytics_12345678.events_*`
  WHERE
    _TABLE_SUFFIX BETWEEN '20201029'
    AND '20201029'          
)
-- イベントパラメータweatherを持つセッションIDを抽出
,t2 AS (
  SELECT
    distinct sid,
    LAST_VALUE(weather IGNORE NULLS) OVER(PARTITION BY sid ORDER BY event_timestamp ASC) AS weather
  FROM t1
)
-- セッションID別にイベントを集計 page_view
,t3 AS (SELECT
  sid,  
  SUM(page_view) AS page_view
FROM t1
GROUP BY 1
)
-- セッションID別にイベントを集計 session_start
,t4 AS (SELECT
  sid,  
  SUM(session_start) AS session_start
FROM t1
GROUP BY 1
) 
-- セッションID別にイベントを集計 scroll
,t5 AS (SELECT
  sid,  
  SUM(scroll) AS scroll
FROM t1
GROUP BY 1
)
-- 集計
SELECT
  t2.weather,
  SUM(t3.page_view) AS page_view,
  SUM(t4.session_start) AS session_start,
  SUM(t5.scroll) AS scroll
FROM t2
  LEFT JOIN t3 on t2.sid = t3.sid
  LEFT JOIN t4 on t2.sid = t4.sid
  LEFT JOIN t5 on t2.sid = t5.sid
WHERE t2.weather IS NOT NULL
GROUP BY 1
ORDER BY 2 DESC

結果はこうなりました。

分析ハブと同じ数字が出た

縦横の向きが違うのと、イベントを端折って3個しか選んでませんがそこはスルーして下さい。
分析ハブと同じ数字が出てますね。
SQLは裏切りません。

分析ハブではイベントパラメーターからディメンションを作る前のデータはセグメントに反映出来ませんが、BigQueryならエクスポート設定をした以降の期間のデータに対して集計が可能です。

 

まとめ

今回はGA4のイベントパラメータをセッションスコープで集計する方法について説明しました。

分析ハブでセッションセグメントを作るか、BigQueryで同等のロジックで集計すればセッションスコープの分析が可能です。

GA4はまだまだ進化の途中です。
シン・ゴジラのように第2形態、第3形態とものすごい勢いで新たな機能が出てくる気がしてなりません。
このブログが読まれる頃にはもうセッションパラメータが実装されてたりして・・・w

 
弊社ではGoogleAnalytics/AdobeAnalyticsなどの各Martechツールの導入実装コンサルティングサービスや、GCP/AWSなどのパブリッククラウドを使ったデータ分析基盤構築コンサルティングサービスを提供しております。
お問い合わせはこちらからどうぞ。

Mouseflow vs Hotjar:どちらを選ぶべき?前のページ

【新機能】カスタムダッシュボード:重要な指標すべてを一つの画面で次のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Adobe Analytics

    Adobe Analytics: Datafeedにデバイスデータがないけど慌てない

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  2. Google Analytics

    【GA4】DebugViewの使い方

    こんにちは、エクスチュアの岩川です。GA4ではDebugVi…

  3. Google BigQuery

    Big QueryでWindow関数を用いて、累積和を計算する

    こんにちは。エクスチュアでインターンをさせて頂いている中野です。…

  4. Get Started with Conversational Analytics API for Easy Data Analysis

    Google BigQuery

    Conversational Analytics APIでお手軽データ分析をしよう

    こんにちは、中村です。Googleから発表された、現在プレビ…

  5. Google Analytics

    Google Analytics: ユニバーサルアナリティクスの拡張Eコマース用dataLayerを…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  6. Google BigQuery

    BigQueryのユーザー定義関数(UDF)をTableauで使う

    こんにちは、エクスチュアの渡部です。今回はTableauでstan…

カテゴリ
最近の記事
  1. Adobe Target Recommendations:g…
  2. Conversational Analytics APIでお…
  3. Looker Studioで日付フィルターの開始日・終了日の…
  4. Streamlitでdbt-elementary風ダッシュボ…
  5. Adobe WebSDK FPIDでECIDの復元を検証
  1. Adobe Analytics

    ページの深さとは-Adobe Analyticsの指標説明
  2. IT用語集

    グリットコンピューティング(Grid Computing)って何?
  3. IT用語集

    スコアリング(Scoring)って何?
  4. IT用語集

    HDD、SSDって何?
  5. Adobe Analytics

    Adobe AEP SDKをTypeScriptで開発したReactNative…
PAGE TOP