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. Google BigQuery

    BigQuery BI Engine解説

    こんにちは、エクスチュア渡部です。2019/4/9-4/11に行わ…

  2. Adobe Analytics

    Adobe AnalyticsとGoogle Analyticsの違い① セグメントのコンテナの違い…

    こんにちは。CEOの原田です。今回は良く話題に出ながらも情報がまと…

  3. Google BigQuery

    Tableau : BigQueryでLOD計算が使えない場合の対処法

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

  4. GA 360 Suite

    GoogleDataStudio:GoogleAnalyticsのカスタムチャネルグループをCASE…

    こんにちは。エクスチュアの渡部です。DataStudioの小ネ…

  5. Google Analytics

    Google Analytics 導入方法

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

  6. Cloud Dataflow

    データアナリスト/データエンジニア向けNext19まとめ

    こんにちは、エクスチュア渡部です。2019/4/9-4/11に行わ…

最近の記事

  1. SnowPro Advanced: Architect 合格…
  2. LangChainのソースコードから実装を見てみる(Chat…
  3. Tableau×Teams連携
  4. AIを使ったマーケティングゲームを作ってみた
  5. Snowflakeや最新データ基盤が広義のマーケティングにも…
  1. Google Apps Script(GAS)

    Google App ScriptとGoogleスプレッドシートを連携させる
  2. Google BigQuery

    Google Apps Scriptを使ってスプレッドシートからBigQuery…
  3. Google Analytics

    Cloud FunctionsとOpenWeather APIを使ってGoogl…
  4. Google Apps Script(GAS)

    GASを利用してWebスクレイピングをやってみよう②
  5. IT用語集

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