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などのパブリッククラウドを使ったデータ分析基盤構築コンサルティングサービスを提供しております。
お問い合わせはこちらからどうぞ。

ピックアップ記事

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

関連記事

  1. GA 360 Suite

    Google Analytics 4:client_idを取得

    こんにちは。エクスチュアのsaraです。2023年7月、ユニ…

  2. Adobe Analytics

    Adobe Analytics: BigQueryにロードしたデータフィードをDataStudioで…

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

  3. Google Analytics 4

    【GA4/GTM】dataLayerを使ってカスタムイベントを発生させてみよう

    はじめに以前の記事でdataLayerを使用し、GTMとのデ…

  4. Google BigQuery

    GCPのBQMLを使ってKaggleコンペに挑んでみた(その1)

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

  5. Google Analytics

    Google Analytics 導入方法

    自社のサイトやブログを運営していくうえでサイトの分析というのは、コンテ…

  6. Adobe Analytics

    Adobe AnalyticsのDatafeedをBigQueryのColumn-based Tim…

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

最近の記事

  1. 【GA4/GTM】dataLayerを使ってカスタムイベント…
  2. KARTE を使ってサイト外でも接客を
  3. 【GA4/GTM】dataLayerを活用しよう
  4. ジャーニーマップをデジタルマーケティングの視点で
  5. ChatGPT ProからClaude3 Proへ移行した話…
  1. Data Clean Room

    SnowflakeのData Clean Roomを基礎から一番詳しく解説(1回…
  2. Enterprise Data Warehouse

    爆速データウェアハウスなApache Druidを試す
  3. Adobe Analytics

    ページとは-Adobe Analyticsの指標説明
  4. ブログ

    ダッシュボードに使うべき10のグラフ②
  5. IT用語集

    コード、コンパイル、ソースコードって何?
PAGE TOP