GA4でutmパラメータが反映されない原因と確認手順|キャンペーンが(not set)になる4系統の切り分け
GA4でutmパラメータが反映されない、utm_campaignが(not set)になる原因を、表記ルール・リダイレクト・Google広告自動タグとの競合・セッションスコープ仕様の4系統で切り分け。DebugViewを使った5分診断から再発防止の命名ルールまで、当日中に原因特定できる実務手順で解説します。
この記事のポイント
- GA4でutmが反映されない原因は、表記・リダイレクト・自動タグ競合・仕様の4系統に切り分けると当日中に特定できる。
- (not set)は参照元情報そのものの欠落、Unassignedは値はあるがチャネル分類に合わない状態で、対処が異なる。
- 診断はアドレスバー、DebugView、トラフィック獲得レポートの順に行い、上流から潰すのが最短ルートである。
- utmはセッション開始時にしか評価されないため、URLに付いていても途中のクリックでは反映されない。
- 再発防止には、小文字統一・区切り文字・media/campaignの語彙を固定し、発行管理シートで運用するのが有効である。
メルマガやSNS、広告にutm付きURLを配ったのに、Google アナリティクス 4(GA4)のレポートを開くとキャンペーンが(not set)になっている。URLを確認しても、utm_campaignは確かに付いている。ここで設定画面を延々と疑い始めると、半日はあっという間に消えます。
GA4でutmパラメータが反映されない原因は、大きく「表記」「リダイレクト」「自動タグ競合」「仕様」の4系統に分かれます。この記事では、(not set)の見え方から原因系統を逆引きし、確認、修正、検証までを一日で終わらせる手順をまとめます。最後に、同じ事故を繰り返さないための命名ルールも扱います。
海外では Analytics Mania が「UTM parameters not working in Google Analytics 4?」の記事で原因を11パターンに整理し、診断を「アドレスバー→DebugView→レポート」の順に固定する型を示しています。原因を並べるより先に診断の順序を決める発想で、日本の現場でもそのまま使えます。本記事はこの型を、広告運用者の視点でGoogle広告併用時の判断まで広げたものです。
GA4でutmパラメータが反映されないのはなぜ?まず仕組みを30秒で理解する
GA4は、セッションが始まった時点でutmパラメータ、gclid、リファラーの順に参照元を判定し、すべて欠けているとキャンペーンを(not set)、参照元を direct として扱います。原因を探る前に、この判定の仕組みだけ押さえておくと切り分けが速くなります。
参照元決定の優先順位(utm・gclid・リファラー)
判定の順序は、おおむね次のとおりです。
| 優先順 | 手がかり | 主な用途 |
|---|---|---|
| 1 | utmパラメータ(utm_source / utm_medium / utm_campaign) | メルマガ・SNS・手動で付けたリンク |
| 2 | gclid(Google広告 自動タグ設定) | Google広告のクリック |
| 3 | リファラー(遷移元ドメイン) | 自然検索・他サイトからのリンク |
| 4 | 何もなし | direct / (none)、キャンペーンは(not set) |
厳密には、Google広告のリンクでgclidとutmが同時に付いた場合の扱いに設定依存の部分があります。これは原因③で詳しく扱います。ここでは「utmが届いていなければ、GA4は下位の手がかりに落ちる」とだけ覚えてください。
(not set)とUnassignedは原因が違う:見分け方
(not set)は参照元情報そのものが届いていない状態で、Unassignedは値は届いているものの、デフォルトチャネルグループの分類ルールに合わない状態です。Bounteous の「GA4 Attribution Issues Explained: (not set), Unassigned, and More」でも、この峻別が診断の起点として整理されています。
見分けが付くと、疑う場所が変わります。
- (not set)が出る:utm・gclid・リファラーのいずれも拾えていない。URL、リダイレクト、セッション仕様を疑う(原因②③④が中心)
- Unassignedが出る:sourceやmediumの値自体は入っている。utm_mediumの綴りが標準の分類ルールに合っていない可能性が高い(原因①)
日本では「utm_campaignが(not set)」という相談が目立ちますが、mediumが独自の値でUnassignedになっているだけのケースも少なくないと言われます。まず画面上の表示を正確に読むところから始めます。
utmが計測されているかを5分で確認する手順
utmの診断は、アドレスバー、DebugView、トラフィック獲得レポートの3段階で、必ず上流から順に確認します。下流のレポートだけ見て悩むのが、時間を失う最大の原因です。
①シークレットウィンドウでURLを直叩きしアドレスバーを見る
配布したURLを、シークレットウィンドウのアドレスバーに貼って開きます。ページ表示後、アドレスバーにutm_sourceなどが残っているかを確認してください。拡張機能やキャッシュの影響を避けるため、シークレットウィンドウが向いています。
ここでutmが消えていれば、原因はGA4ではなくリダイレクトやLP側です(原因②)。GA4の設定をいくら触っても直りません。逆に残っていれば、次に進みます。
②DebugViewでpage_viewのcampaign値を確認する
DebugViewとは、GA4に届いたイベントをほぼリアルタイムで1件ずつ確認できる診断画面です。デバッグモードを有効にした状態(Google タグマネージャー(GTM)のプレビューモード、または Tag Assistant 経由など)で、utm付きURLにアクセスします。
DebugViewで session_start や page_view を選び、パラメータ欄の campaign、source、medium が想定どおりの値かを見ます。値が入っていれば、GA4への送信は成功しており、あとはレポート側の話です。DebugViewにイベント自体が出ない場合は、DebugViewにイベントが表示されない時の確認手順を先に確認してください。
③トラフィック獲得レポートで48時間後に確認する
トラフィック獲得レポートとは、セッション単位で流入元を集計する標準レポートです。「レポート」→「集客」→「トラフィック獲得」を開き、ディメンションを「セッションのキャンペーン」「セッションの参照元/メディア」に切り替えて確認します。
標準レポートには処理ラグがあり、公式ヘルプでも最大24〜48時間程度かかる場合があるとされています。当日の数字が空でも、DebugViewで値が確認できていれば慌てる必要はありません。
原因①:utmの表記ルール違反(最頻出)
utmが反映されない原因のうち、最初に疑うべきは表記の問題です。必須パラメータの欠落、綴りの違い、大文字小文字、スペースや日本語など、URLを人手で組み立てる限り起きやすく、修正も最も簡単です。
utm_sourceが無いと他のutmも無効になる
キャンペーンURLビルダー(Campaign URL Builder)では、utm_source、utm_medium、utm_campaignが入力の基本です。実務でよくある失敗は、utm_campaignだけを付けたURLです。GA4では、sourceが欠けたURLは参照元として成立しにくく、campaignも意図どおりに拾われないと言われています。
utm_source、utm_medium、utm_campaignの3点セットで付ける。これを最低ラインにしてください。
大文字小文字・スペース・日本語値のつまずき
GA4のutm値は大文字小文字を区別します。Newsletter と newsletter は別々の行として集計され、レポートが分裂します。よくある失敗パターンは次のとおりです。
utm_medium=Emailとutm_medium=emailが混在するutm_campaign=spring saleのようにスペースが入り、%20や+に変換されて表記が揺れるutm_camaignのようなパラメータ名そのもののタイポ- 全角文字の
=や&が混入して、パラメータが分割されない - 日本語のキャンペーン名が、配信ツールによって二重にエンコードされる
日本語値は仕様上使えますが、ツールを経由する間に文字化けや二重エンコードが起きやすい傾向があります。運用としては、半角英数字と区切り文字だけに寄せるのが安全です。
キャンペーンURLビルダーで作り直す手順
手入力で組んだURLを疑うなら、作り直すのが最短です。
- Google の Campaign URL Builder を開く
- サイトURLに、https から始まる完全なURLを入れる
- source、medium、campaign を小文字の半角英数字で入力する
- 生成されたURLを、そのままシークレットウィンドウで開いて確認する
Unassignedが出ている場合は、mediumの値をGA4のデフォルトチャネルグループが認識する語(email、cpc、social など、公式ヘルプに一覧のあるもの)に寄せるだけで直ることがあります。
原因②:リダイレクト・LP実装でパラメータが剥がれる
アドレスバーの時点でutmが消えているなら、原因はリダイレクトかLP側の実装です。GA4の設定に問題はなく、タグが読む前にURLからパラメータが失われている状態です。
リダイレクトでutmが消えるかを1分でテストする
短縮URL、http から https への転送、www ありなしの統一、末尾スラッシュの正規化、CMSの旧URL転送などで、クエリ文字列が引き継がれない設定があります。テストは簡単です。
- utm付きURLをシークレットウィンドウで開く
- 表示されたページのアドレスバーにutmが残っているか見る
- 消えていれば、ブラウザの開発者ツールの「ネットワーク」タブで、どの転送(301/302)で消えたかを特定する
広告側で同じ問題が起きるケースは、GCLIDが遷移先LPで消える原因と対処手順で詳しく扱っています。gclidもutmも「クエリ文字列が消える」点では同根なので、あわせて確認してください。
GA4タグより先にURLが書き換わるパターン(JS・canonical遷移)
もう一つ見落とされやすいのが、クライアント側の書き換えです。SPAのルーターがページ表示直後にクエリを落とす、JavaScriptで別URLへ遷移させる、ページ読み込み時に history.replaceState でクエリを除去する、といった実装が該当します。GA4のタグ(Googleタグ)やGTMのタグが発火する前にURLが変わると、GA4はutmのないURLを見ることになります。
GTM側でも、カスタムHTMLタグやページURL変数の加工で、クエリを除去していないか確認してください。Analytics Mania でも、GTMでの削除やJSリダイレクトは原因の代表例として挙がっています。ここは技術部門と連携が必要になるため、「どのタイミングで消えたか」を開発者ツールのスクリーンショットで渡すと話が早く進みます。
原因③:Google広告の自動タグ(gclid)とutmの競合
Google広告を出稿しているサイトでutmが効かない場合、自動タグ設定(gclid)との優先関係が原因であることが多く、GA4のプロパティ設定1つで挙動が変わります。
gclidとutmが同時に付いた時のGA4の挙動
自動タグ設定とは、Google広告がクリック時にURLへgclidを自動付与し、GA4側で広告データと連携する仕組みです。Attri の「Google Ads Auto-Tagging and UTMs: Run Both」では、gclidとutmが同時に付くとGA4はgclidを優先して参照元を判定すること、その優先関係はプロパティ設定で反転できることが整理されています。
結果として、utm_source=google、utm_medium=cpc、utm_campaign=任意の名前 を手動で付けていても、gclidが優先されるとキャンペーン名はGoogle広告側の名称で表示されます。「utm_campaignを付けたのに違う名前が出る」現象の正体はこれです。
『手動タグ設定を自動タグ設定より優先する』を有効にすべきケース
GA4の管理画面には、データストリームの詳細設定に「手動タグ設定を自動タグ設定より優先する」という項目があります。有効にすると、utmとgclidが両方ある場合にutmが優先されます。判断は次のとおりです。
- Google広告のデータと連携して分析したい(コンバージョンの取り込み、キャンペーン名の一致):無効のまま(デフォルト)。自動タグを主にする
- 広告以外のツールで付けたutmを、Google広告の流入でも統一して集計したい:有効を検討する。ただしGoogle広告側の費用やクリックとの紐づけが弱まる点を理解した上で選ぶ
設定は、変更以降のデータにしか効きません。過去分は書き換わらないため、切り替え日を必ずメモしておきます。
Google広告のutmはキャンペーン名を管理画面と揃える
広告にもutmを付ける場合は、utm_campaignの値をGoogle広告の管理画面のキャンペーン名と揃えるのが原則です。ずれていると、同じ施策がGA4の中で二重の行に分かれ、比較しにくくなります。自動タグがあれば原則utmは不要で、付けるのは他媒体と表記を統一したい場合や、自動タグが使えない経路がある場合に限る、と考えると迷いません。
原因④:設定は正しいのに反映されない仕様系のケース
URLも設定も正しいのに反映されない場合、GA4の仕様に原因があることが多く、設定を触り続けても直りません。セッションスコープ、同意モード、処理ラグの3点を順に確認します。
utmはセッション開始時にしか評価されない
utmの評価は、セッションが始まる時点で行われます。Optizent の「Why Are My UTMs in the URL, But GA4 Still Says Direct or (not set)?」でも、この点が「URLに付いているのにGA4が拾わない」現象の主因として説明されています。
具体的には、次のような場面です。
- すでにサイトを閲覧中のユーザーが、メルマガのリンクを新しいタブで開いた(セッションが継続していれば新しいセッションにならない)
- 自社サイト内のリンクにutmを付けた(サイト内遷移ではセッションが変わらず、参照元が上書きされないうえ、元の参照元を失うリスクもある)
- テスト時に、同じブラウザで連続してURLを開いた
テストで再現しないときは、セッションを切る(シークレットウィンドウを開き直す、30分以上待つ)ことが必要です。セッション単位の参照元とユーザー単位の参照元の違いは、セッションの参照元とユーザーの最初の参照元の違いで整理しています。
Cookie同意バナー導入後に(not set)が増える理由
同意モード(Consent Mode)とは、ユーザーの同意状態に応じてGoogleのタグの動作を切り替える仕組みです。LinkUTM の「GA4 Source/Medium Shows (not set)? 7 Causes + Fixes」では、基本モードで同意が得られない場合、タグが送信されずsession_startやアトリビューション情報が丸ごと欠落することが指摘されています。
日本でも同意バナーを導入する企業が増えており、導入直後に(not set)やdirectが増える相談は今後増えると考えられます。確認のポイントは、同意を拒否した状態と許可した状態で、DebugViewの結果が変わるかどうかです。許可時だけ値が入るなら、utmの問題ではなく同意設計の問題です。高度な同意モードではモデリングで補完される範囲がありますが、補完の程度は条件に左右されるため、期待しすぎないことが大切です。
反映まで最大48時間かかる:待つべきか動くべきかの判断
標準レポートの処理ラグは最大24〜48時間とされています。判断は簡単で、DebugViewまたはリアルタイムレポートで値が見えているなら待つ、そこでも見えないなら動く、です。48時間が過ぎてもレポートに出ない場合は、DebugViewの結果を持って原因①〜③に戻ります。
再発防止:utm命名ルールをチームで固定する
utmのトラブルは、ルールが個人の頭の中にある限り繰り返されます。小文字統一、命名規則、発行管理シートの3つをチームで固定することが、最も費用対効果の高い再発防止策です。
最低限決める3つのルール(小文字・区切り文字・media/campaignの語彙)
- すべて小文字:大文字小文字による集計の分裂を防ぐ
- 区切り文字はアンダースコアかハイフンのどちらか一方:スペースは使わない
- utm_mediumとutm_campaignの語彙を決める:mediumは email、cpc、social など、GA4のデフォルトチャネルグループが認識する語に限定し、campaignは「年月_施策名」のような形式にする
mediumを標準語に寄せておけば、Unassignedやdirect混在の予防にもなります。分類自体の修正は、GA4のチャネル分類(Direct/Paid混在)を正す方法、独自の分類を設計する場合はカスタムチャネルグループでのUTMガバナンス設計が参考になります。メルマガ経由の流入を整えたい場合は、GA4で参照元をEmailに分類する設定手順もあわせてどうぞ。
utm発行管理シートの作り方
スプレッドシートで十分です。列は、発行日、担当者、媒体・配信先、utm_source、utm_medium、utm_campaign、完成URL、備考の8列程度が実用的です。
作り方のコツは、source・mediumの列をプルダウンにして、選択肢以外を入力できなくすることです。完成URLは関数で自動生成し、手入力の余地を消します。あわせて、シートに書かれていないURLは配らない、という運用ルールを置いてください。
よくある質問
Q:GA4でutmパラメータはどこで見られますか?
トラフィック獲得レポート(レポート→集客)で、ディメンションを「セッションのキャンペーン」や「セッションの参照元/メディア」に切り替えると確認できます。より細かく見たい場合は、「探索」で自由形式のレポートを作り、セッションのsource、medium、campaignをディメンションに設定します。
Q:utm_campaignだけ付ければ計測されますか?
計測されにくいため推奨されません。utm_sourceが欠けると参照元として成立せず、campaignも意図どおり集計されないことがあります。source、medium、campaignの3点セットで付けるのが基本です。
Q:utmを付けたのに反映されるまでどれくらいかかりますか?
標準レポートでは、最大24〜48時間程度の処理ラグがあるとされています。すぐに確認したい場合は、DebugViewやリアルタイムレポートを使ってください。そこで値が見えていれば、送信自体は成功しています。
Q:Google広告のURLにもutmパラメータを付けるべきですか?
原則は自動タグ設定(gclid)で十分です。付ける場合は、gclidとutmが両方あるとGA4がgclidを優先する仕様を理解した上で、utm_campaignの値をGoogle広告の管理画面のキャンペーン名と揃えてください。
Q:(not set)とUnassignedはどう違いますか?
(not set)は参照元情報そのものが届いていない状態で、Unassignedは値は届いているもののデフォルトチャネルグループの分類ルールに合わない状態です。前者はURL・リダイレクト・仕様を、後者はutm_mediumの表記を疑います。
真策堂では、GA4の計測設計やutm運用ルールの整備について、広告運用の視点を含めたご相談を受けています。計測の不整合でお困りの際は、お気軽にお問い合わせください。
- アクセス解析
GA4の参照元にStripe・PayPalが混ざる原因と除外設定|CVの参照元が決済ドメインに奪われる時の直し方
GA4のCVの参照元がstripe.comやpaypal.comに奪われる原因を仕組みから解説。「除外する参照のリスト」の設定手順、日本の決済・3Dセキュア系の除外ドメイン早見表、設定しても直らない時の5つの原因切り分けまで、広告評価を守る実務手順をまとめました。
- アクセス解析
GA4の予測オーディエンスが利用できない原因と条件確認手順|要件を満たせない時の代替設計
GA4の予測オーディエンス「購入の可能性が高いユーザー」が作成できない・利用不可になる原因を、purchaseイベント設計・リピーター1,000人×2のデータ量・モデル品質・反映ラグの4系統で切り分け。要件を満たせない中小ECのための代替設計3段階まで実務手順で解説します。
- アクセス解析
GA4のitemsが(not set)になる原因と修正手順|purchaseは計測されるのに商品名が出ない時の切り分け
GA4のeコマースで商品名・itemsが(not set)になる原因を、収集側(dataLayer・GTM・ecommerce:nullクリア忘れ)とレポート表示側(ディメンションのスコープ不一致)の2系統で切り分け。DebugViewでの5分判定から修正・検証まで、当日中に解決できる実務手順で解説します。