こんにちは、JADEのコンサルタントの郡山です。今回はGA4の「カスタム チャネル グループ」について解説します。
Looker Studioの「計算フィールド」でも同じことができるので、それぞれを利用してAIチャットボット経由のセッションを分類してみようと思います。
まだ数はそれほど多くないものの、ChatGPTやClaude経由のトラフィックが増加しているな~と感じている方は、ぜひご覧ください。
デフォルトのチャネルグループではAIチャットボットを適切に分類できていないケースも確認されていますので、カスタム チャネル グループや計算フィールドを使って正しく分類できるようになりましょう。
※AIチャットボットを分類するLooker Studioのサンプルダッシュボードはこちら
【もくじ】
- ユーザーがどこから来たのか判定する「トラフィック ソースのディメンション」
- GA4のチャネル グループについて
- Looker Studioの「計算フィールド」でカスタム チャネルと同じことをするには
- AIチャットボット経由のセッションを分類してみよう
- Looker Studioのサンプルダッシュボード
- まとめ
ユーザーがどこから来たのか判定する「トラフィック ソースのディメンション」
GA4では、外部のサイトから計測対象サイトを訪問するユーザーがどこからやってきたのかを「トラフィック ソースのディメンション」で記録しています。
ディメンション | 内容 | 例 |
---|---|---|
デフォルト チャネル グループ | Googleが定義したルールに基づいてトラフィック ソース(流入元)を分類したもの | Organic Search , Display |
参照元 | ユーザーをサイトへ誘導したドメイン | google , blog.ja.dev |
メディア | ユーザーをサイトへ誘導したトラフィックの種類 | organic , cpc , referral , social , email |
「google / organic」 という参照元とメディアの組み合わせを「Organic Search」と分類するように、デフォルト チャネル グループは大まかな粒度で流入経路を判定したいときに便利なトラフィックソースのディメンションですね。
また、トラフィック ソースのディメンションはユーザー、セッション、イベントという3つのスコープで判定・記録されるという仕様です。
「セッションの~」という接頭辞がついたディメンションがセッションスコープのディメンションなので、その他のスコープのディメンションと混同しないように注意しましょう。
参考:[GA4] トラフィック ソースのディメンションについて - アナリティクス ヘルプ
参考:[GA4] トラフィック ソースのディメンションのスコープ - アナリティクス ヘルプ
GA4のチャネル グループについて
デフォルト チャネル グループ
前述の通り、カスタム設定をしなくても自動でサイトを訪問したユーザーがどこから来たのかを判定・分類してくれるのが「デフォルト チャネル グループ」です。
デフォルト チャネル グループは以下のような特徴があります。
- GA4管理画面の「集客」などの標準レポートで利用できる
- Googleが参照元の情報を分類するルールを事前定義している
- 分類ルールの編集はできない
- 分類している参照元とカテゴリのリストが公開されている
- 分類ルールの変更を希望する場合は googleanalytics-channelgrouprequests@google.com へ連絡する
参考:[GA4] デフォルト チャネル グループ - アナリティクス ヘルプ
カスタム チャネル グループ
カスタム チャネル グループとは、以下のトラフィックソースのディメンションを利用して独自の分類ルールを定義するチャネルを指します。
- デフォルト チャネル グループ
- 参照元
- メディア
- キャンペーン ID
- キャンペーン名
- 手動広告コンテンツ
- 参照元プラットフォーム
無料版のGA4プロパティでは2つのカスタム チャネル グループを作成することが可能です。
1つのカスタム チャネル グループにつき、50種類まで分類することができます。
参考:[GA4] カスタム チャネル グループ - アナリティクス ヘルプ
Looker Studioの「計算フィールド」でカスタム チャネルと同じことをするには
手前味噌で大変恐縮ですが、Looker Studioの計算フィールドについて基礎知識から知りたい方はこちらの記事をご覧ください。
さて、GA4のカスタム チャネルと同じことをLooker Studioの計算フィールドでも実装することが可能です。
CASE関数を使うと
- 〇〇という条件に一致する場合はhogehogeという値を返す
- ✕✕という条件に一致する場合はmunyamunyaという値を返す
といったように、IF関数を複数セットするような条件定義ができます。
たとえば、GA4プロパティと接続したLooker Studioでは「地域」ディメンションで【Tokyo】【Osaka】といった英語表記の値を判定できますが、これらを日本語の値で返すような処理をしたりできます。
CASE
WHEN 地域 IN ("Hokkaido") THEN "北海道"
WHEN 地域 IN ("Aomori") THEN "青森県"
WHEN 地域 IN ("Iwate") THEN "岩手県"
WHEN 地域 IN ("Miyagi") THEN "宮城県"
WHEN 地域 IN ("Akita") THEN "秋田県"
WHEN 地域 IN ("Yamagata") THEN "山形県"
WHEN 地域 IN ("Fukushima") THEN "福島県"
WHEN 地域 IN ("Tokyo") THEN "東京都"
WHEN 地域 IN ("Kanagawa") THEN "神奈川県"
WHEN 地域 IN ("Chiba") THEN "千葉県"
WHEN 地域 IN ("Saitama") THEN "埼玉県"
WHEN 地域 IN ("Ibaraki") THEN "茨城県"
WHEN 地域 IN ("Gunma") THEN "群馬県"
WHEN 地域 IN ("Tochigi") THEN "栃木県"
WHEN 地域 IN ("Yamanashi") THEN "山梨県"
WHEN 地域 IN ("Nagano") THEN "長野県"
WHEN 地域 IN ("Niigata") THEN "新潟県"
WHEN 地域 IN ("Toyama") THEN "富山県"
WHEN 地域 IN ("Ishikawa") THEN "石川県"
WHEN 地域 IN ("Fukui") THEN "福井県"
WHEN 地域 IN ("Aichi") THEN "愛知県"
WHEN 地域 IN ("Shizuoka") THEN "静岡県"
WHEN 地域 IN ("Gifu") THEN "岐阜県"
WHEN 地域 IN ("Mie") THEN "三重県"
WHEN 地域 IN ("Osaka") THEN "大阪府"
WHEN 地域 IN ("Hyogo") THEN "兵庫県"
WHEN 地域 IN ("Kyoto") THEN "京都府"
WHEN 地域 IN ("Shiga") THEN "滋賀県"
WHEN 地域 IN ("Nara") THEN "奈良県"
WHEN 地域 IN ("Wakayama") THEN "和歌山県"
WHEN 地域 IN ("Okayama") THEN "岡山県"
WHEN 地域 IN ("Hiroshima") THEN "広島県"
WHEN 地域 IN ("Shimane") THEN "島根県"
WHEN 地域 IN ("Tottori") THEN "鳥取県"
WHEN 地域 IN ("Yamaguchi") THEN "山口県"
WHEN 地域 IN ("Tokushima") THEN "徳島県"
WHEN 地域 IN ("Ehime") THEN "愛媛県"
WHEN 地域 IN ("Kagawa") THEN "香川県"
WHEN 地域 IN ("Kochi") THEN "高知県"
WHEN 地域 IN ("Fukuoka") THEN "福岡県"
WHEN 地域 IN ("Kumamoto") THEN "熊本県"
WHEN 地域 IN ("Kagoshima") THEN "鹿児島県"
WHEN 地域 IN ("Saga") THEN "佐賀県"
WHEN 地域 IN ("Nagasaki") THEN "長崎県"
WHEN 地域 IN ("Oita") THEN "大分県"
WHEN 地域 IN ("Miyazaki") THEN "宮崎県"
WHEN 地域 IN ("Okinawa") THEN "沖縄県"
ELSE "国外・判定不能"
END
CASE関数を使うことで、日本語に変換した値を返したり、その他のアクセスを「国外・判定不能」といった値に集約したりできて便利ですね。
AIチャットボットの参照元を判定するカスタムチャネルを計算フィールドで再現する場合は、
- 「セッションの参照元」が◯◯のときはAI Chatbotという値を返す
- それ以外はセッションのデフォルトチャネルグループと同じ値を返す
といった処理をするフィールド(ディメンション)を作成すればよいですね。
参考:計算フィールドについて | Looker Studio | Google Cloud
参考:CASE(検索) | Looker Studio | Google Cloud
参考:Looker Studioでよく使う関数まとめ【コピペ利用可】|GAラボ
AIチャットボット経由のセッションを分類してみよう
AIチャットボット経由の流入は、デフォルト チャネル グループでは適切に分類できていない
たとえばChatGPT経由でウェブサイトを訪問した際、デフォルト チャネル グループでは以下のようなパターンで分類します。
セッションの参照元 / メディア | セッションのデフォルト チャネル グループ |
---|---|
chatgpt.com / (none) | Unassigned |
chatgpt.com / (not set) | Unassigned |
chatgpt.com / organic | Organic Search |
chatgpt.com / referral | Referral |
2025年5月時点では、chatgpt.comという参照元を分類するルールがGoogle側で参照しているリストに記載がないため、メディアだけでチャネルグループの判定を行っているようです。
結果、chatgpt.com経由のセッションがさまざまなチャネルグループに分岐してしまっています。
このようなケースでは、AIチャットボットの参照元を「AI Chatbot」と判定して、それ以外はデフォルト チャネル グループの判定をしてくれるディメンションがあると適切な集計ができそうですね。
AIチャットボットと判定する参照元の選定
ではまず、AIチャットボットと判定する参照元(ドメイン)を整理しましょう。
ちょっと時間がなかったのでClaudeに聞いてきました。すごいぞAIチャットボット。楽させてくれ。
カスタムチャネルの作成例
一つ一つの参照元ごとに「AI Chatbot」という値を返すルールを定義していると、とんでもない時間がかかるので、正規表現に一致する条件定義で対象ドメインをまとめてセットするのが楽です。
- ChatGPT を含む参照元は「AI Chatbot」と分類
- その他はデフォルトチャネルのルールで分類
というように、チャネル作成時には【どのルールから適用・分類するのか】設定する必要があります。
.*(chatgpt|claude|gemini|perplexity|copilot|zendesk|jasper|writesonic|copy\.ai|khanmigo\.ai|pi\.ai|huggingface.co|character\.ai|poe\.com|llama\.com|textcortex\.com|botsonic\.com|midjourney\.com|stability\.ai|replit\.com|cohere\.com|anthropic\.com|openai\.com|phind\.com).*
正規表現で記述したいずれかの参照元に一致する場合、「AI Chatbot」と返すOR条件の分類ルールを定義してみました。
you.com のような短くシンプルなドメインの場合は、想定していない別のドメインに部分一致してしまうかもしれません。そのような場合は、別途OR条件の分類ルールを「完全一致」で定義するとよいですね。
計算フィールドの作成例
Looker Studioではグラフやフィルタなど様々なコンポーネントに計算フィールドをセットできます。
せっかくなので複数パターンの計算フィールドを作ってみましょう。
セッションの参照元を「AI Chatbot」または「Others」と分類
CASE
WHEN REGEXP_MATCH(セッションの参照元 , '.*(chatgpt|claude|gemini|perplexity|copilot|zendesk|jasper|writesonic|copy\\.ai|khanmigo\\.ai|pi\\.ai|huggingface.co|character\\.ai|poe\\.com|llama\\.com|textcortex\\.com|botsonic\\.com|midjourney\\.com|stability\\.ai|replit\\.com|cohere\\.com|anthropic\\.com|openai\\.com|phind\\.com).*') THEN 'AI Chatbot'
WHEN セッションの参照元 = 'you.com' THEN 'AI Chatbot'
ELSE 'Others'
END
セッションの参照元を「AI Chatbot判定」→「デフォルト チャネル グループ判定」 の順番で分類
CASE
WHEN REGEXP_MATCH(セッションの参照元 , '.*(chatgpt|claude|gemini|perplexity|copilot|zendesk|jasper|writesonic|copy\\.ai|khanmigo\\.ai|pi\\.ai|huggingface.co|character\\.ai|poe\\.com|llama\\.com|textcortex\\.com|botsonic\\.com|midjourney\\.com|stability\\.ai|replit\\.com|cohere\\.com|anthropic\\.com|openai\\.com|phind\\.com).*') THEN 'AI Chatbot'
WHEN セッションの参照元 = 'you\\.com' THEN 'AI Chatbot'
ELSE セッションのデフォルト チャネル グループ
END
Looker Studioのサンプルダッシュボード
紹介した計算フィールドを利用したサンプルダッシュボードを作成してみました。
ご自身のGA4プロパティをデータソースにして集計することができるので、興味がある方は遊んでみてください。
https://lookerstudio.google.com/reporting/a4377b0c-138f-4a35-be44-a224ae67f829
※GA4プロパティと直接接続したデータソースでは、サンプリングがどの程度適用されるか判別ができません。よって、セッション関連の実績に推定値を含む可能性がある(管理画面の集計との誤差が生じる可能性)点を踏まえてご覧ください。
サマリー
AIチャットボット経由セッション実績
セッション実績の詳細
まとめ
トラフィックソースのディメンションはGA4を利活用する上で非常に重要な役割を担っています。
デフォルト チャネル グループだけでは適切に流入経路を分類・評価できないケースではご紹介した「カスタム チャネル グループ」や「計算フィールド」を試してみると良いかと思います。
ご参考になれば幸いです。
ここまで読んでくださりありがとうございます!
それではまた来月の #現場で役立つGA4 でお会いしましょう~。
もしくは、明日5月29日に私が登壇する「Web担当者Forum ミーティング2025 春」でお会いしましょう~。
GA4のセッション分析について解説します!