HubSpotのCookie同意バナーでできること、GA4・GTM・Clarityへの同意連携、国別設定、設定後の検証手順を解説。実際の設定・受信確認をもとに、アクセス数が異なるときの確認点も整理します。
HubSpotのCookie同意管理は、バナーを表示するだけの機能ではありません。対象国やCookieの用途に応じて選択を受け取り、保存し、計測ツールの動作へつなぐための仕組みです。
当サイトでも、GA4とMicrosoft Clarityを導入する際に、同意バナー、内部アクセスの除外、各ツールへの送信を見直しました。きっかけは「HubSpotのブログには閲覧があるのに、GA4はゼロに見える」という状態です。ただし、両者は計測・集計の仕組みが違うため、数字の差だけでは不具合とは判断できません。
この記事では、HubSpotの同意ツールでできることから、GA4・Clarityとの連携、国別の設定、計測の確認方法までを整理します。標準機能でできる部分と、当サイトが独自コードを採用した部分を分けて紹介します。
この記事の読み方
HubSpotでWebサイトを運用する担当者向けに、設定から計測確認までを紹介します。
- まず標準設定:バナーの対象・方式・カテゴリーを決めます。国別の設定もHubSpotで行えます。
- 次に計測との連携:アクセス解析のGA4、タグ管理のGTM、録画・ヒートマップのClarityへ、同意をどう伝えるか確認します。
- 最後に動作確認:許可・拒否・再訪を試し、Cookieとサービス側の受信を確かめます。
独自コードは当サイトの事例として紹介します。公式資料は末尾の参考情報にまとめています。
同意管理は、画面・保存・送信・レポートの4段階で考える
Cookieは、ブラウザに保存される小さなデータです。同意の選択を保持するものと、閲覧分析や広告に使うものでは目的が異なります。この記事では、サイトの動作に必要な「必須」と、分析・広告などの「任意」を分けて扱います。
まず、同意管理を一つの設定として見ず、4つの確認箇所に分けてみます。

同意画面は、訪問者がCookieの用途を知り、選択する場所です。Cookie保存では、選択した状態を保持し、その状態に応じて任意Cookieを扱います。タグ送信では、GA4やClarityに同意状態を伝え、各ツールの動作を調整します。最後にレポートで、実際に届いたデータを確認します。
バナーの表示と、計測ツールへの同意連携は、別々に確認します。「必須のみ」を選べても、外部タグがその選択を受け取っていなければ、設定はつながっていません。拒否後の通信についても、採用した方式に照らして判断します。
なお、ここで扱うのはWebサイトのCookie同意です。問い合わせフォームでの個人情報の取り扱いや、マーケティングメールの購読同意とは区別して設計します。
HubSpotの同意バナーを設定する
HubSpotでは、対象ドメインやURL、訪問者の国に応じて同意バナーを設定できます。まずは管理画面の「設定」から「プライバシーと同意」へ進み、「Cookie」で対象ドメインを開きます。設定には、スーパー管理者またはWebサイト設定を編集できる権限が必要です。

最初に決めるのは、対象と同意の方式
新しいバナーを作るときは、次の順に決めると整理しやすくなります。

- 対象:どのドメイン・URL・国に適用するか。
- 方式:通知のみ、オプトイン、オプトアウトのどれを使うか。
- カテゴリー:分析、広告、機能などを分けて選べるようにするか。
- 説明と操作:用途の説明、プライバシーポリシー、ボタンの文言をどう表示するか。
- 再表示:一度閉じた後、どこから設定を変更できるようにするか。
オプトインは、任意Cookieの利用を未許可から始め、利用者の選択を待つ方式です。オプトアウトは、適用するルールの範囲で初期状態を許可とし、利用者が拒否できる方式です。「通知のみ」は選択を取得する方式と同じではありません。
どの方式にするかを、アクセス数を多く取りたいという理由だけで決めるのは避けたいところです。Cookieの用途や対象地域、利用するツールの条件を整理したうえで選びます。


