AIチャットボット経由セッションを、カスタムチャネルと計算フィールドで分類してみよう【#現場で役立つGA4】

GA4のカスタムチャネルグループを活用してChatGPTやClaude等のAIチャットボット経由のトラフィックを適切に分類する方法を解説します。Looker Studioの計算フィールドでも同様の設定が可能です。

こんにちは、JADEのコンサルタントの郡山です。今回はGA4の「カスタム チャネル グループ」について解説します。

Looker Studioの「計算フィールド」でも同じことができるので、それぞれを利用してAIチャットボット経由のセッションを分類してみようと思います。

まだ数はそれほど多くないものの、ChatGPTやClaude経由のトラフィックが増加しているな~と感じている方は、ぜひご覧ください。

デフォルトのチャネルグループではAIチャットボットを適切に分類できていないケースも確認されていますので、カスタム チャネル グループや計算フィールドを使って正しく分類できるようになりましょう。

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] トラフィック ソースのディメンションのスコープ - アナリティクス ヘルプ

 

GA4のチャネル グループについて

デフォルト チャネル グループ

前述の通り、カスタム設定をしなくても自動でサイトを訪問したユーザーがどこから来たのかを判定・分類してくれるのが「デフォルト チャネル グループ」です。

デフォルト チャネル グループは以下のような特徴があります。

「集客 > トラフィック獲得」レポートでセッションのデフォルト チャネル グループを利用した集計例

参考:[GA4] デフォルト チャネル グループ - アナリティクス ヘルプ

 

カスタム チャネル グループ

カスタム チャネル グループとは、以下のトラフィックソースのディメンションを利用して独自の分類ルールを定義するチャネルを指します。

  • デフォルト チャネル グループ
  • 参照元
  • メディア
  • キャンペーン ID
  • キャンペーン名
  • 手動広告コンテンツ
  • 参照元プラットフォーム

無料版のGA4プロパティでは2つのカスタム チャネル グループを作成することが可能です。

1つのカスタム チャネル グループにつき、50種類まで分類することができます。

参考:[GA4] カスタム チャネル グループ - アナリティクス ヘルプ

 

Looker Studioの「計算フィールド」でカスタム チャネルと同じことをするには

手前味噌で大変恐縮ですが、Looker Studioの計算フィールドについて基礎知識から知りたい方はこちらの記事をご覧ください。

blog.ja.dev

さて、GA4のカスタム チャネルと同じことをLooker Studioの計算フィールドでも実装することが可能です。

 

CASE関数を使うと

  • 〇〇という条件に一致する場合はhogehogeという値を返す
  • ✕✕という条件に一致する場合はmunyamunyaという値を返す

といったように、IF関数を複数セットするような条件定義ができます。

 

たとえば、GA4プロパティと接続したLooker Studioでは「地域」ディメンションで【Tokyo】【Osaka】といった英語表記の値を判定できますが、これらを日本語の値で返すような処理をしたりできます。

GA4プロパティと接続したLooker Studioで「地域」ディメンションを日本語で返すCASE関数の計算フィールド「都道府県」を利用した例
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チャットボット。楽させてくれ。

ClaudeにAIチャットボットや生成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条件の分類ルールを「完全一致」で定義するとよいですね。

カスタムチャネルでAIチャットボットの参照元を「AI Chatbot」と判定する例

 

計算フィールドの作成例

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とOthersの2つに分類して集計する例

フィルタ項目でAI ChatbotとOthersの2つに分類して集計する例

 

セッションの参照元を「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

期間グラフでAI Chatbotのセッションの日別実績を集計する例

 

Looker Studioのサンプルダッシュボード

紹介した計算フィールドを利用したサンプルダッシュボードを作成してみました。

ご自身のGA4プロパティをデータソースにして集計することができるので、興味がある方は遊んでみてください。

https://lookerstudio.google.com/reporting/a4377b0c-138f-4a35-be44-a224ae67f829

※GA4プロパティと直接接続したデータソースでは、サンプリングがどの程度適用されるか判別ができません。よって、セッション関連の実績に推定値を含む可能性がある(管理画面の集計との誤差が生じる可能性)点を踏まえてご覧ください。

 

サマリー

AIチャットボットがサイト全体のセッションの何%程度を占めているのか確認できるグラフ

 

AIチャットボット経由セッション実績

AIチャットボットと判定する対象ドメインのセッション実績を日別推移で確認できるグラフ

 

セッション実績の詳細

デフォルトチャネルグループの判定にどの程度AIチャットボットの参照元が含まれているか確認できるグラフ

 

デフォルト チャネル グループの判定にどの程度AIチャットボットの参照元が含まれているか確認できるグラフを参照元/メディアの粒度で確認できるグラフ

 

AIチャットボット経由のセッションのランディングページを確認できるグラフ

 

 

まとめ

トラフィックソースのディメンションはGA4を利活用する上で非常に重要な役割を担っています。

デフォルト チャネル グループだけでは適切に流入経路を分類・評価できないケースではご紹介した「カスタム チャネル グループ」や「計算フィールド」を試してみると良いかと思います。

ご参考になれば幸いです。

 

ここまで読んでくださりありがとうございます!

それではまた来月の #現場で役立つGA4 でお会いしましょう~。

 

もしくは、明日5月29日に私が登壇する「Web担当者Forum ミーティング2025 春」でお会いしましょう~。

GA4のセッション分析について解説します!

webtan.impress.co.jp