BigQuery×GA4でCV経路を可視化|ユーザー行動をLooker Studioで分析してみた

GA4を使っていると、「どのページが見られているか」「どこからユーザーが訪問しているか」は確認できます。

一方で、

  • CVしたユーザーは、最初にどこから訪問したのか
  • CVするまでにどのページを見たのか
  • 途中でどんなマイクロコンバージョン(MCV)を経由したのか
  • CV直前にはどのページを見ていたのか

といったユーザー1人単位の時系列の行動を追いかけようとすると、GA4の標準レポートだけでは少し扱いづらいことがあります。

そこで今回は、GA4のデータをBigQueryで抽出し、Looker Studioで「CVユーザーの行動カルテ」を確認できる環境を作ってみました。

今回は、Webマーケティングでの分析を想定して、CVだけでなくMCVも対象にしています。

今回作ったもの

今回の構成はシンプルです。

GA4

↓

BigQuery

↓

CV・MCVしたユーザーを抽出

↓

そのユーザーの行動履歴を取得

↓

Looker Studioで可視化

最終的には、例えば1人のユーザーについて、

時刻イベントページ流入元
09:12page_viewTOPページorganic
09:14page_viewSEO記事organic
09:18page_viewサービスページorganic
09:21MCV資料ダウンロードorganic
09:25page_viewお問い合わせorganic
09:27CVお問い合わせ完了organic

のように、CVに至るまでの行動を時系列で確認できるようにします。

実際のWebサイトでは、イベント名やURL、CV・MCVの定義に合わせて設定してください。


この分析で何が分かる?

この仕組みを作っておくと、単純なアクセス数だけでは分かりにくいユーザー行動を確認できます。

例えば、

  • CVユーザーはどの流入元から来ているのか
  • CV前にどのページを閲覧しているのか
  • どのページがMCVにつながっているのか
  • CV直前に閲覧されているページは何か
  • SEO流入と他の流入で行動に違いがあるか
  • 特定の記事からサービスページへ移動しているか

といった分析ができます。

「アクセスが多いページ」を見るだけではなく、「CVにつながったユーザーが実際にどんな行動をしていたのか」を見るための分析です。

Step 1:BigQueryでCVユーザーを抽出する

まず、BigQuery側で対象となるユーザーを抽出します。

今回は、

前月にCVまたは主要なMCVを達成したユーザー

を対象にします。

ポイントは、日付を毎回手動で変更しないことです。

SQLの中で「前月の1日~末日」を自動的に算出するようにしておけば、毎月同じクエリを利用できます。

クエリ

BigQueryのSQLエディタを開き、以下のテンプレートを利用します。

WITH target_users AS (
  -- ① 「前月」に本CVまたは各種MCVを達成したユーザーのIDを自動抽出
  SELECT DISTINCT
    user_pseudo_id
  FROM
    `【あなたのプロジェクトID】.【あなたのデータセットID】.events_*`
  WHERE
    _TABLE_SUFFIX BETWEEN 
      FORMAT_DATE('%Y%m%d', DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH))
      AND FORMAT_DATE('%Y%m%d', LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)))
    AND (
      event_name = '【実際のCVイベント名】'
      OR event_name = '【実際のMCVイベント名1】'
      OR event_name = '【実際のMCVイベント名2】'
    )
)

-- ② 特定したユーザーたちの行動履歴を時系列で抽出
SELECT
  u.user_pseudo_id,
  TIMESTAMP_MICROS(e.event_timestamp) AS event_time,
  e.event_name,
  -- 閲覧したページURL(パラメータを削ってきれいに整形)
  (SELECT REGEXP_REPLACE(value.string_value, r'\?.*$', '') 
   FROM UNNEST(e.event_params) WHERE key = 'page_location') AS page_url,
  -- 流入元情報を安全に文字列として取得
  COALESCE(e.traffic_source.medium, '(direct)') AS traffic_medium,
  COALESCE(e.traffic_source.source, '(direct)') AS traffic_source

FROM
  target_users AS u
JOIN
  `【あなたのプロジェクトID】.【あなたのデータセットID】.events_*` AS e
  ON u.user_pseudo_id = e.user_pseudo_id

WHERE
  _TABLE_SUFFIX BETWEEN 
    FORMAT_DATE('%Y%m%d', DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH))
    AND FORMAT_DATE('%Y%m%d', LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)))
  -- ページビューと、指定の重要イベントだけに絞り込む
  AND (
    e.event_name = 'page_view'
    OR e.event_name = '【実際のCVイベント名】'
    OR e.event_name = '【実際のMCVイベント名1】'
    OR e.event_name = '【実際のMCVイベント名2】'
  )

ORDER BY
  u.user_pseudo_id,
  event_time ASC;

このSQLでやっていること

大きく分けると2段階です。

① CV・MCVしたユーザーを特定

まず、

前月にCVしたユーザー
+
前月にMCVしたユーザー