見た目を変える前に、設定変更の導線を作る
バナーの位置や色などは管理画面から調整できます。ただし、標準のスタイル編集にはMarketing HubまたはContent HubのStarter以上が必要です。基本の同意機能と、デザインやレポートの機能では提供条件が異なります。
独自のHTML・CSS・JavaScriptで見た目を調整することもできます。当サイトでは、説明文と操作をコンパクトにまとめ、本文中のプライバシーポリシーにリンクを設けました。フッターからもCookie設定を開けるようにしています。

独自画面にする場合も、まずは標準の同意管理を利用できないか検討するのがおすすめです。見た目だけを隠したいのに、HubSpotの同意管理自体を停止してしまう設定もあるため、表示と動作の両方を確認します。
GA4・GTM・Clarityへ同意状態をつなぐ
次に確認するのが、計測タグをどこから設置しているかです。HubSpotの標準連携、GTM経由、ページへの直接記述が混在していると、同意の制御先が分からなくなったり、同じイベントを重複して送信したりする原因になります。
GA4とGTMの標準連携では、同意モードが異なる
ここでいう「標準連携」は、HubSpotの設定画面にGA4の測定ID(G-…)またはGTMのコンテナID(GTM-…)を入力する方法です。ページのヘッダーへコードを直接貼り付ける方法とは区別します。
HubSpotの2026年9月更新の専用ドキュメントでは、HubSpotでホストしたサイトとオプトインバナーを使う場合、標準のGA4連携は「高度な同意モード」、標準のGTM連携は「基本的な同意モード」に対応すると説明されています。
| 設置方法 | 確認すること |
|---|---|
| HubSpotにGA4測定IDを設定 | 標準連携の条件を満たしているか。GTMやページ側にも同じ測定IDがないか。 |
| HubSpotにGTM IDを設定 | コンテナ配下のタグと、その同意条件。GTMを使うだけで高度な方式になるわけではない。 |
| タグを手動設置・外部サイトで利用 | 初期状態と変更を渡す同意連携を、別途実装しているか。 |

基本的な方式と高度な方式で、計測できる範囲が変わる
違いは、分析を許可する前や拒否している間に、Googleへ信号を送るかどうかです。「基本的/高度」は、機能の簡易版・上位版という意味ではありません。
図は、分析未許可から始まる訪問を比較しています。地域ルールや保存済みの選択によって最初から許可されている場合は、上段の動作になります。広告の同意は別に判定します。

たとえば、100回の訪問のうち40回が途中で分析を許可し、60回は許可せず離脱するとします。許可前の行動と60回の離脱までの行動は図の下段、40回の許可後の行動は上段に当たります。説明用の仮例で、当サイトの実測値ではありません。
Cookieなしの信号を送れても、通常の訪問と同じようにレポートで把握できるとは限りません。具体的な条件は、後半の行動モデリングの説明で紹介します。
| 確認する点 | 基本的な方式 | 高度な方式 |
|---|---|---|
| Googleタグの読み込み | 分析の許可を待って読み込む。 | 未許可でも読み込み、同意状態に応じて動作を変える。 |
| GA4の行動モデリング | 高度な実装を必要とする行動モデリングの前提を満たさない。 | 実装方式の前提を満たす。ただしデータ量などの条件があり、補完の適用は保証されない。 |
| 当サイトの選択 | 採用していない。 | GTMの直接設置と独自連携で採用。この構成を選んだ理由を次に説明する。 |
方式を切り替えると、集客が変わらなくても計測値が変わり得ます。変更日と同意条件を記録し、URL・期間・指標・内部除外などをそろえて評価します。
図3とこの表はGoogleタグ・GA4の比較です。Clarityを含む当サイトの連携は、次の図4で示します。
なぜ当サイトは、GTMの直接設置と独自連携を選んだのか
当サイトで両立させたかったのは、GTMでGA4・Clarityの配信をまとめることと、Googleタグを高度な同意モードで動かすことです。HubSpot標準のGTM連携は基本的な方式なので、ID入力だけでは、この組み合わせになりません。
そこで、GTMをページに直接設置し、HubSpotの同意状態をGoogle Consent Modeへ渡す連携コードを用意しました。これにより、HubSpotに国別ルールと選択の保存を任せながら、Googleタグは未許可時にCookieなしの信号を送る方式にできます。Clarityは同じGoogle Consent Modeの分析・広告の状態を自動認識します。
同じ独自実装を、全てのサイトで行う必要はありません。GA4だけを標準連携する場合でも高度な同意モードは使えます。また、GTM経由で同意前のタグ読み込みを止める設計なら、標準GTM連携が候補です。採用する設置経路を一つに決め、二重にタグを設置しないようにします。
当サイトの連携コードは、GTMより前に任意カテゴリーを拒否として初期化し、HubSpotから地域ルール・保存済みの選択・操作結果が届くと更新します。拒否時はCookieを使わない限定的な計測があり得るため、「拒否=一切通信しない」という設計ではありません。

