
GA4をBigQueryで分析するとき「GA4で見ているデフォルトチャネルグループを再現したい」というニーズは多くありますが、GA4のチャネル分類ルールは公開されているものの、非常に煩雑で、正確に再現するのは非常に手間がかかります。
この記事では、Google公式情報の定義に基づくチャネル別の分類条件(参照元・メディアの正規表現)を一覧でご紹介します。 また、再現しやすいように、BigQuery用のサンプルSQLスクリプトも掲載しますので、カスタムチャネルグループの整備や整合性チェックをおこなうときなどの参考にお役立てください。
1. Google公式:チャネル分類の基本ルール
GoogleのGA4公式ヘルプでは、各チャネルの定義として、以下のようなルールが示されています:
- 条件は主に 参照元(source) と メディア(medium) の2つの組み合わせ
- ソーシャルや検索サイトなどは「参照元の正規表現リスト」に一致した場合に分類される(※PDFやCSVで公開されていることが多い)
- メディアは
cpc
やemail
など、比較的一貫性のあるパラメータで分類
※なお、2024年10月9日以降のデータについては
session_traffic_source_last_click.cross_channel_campaign.default_channel_group
で、BigQueryから直接デフォルトチャネルグループを取得することが可能です。
🔗 デフォルトチャネルグループの定義 – 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. | ppc | retargeting | paid.*)$` |
Referral | 上記以外の外部サイト | referral | |||
Direct | (direct) | (not set) / (none) | |||
任意 | 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 medium = '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.*|.*reddit.*)')
AND medium IN ('social', 'social-organic', 'referral') THEN 'Organic Social'
WHEN REGEXP_CONTAINS(source, r'(.*facebook.*|.*instagram.*|.*twitter.*|.*t\\.co.*|.*linkedin.*|.*pinterest.*|.*reddit.*)')
AND REGEXP_CONTAINS(medium, r'(paidsocial|.*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 medium IN ('email', 'e-mail') THEN 'Email'
WHEN medium = 'affiliate' THEN 'Affiliates'
WHEN medium IN ('display', 'banner', 'cpm') THEN 'Display'
WHEN medium IN ('video', 'paidvideo') THEN 'Paid Video'
WHEN medium = 'organic-video' THEN 'Organic Video'
WHEN medium = 'audio' THEN 'Audio'
WHEN medium IN ('sms', 'text') THEN 'SMS'
WHEN medium IN ('push', 'notification') THEN 'Mobile Push Notifications'
WHEN medium = 'referral' THEN 'Referral'
WHEN source IN ('', '(direct)', '(not set)') AND medium IN ('', '(none)', '(not set)') THEN 'Direct'
ELSE 'Unassigned'
END AS default_channel_group
⚠️ 本記事に引用しているSQLクエリは未検証のため、正常な動作は保証できません。検証・デバッグ済みのSQLクエリ全文は、後日、検証記事に掲載しますので、そちらをご参照ください。
4. おわりに
本記事は「GA4のチャネルグループをBigQueryで再現したい」というWebアナリストの皆さま向けに、Googleの公式情報をもとにした分類条件とSQLのテンプレをご紹介しました。
数値を完全一致させることは、ほぼ不可能ですが、“再現方針が明確になる”だけでも、分析の精度と納得感は大きく向上します。
GA4データ分析の第一歩として、デフォルトチャネルグループの再現に取り組む際の参考になれば幸いです。
近日公開予定の2部構成の記事(GA4とBigQueryの構造理解編と誤差補正・実践編)とも連携予定ですので、そちらもぜひチェックしてみてください。
📌 この記事は、GA4 × BigQuery の実務分析を支援する「サイトウオンライン」の実験室よりお届けしました。
■ 無料相談・お問合せ (弊社からの営業は一切しません)
「うちの場合は自動化・省力化できるのか?」
まずはお気軽に無料相談をご利用ください。
- オンライン全国対応
- 相談だけでもOK
- 営業メールなどは一切しません
- 技術者が直接ヒアリングして回答します
- 概算費用・工数をご提示します