を抽出します。

ここでは user_pseudo_id を使ってユーザーを識別しています。

② そのユーザーの行動履歴を取得

対象ユーザーが見た、

  • page_view
  • MCV
  • CV

などのイベントを取得します。

そして event_timestamp を使って時系列に並べます。

そのため、

「CVした人が、その前に何をしていたのか」

を確認できます。


Step 2:BigQueryのビューとして保存する

クエリが正常に動作し、期待したデータが取得できることを確認したら、BigQuery上でビューとして保存します。

BigQueryのエディタから、

「保存」→「ビューとして保存」

を選択します。

任意のデータセットを選び、例えば、

v_user_path

など、分かりやすい名前を付けます。

今回のSQLでは、対象期間を

「前月の1日~末日」

としているため、翌月になれば自動的に対象期間も切り替わります。

つまり、毎月SQLの日付を書き換える必要がありません。

このようにビュー化しておくことで、Looker Studio側から同じデータソースを利用し続けられるようになります。


Step 3:Looker Studioに接続する

次に、BigQueryで作成したビューをLooker Studioに接続します。

Looker Studioを開き、

「作成」→「レポート」

を選択します。

データ接続元から、

BigQuery

を選択します。

その後、

プロジェクト
↓
データセット
↓
v_user_path

と進み、作成したビューを選択します。


Step 4:ユーザーごとの行動を確認できる表を作る

ここからはLooker Studio側の設定です。

今回作りたいのは、

「1人のユーザーを選ぶと、そのユーザーの行動履歴が時系列で表示される表」

です。


① ユーザー選択用のドロップダウンを配置

上部メニューから、

「追加」→「コントロール」→「ドロップダウン リスト」

を選択します。

「コントロールフィールド」に、

user_pseudo_id

を指定します。

これで、前月にCVまたはMCVを達成したユーザーの中から、確認したいユーザーを選択できるようになります。


② タイムライン用のテーブルを配置

次に、

「追加」→「表」

からテーブルを配置します。

今回は、ユーザーの行動を確認することが目的なので、以下の項目をディメンションとして設定します。

user_pseudo_id
event_time
event_name
page_url
traffic_medium
traffic_source

特に、

event_time

を使うことで、ユーザーの行動を時系列で確認できます。


③ テーブルの見た目を調整

URLなどは長くなりやすいため、必要に応じてテーブルのスタイルを調整します。

テーブルを選択した状態で、

「スタイル」→「テーブルヘッダー」→「テキストの折り返し」

などを設定すると、長いURLも確認しやすくなります。


完成するとどうなる?

これで、

ユーザーを1人選択

↓

そのユーザーの行動履歴を表示

↓

流入元・ページ・MCV・CVを時系列で確認

という分析ができるようになります。

例えば、

Google検索
 ↓
SEO記事
 ↓
サービスページ
 ↓
資料ダウンロード(MCV)
 ↓
別の記事
 ↓
お問い合わせページ
 ↓
お問い合わせ(CV)

といったユーザーの動きを、1人単位で確認できます。


この分析をマーケティングにどう使うか

この仕組みを作る目的は、単純に「ユーザーの行動を眺める」ことではありません。

CVにつながったユーザーの行動から、コンテンツや導線を改善することが目的です。

例えば、

SEO記事からCVにつながっている

特定の記事を閲覧したユーザーが、その後サービスページやお問い合わせページに進んでいるのであれば、その記事は単なるアクセス獲得だけでなく、CVまでの導線として機能している可能性があります。

特定のMCVを経由している

CVユーザーの多くが資料ダウンロードやセミナー申し込みなどのMCVを経由しているのであれば、MCVを中間地点として分析することもできます。

CV直前のページを確認する

CV直前に共通して閲覧されているページがあれば、CV導線の改善やコンテンツの見直しにつなげられます。


まとめ

今回は、GA4のデータをBigQueryで加工し、Looker StudioでCVユーザーの行動を1人単位で確認できる環境を作ってみました。

ポイントは、

GA4
 ↓
BigQuery
 ↓
CV・MCVユーザーを抽出
 ↓
ユーザー行動を取得
 ↓
BigQuery Viewとして保存
 ↓
Looker Studio
 ↓
ユーザー単位で行動を確認

という流れです。

GA4の標準レポートだけでは追いにくい、

「そのユーザーは、どこから来て、何を見て、どのMCVを経由してCVしたのか」

という行動を確認できるのが、この方法の面白いところです。

また、前月を自動的に対象期間とするSQLにしておけば、毎月のレポート作成時に日付を書き換える必要もありません。

アクセス数やCV数だけを見るのではなく、CVに至ったユーザーの行動そのものを見ることで、SEOやコンテンツ、サイト導線の改善にも活用できます。

コメントはまだありません

コメントを残す

コメントは管理者の承認後に公開されます。メールアドレスは公開されません。