分析と広告は、別々の選択です。「分析のみ」では広告は拒否のまま。「必須のみ」では分析Cookieを使いませんが、現在の構成ではCookieなしの限定的な計測があります。また、「すべて許可」を押しても、未設置の広告タグや広告連携が自動で追加されるわけではありません。
図は仕様に基づく比較です。初回・選択変更・再訪時の状態とCookieを検証しましたが、拒否時の全通信を網羅した結果ではありません。
独自コードは、HubSpotのサイト共通ヘッダーHTMLに設置しています。別の実行サーバーや追加の同意管理ツールは使っていません。ただし、GTMとGA4・Clarityの管理画面でも設定が必要です。
この方法では、JavaScriptとタグ設定の知識を持つ担当者が、初期値・更新順序・拒否への変更をテストします。ID入力だけの標準連携より導入と保守の作業が増えるため、実装を選ぶ前に担当者を決めておきます。
Google Consent Modeを共通利用する主な利点は、同意を渡す処理を一つにして保守しやすくすることです。ページ速度の改善は測定しておらず、自動認識だけで連携漏れを防げるわけでもありません。内部アクセス除外は、同意連携とは別に設定します。
Clarity側も「同意を待つ」設定にする
共通の信号を使う場合でも、Clarityの管理画面を確認します。当サイトでは「Settings → Setup → Cookie」をオフにして、同意が届くまでClarityのCookieを使わない状態にしました。このオフ設定は、許可後のCookie利用まで禁止する意味ではありません。有効な同意を受け取った後は、その状態に従って動作します。
個別通知を削除する前に確認
当サイトの検証では、Cookieが初期状態でオンのままだと、Googleは拒否でもClarityは許可として始まるケースがありました。Cookieをオフにしてから、初回・分析のみ・全て許可・拒否への変更・再訪を確認し、公開コードを切り替えました。自動認識に対応していることと、実際の設定が正しくつながることは別です。
分析と広告の選択を、別々に渡す
手動で連携する場合は、HubSpotのaddPrivacyConsentListenerからカテゴリーごとの状態を受け取り、各サービスに反映します。主な対応は次のとおりです。
| HubSpotの選択 | Clarityが自動認識する信号 | |
|---|---|---|
| 分析 | analytics_storage | Googleのanalytics_storage |
| 広告 | ad_storagead_user_dataad_personalization | Googleのad_storage |
「分析だけ許可、広告は拒否」を選んだときに、広告の項目まで許可にならないことを確認します。初期状態はタグが動く前に設定し、操作後には変更を伝えます。GTM内部でこの処理を実装する場合は、同意APIを使うテンプレートを利用するなど、Googleの推奨手順に従います。
当サイトではClarityへのconsentv2の個別呼び出しを削除し、Google Consent Modeを自動認識させています。ここでいう同意連携は、HubSpotのコンタクト画面にClarityの録画を表示するアプリ連携とは別です。アプリが接続できても、Cookieの選択まで連携済みとは判断できません。CRM側の接続については、HubSpotとMicrosoft Clarityの連携で紹介しています。
日本と海外で設定を分けられるか
国ごとの対応は、HubSpot標準の対象国設定で行えます。HubSpotがIPアドレスから国を判定するため、国別設定のためだけにCloudflareなどの外部サービスを必ず追加する必要はありません。
当サイトでは、日本向けをオプトアウト、その他を対象にする基本ルールをオプトインとして設定しました。地域判定と同意の保存はHubSpotに任せ、独自コードはその結果を画面や計測ツールへ伝える役割にしています。
国別設定は、そのまま流用しない
日本だから一律にオプトアウトでよい、という意味ではありません。Cookie関連情報の性質、利用目的、提供先、適用される制度やサービスの条件によって判断は変わります。この記事の設定例は、全てのサイトにそのまま当てはめるルールではありません。
国別設定で確認したいのは、対象国を選べるかだけではありません。どの個別ルールにも当てはまらない場合、国を判定できない場合、以前に拒否した人が再訪した場合にも、設計した状態になる必要があります。地域の初期設定によって、過去の明示的な拒否を上書きしないようにします。
当サイトでは実際のHubSpotスクリプトを使ったローカル環境で地域条件を検証しました。ただし、日本以外の実回線から初回訪問した場合の本番検証までは終えていません。IPによる判定の確認では、ブラウザの位置情報を変更しただけで確認済みとしないことも大切です。
国別の初期設定を採用する前には、個人関連情報の取り扱いや外部送信規律など、自社に適用される条件も確認します。
設定後は、選択を変えながら動作を確認する
公開後は、バナーのボタンを一度押して終わりにせず、状態を変えながら確認します。次の図は、そのためのテスト順序の例です。

