GA4チャネルグループ分類の正規表現まとめ|BigQuery用サンプルSQLつき

GA4をBigQueryで分析するとき「GA4で見ているデフォルトチャネルグループを再現したい」というニーズは多くありますが、GA4のチャネル分類ルールは公開されているものの、非常に煩雑で、正確に再現するのは非常に手間がかかります。

この記事では、Google公式情報の定義に基づくチャネル別の分類条件(参照元・メディアの正規表現)を一覧でご紹介します。 また、再現しやすいように、BigQuery用のサンプルSQLスクリプトも掲載しますので、カスタムチャネルグループの整備や整合性チェックをおこなうときなどの参考にお役立てください。

1. Google公式:チャネル分類の基本ルール

GoogleのGA4公式ヘルプでは、各チャネルの定義として、以下のようなルールが示されています:

  • 条件は主に 参照元(source)メディア(medium) の2つの組み合わせ
  • ソーシャルや検索サイトなどは「参照元の正規表現リスト」に一致した場合に分類される(※PDFやCSVで公開されていることが多い)
  • メディアはcpcemailなど、比較的一貫性のあるパラメータで分類

🔗 デフォルトチャネルグループの定義 – Google Analyticsヘルプ
🔗 GA4 Source Categories 一覧(PDF)

2. チャネル別の分類条件(抜粋)※2025.4.11現在

チャネルグループsource の条件medium の条件
Organic Search検索エンジンリストに一致organic
Paid Search任意cpc / ppc / paidsearch など
Organic Socialソーシャルサイトリストに一致social / social-organic
Paid Socialソーシャルサイトリストに一致`^(.cp.ppcretargetingpaid.*)$`
Referral上記以外の外部サイトreferral
Direct(direct)(not set) / (none)
Email任意email / e-mail
Affiliates任意affiliate
Display任意display / banner / cpm
Paid Video動画配信サイト(有料)に一致video / paidvideo
Organic Video動画配信サイト(無料)に一致organic-video
Audioオーディオサイトに一致audio
SMS任意sms / text
Mobile Push Notifications任意push / notification

※ source リストは Google 提供のカテゴリ一覧(PDF/CSV)に準拠

3. BigQuery用 CASE文テンプレート(簡易版)※2025.4.11現在

CASE
  WHEN REGEXP_CONTAINS(medium, r"^organic$") AND REGEXP_CONTAINS(source, r'(google|bing|yahoo|baidu|duckduckgo|search\.brave\.com)') THEN 'Organic Search'
  WHEN REGEXP_CONTAINS(source, r'(facebook|instagram|twitter|t.co|linkedin|pinterest)') 
       AND REGEXP_CONTAINS(medium, r'^(social|social-organic)$') THEN 'Organic Social'
  WHEN REGEXP_CONTAINS(source, r'(facebook|instagram|twitter|t.co|linkedin|pinterest)') 
       AND REGEXP_CONTAINS(medium, r'^(.*cp.*|ppc|retargeting|paid.*)$') THEN 'Paid Social'
  WHEN REGEXP_CONTAINS(medium, r'^(cpc|ppc|paidsearch)$') AND REGEXP_CONTAINS(source, r'(google|bing|yahoo|baidu|duckduckgo|search\.brave\.com)') THEN 'Paid Search'
  WHEN REGEXP_CONTAINS(medium, r'^(email|e-mail)$') THEN 'Email'
  WHEN REGEXP_CONTAINS(medium, r'^(affiliate)$') THEN 'Affiliates'
  WHEN REGEXP_CONTAINS(medium, r'^(display|banner|cpm)$') THEN 'Display'
  WHEN REGEXP_CONTAINS(medium, r'^(video|paidvideo)$') THEN 'Paid Video'
  WHEN REGEXP_CONTAINS(medium, r'^(organic-video)$') THEN 'Organic Video'
  WHEN REGEXP_CONTAINS(medium, r'^(audio)$') THEN 'Audio'
  WHEN REGEXP_CONTAINS(medium, r'^(sms|text)$') THEN 'SMS'
  WHEN REGEXP_CONTAINS(medium, r'^(push|notification)$') THEN 'Mobile Push Notifications'
  WHEN source = '(direct)' AND (medium = '(not set)' OR medium = '(none)') THEN 'Direct'
  ELSE 'Referral'
END AS default_channel_group

4. おわりに

本記事は「GA4のチャネルグループをBigQueryで再現したい」というWebアナリストの皆さま向けに、Googleの公式情報をもとにした分類条件とSQLのテンプレをご紹介しました。

数値を完全一致させることは、ほぼ不可能ですが、“再現方針が明確になる”だけでも、分析の精度と納得感は大きく向上します。

GA4データ分析の第一歩として、デフォルトチャネルグループの再現に取り組む際の参考になれば幸いです。
近日公開予定の2部構成の記事(GA4とBigQueryの構造理解編誤差補正・実践編)とも連携予定ですので、そちらもぜひチェックしてみてください。


📌 この記事は、GA4 × BigQuery の実務分析を支援する「サイトウオンライン」の実験室よりお届けしました。