オルタナティブ・ブログ > 秋山大志のそれとりあえず作ってみようか。 >

あれこれ考えるよりも作ってしまった方が早いんじゃね?と思う、ギークなサラリーマンのアジャイルな日々。

GA4のカスタムディメンションとBigQuery連携の使い方|イベントパラメータをレポートで見る方法|未経験から100日後にGTMのプロになる話【Day 15】

»

「GTMでイベントもパラメータも送っているはずなのに、GA4のレポートに出てこない」という相談は本当によくあります。多くの場合、原因はGTM側ではなくGA4側の設定です。GA4は、送られてきたイベントパラメータをそのままではレポートの軸として使えず、「カスタム定義」への登録が必要になります。

カスタムディメンションを登録する

Day14cta_clickイベントで送ったbutton_textを例にします。

  1. GA4管理画面の「管理」→「カスタム定義」→「カスタムディメンションを作成」
  2. ディメンション名(例:CTAボタンのテキスト)、範囲は「イベント」、イベントパラメータにbutton_textを指定
  3. GA4管理画面でカスタムディメンション(button_text)を作成する画面

  4. 保存

ここで必ず知っておいてほしい注意点が2つあります。1つは、カスタムディメンションはレポートに反映されるまで数時間〜1日程度のタイムラグがあること。登録した直後にレポートを見て「データが無い」と慌てないでください。もう1つは、登録は遡って適用されないこと。カスタムディメンションを作成する前に送信されていたイベントデータは、後から登録しても集計対象になりません。イベント設計が固まったら、できるだけ早めにカスタムディメンションも登録しておくのが実務上のコツです。

BigQueryでの詳細分析

GA4はBigQueryへの生データエクスポートに対応しており、無料枠でも日次エクスポートを設定できます。「管理」→「BigQueryのリンク」からプロジェクトを紐付け、エクスポートを有効にします。

BigQueryにエクスポートされたイベントデータで、CTAボタンごとのクリック数を集計する場合、次のようなクエリになります。

SELECT
  event_name,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'button_text') AS button_text,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'button_url') AS button_url,
  COUNT(*) AS click_count
FROM `your_project_id.analytics_XXXXXXXX.events_*`
WHERE event_name = 'cta_click'
  AND _TABLE_SUFFIX BETWEEN '20260601' AND '20260630'
GROUP BY button_text, button_url
ORDER BY click_count DESC

ここでのポイントは、GA4のBigQueryエクスポートではevent_paramsが「繰り返しフィールド(RECORD)」として保存されている点です。event_params.value.string_valueを単純に2回書いても、それぞれ別のパラメータの値になってくれるわけではありません。UNNEST(event_params)で展開し、WHERE key = '対象のパラメータ名'で絞り込んだサブクエリとして取得するのが正しい書き方です。また、events_*はワイルドカードテーブルで対象期間が広いと課金対象のスキャン量が跳ね上がるため、_TABLE_SUFFIXで日付範囲を必ず絞り込んでください。

使い分けの目安

普段の効果測定はGA4のレポート画面とカスタムディメンションで十分です。複数のパラメータを掛け合わせた分析や、他システムのデータと結合した分析をしたい場合にBigQueryの出番、という切り分けで考えておくと迷いません。

今日のまとめ

GA4のレポートにデータが出ないときは、まずカスタムディメンションの登録有無とタイムラグを疑ってください。BigQueryを使う場合は、event_paramsのUNNESTと日付範囲の絞り込みを忘れずに。次回は、スクロール到達率の計測を扱います。

INDEX

Comment(0)