見るポイントは、毎回同じです。画面の選択、各サービスに渡る同意状態、ブラウザのCookieと通信、サービス側の受信を照らし合わせます。
| 操作 | 確認する結果 |
|---|---|
| 初回訪問 | 対象地域の初期設定が適用され、タグより前に同意の初期値が設定される。 |
| 分析のみ許可 | 分析は許可、広告は拒否のまま、GA4・Clarityへ反映される。 |
| 必須のみへ変更 | 任意カテゴリーの拒否が反映される。通信の有無は採用した方式に照らして判断する。 |
| 再訪・別ページへ移動 | 保存した拒否が維持され、ページによって状態が食い違わない。 |
| 設定を開き直して全て許可 | 分析に加えて広告も許可へ変わり、その結果が各ツールに届く。検証後は元の選択に戻す。 |
「タグ発火」と「サービス側への到着」を別々に確認する
Google側はTag Assistantで、最初の同意状態と操作後の更新、タグの動作を確認できます。そのうえで、GA4のリアルタイム等でテストしたイベントの到着を確認します。Clarityも、テストしたURLや操作をサービス側で照合します。

当サイトで確認した範囲
- 検証ページ:実際のHubSpot配信スクリプトとGTM・Clarityタグで、初回・分析のみ・全て許可・拒否への変更・再訪を確認。日本とその他の国の初期状態は、地域条件を固定してテストしました。
- 本番の同意状態とCookie:共通の信号をClarityが認識すること、必須のみへの変更後と再訪時にGA4・Clarityの分析Cookieが残らないことを確認しました。
- サービス側の受信:一本化前の分析許可テストでは、本番用・検証用GA4で対象イベントを受信し、Clarityでも該当URLの録画を確認しました。これは、一本化後の全条件の受信を保証するものではありません。
確認日:2026年10月10日。海外の実回線、拒否時の全通信、全訪問者・全ページのレポート精度、過去の集計差の全原因は未確認です。ここでは、確認した範囲と一般仕様を区別しています。
計測仕様による差と、送信漏れを分けて確認する
HubSpotとGA4は計測ロジックが異なるため、数字の不一致だけを不具合の根拠にはできません。ページビューとユーザー数を混ぜた比較はもちろん、同じ名前の指標でもセッションの区切り方や除外条件に違いがあります。確認するのは、計測対象にした閲覧が、設計どおり届いているかです。
今回の調査でも、最初に見た集計値だけでは同意や内部除外の条件がそろっていませんでした。そこで、まず下記の条件をそろえた個別テストで、GA4への送信・受信を確認しました。これは集計差の全原因を特定したという意味ではありません。
| 個別テストの前提 | そろえる条件 |
|---|---|
| 対象ページ | 同じ公開ドメイン・URLを開く。HubSpotの編集画面やプレビューと混ぜない。 |
| 同意状態 | 分析を明示的に許可し、GA4側のanalytics_storageにもgrantedが届いていることを確かめる。 |
| 内部除外 | 本番プロパティの除外対象ではないアクセスを使う。内部扱いなら、除外しない検証用プロパティで確認する。 |
| 送信環境 | 対象ページにタグがあり、ブラウザのブロッカー等で通信が遮断されていないことを確認する。 |
| 到着の確認 | 送信先の測定ID・プロパティ・テスト時刻を合わせ、GA4のリアルタイム等で該当イベントを見る。日次レポートの反映待ちと区別する。 |
この条件でもGA4に届かなければ、発火条件・送信先・同意更新の順序を調べます。届くことを確認できたら、次に日次集計の比較へ進みます。
仕様による計測範囲の違いを把握する
HubSpotの公式API資料では、任意Cookieが拒否されても、匿名化したページビューやセッションを集計できると説明されています。一方、継続的な識別や既存コンタクトへの紐付けには制約が生じます。つまり、アクセス集計に数字があることと、その人の行動履歴がCRMに残ることは別です。
Clarityも、Google Consent ModeやConsentV2で分析の拒否状態を受け取ると、Cookieを使わない限定的な計測になります。GA4は基本的な方式と高度な方式でも動作が変わります。そのため「拒否した訪問を、各ツールがどう扱っているか」を確認する必要があります。
GA4の補完を、少ないアクセスでも使える前提にしない
Googleの行動モデリングは、同意したユーザーのデータを基に、欠けた行動を統計的に推定する仕組みです。高度な同意モードに加えて、データ量などの条件があります。分析を拒否した側で1日1,000イベント以上を7日以上、分析を許可した側で1日1,000ユーザー以上の日が直近28日中7日以上、といった条件です。満たしても、適用は保証されません。
アクセスの少ないB2Bサイトで、「同意モードを入れれば見えなくなったデータが全て戻る」と考えるのは避けた方がよいでしょう。
比較の条件をそろえてから、差を調べる
実際に比較するときは、まず次の条件をそろえます。
- 指標:ページビュー同士など、比較する指標をそろえる。ただし、セッションは同じ名称でも定義が異なるため完全一致を求めない。
- 範囲:対象ドメイン、URL、期間、タイムゾーンをそろえ、日次レポートの処理・反映を待つ。
- 除外:内部アクセスやプレビューの扱いを確認する。
- 送信:二重設置、ページごとのタグ漏れ、ブロッカーの影響を点検する。
- 同意:方式・地域・選択状態によって、計測範囲がどう変わるかを見る。
同じ条件のデータを数日分、日付別・ページ別に並べると、特定ページだけの問題か、全体に起きている差かを調べやすくなります。当サイトでも、個別イベントの受信確認と、数日分の集計差の検証は分けて扱っています。
なお、数値だけでは捉えにくい接点を補う方法として、問い合わせ時に「何で知ったか」を尋ねる方法もあります。詳しくは自己申告型アトリビューションの記事で紹介しています。これも全てを正確に把握できる方法ではなく、別の情報を補う手段です。
内部アクセス除外と、運用後の確認
同意と内部アクセス除外を、別の条件として管理する
訪問者の同意と、社員や制作担当者のアクセスを除外する処理は、目的が違います。当サイトでは内部・プレビューの分類情報を送信し、本番用GA4で内部トラフィックを除外、検証用ではその除外をかけずに見比べる構成にしました。
本番用・検証用のどちらにも、同じ同意制御を適用します。内部除外による違いを確認するために分けて使います。また、ブラウザに内部用の印を付ける方式なら、未登録のブラウザやCookie削除後は自動的に内部と判定されるとは限りません。
有効化する前に確認
GA4のデータフィルタは、除外したデータを後から戻せません。まずテスト(Testing)状態で対象の判定を確認し、その後に有効化します。
Clarityの内部除外用の保存セグメントは、表示するセッションを絞るものです。GA4のデータフィルタとは異なり、データを削除する機能ではありません。
同意率を見るときは、何を数えるか決める
バナーを改善したいときも、「同意率」が何を表すかを決めておきます。初期状態で許可になったアクセス、分析だけを許可した人、「全て許可」を押した人は、同じではありません。
HubSpotのカテゴリー別バナーでは、Approved/Declinedイベントは分析への同意を示します。そのまま「全て許可のクリック率」として使うと、意味がずれます。カスタムレポートでバナーの表示やクリックを分析する場合も、対応プランとレポート権限、集計対象を確認してください。
レポートでは、分析と広告を分けて見る
カスタムレポートビルダーでデータソースに「Cookieバナー」を選び、「Cookieバナーのクリック」を集計すると、カテゴリー別の選択を確認できます。下の画面では、分析の同意状態、クリック件数、広告の同意状態を列にしています。

- 「レポートを作成」→「カスタムレポート」で、独自にデータソースを選択し「Cookieバナー」を指定します。
- 「Cookieバナーのクリック」を選び、
analytics category consent、クリック件数、advertisement category consentを追加します。 - 対象期間・ドメイン・国など、比較する範囲をそろえます。表示回数を調べる場合は「Cookieバナーの表示」を使います。
レポートで混ぜない3つの数字
- 初期状態の許可:地域ルールによる許可。ボタンを押した同意とは区別します。
- 分析への同意:分析がyesの操作。「全て許可」とは限りません。
- 全て許可のクリック:そのボタンを押した操作。カテゴリーのyesだけで判断しません。
率を出す場合は、バナー表示を分母にするのか、選択操作を分母にするのかを決めます。再表示・再クリックや検証操作の扱いもそろえてください。
独自デザインにしたら、更新時の確認も残す
独自バナーはサイトのデザインに合わせやすい一方、HubSpot側のHTML構造が変わると調整が必要になる場合があります。実際に、バナーv1からv2への移行告知でも、独自CSS・JavaScriptへの影響が案内されています。
公開時の設定だけでなく、変更した日、適用する国、計測タグの設置場所、テストした選択状態を残しておくと、後から数字が変わったときに調べやすくなります。UIやタグを更新したら、図5の手順で再確認します。
最初に行うのは、HubSpotの標準バナーの対象・方式・カテゴリーを決めることです。その後、計測タグの設置経路を一つにそろえ、許可・拒否・再訪で確認します。独自コードは、標準連携では満たせない要件がある場合に検討してください。
参考情報・公式リファレンス
本文の設定・仕様の確認に使用した公式資料です。確認日:2026年10月10日。画面や提供プラン、仕様は変更される場合があります。設定時はリンク先の最新情報も確認してください。
HubSpot
- Cookie同意API:同意状態の取得・バナーの操作
- 同意バナーの設定:対象国・URL・同意方式
- 同意バナーのスタイル編集と提供条件
- 同意バナーFAQ:独自画面との連携
- Google同意モード:標準GA4/GTM連携の対応方式
- HubSpotバナーとGoogle同意モードの手動連携
- HubSpotとGoogle Analyticsの数値が一致しない理由
- Cookie同意バナーの操作を分析する
- カスタムレポートビルダーと提供条件
- 同意バナーv1からv2への移行と独自実装への影響
Google Analytics・Google Tag Manager
- Google同意モードの概要:基本的/高度な方式
- GA4の行動モデリング:適用条件とレポート表示
- Google同意モードの実装手順
- Tag Assistantでの同意モード検証
- GA4の内部トラフィック除外
Microsoft Clarity
- Clarity ConsentV2:個別通知を使う場合の代替API
- Clarity Consent Mode:Cookie設定・同意待ち・状態の確認
- Clarityの同意管理:分析と広告の同意による動作
- ClarityのGoogle Consent Mode対応
- Clarityの除外フィルター