本文へ移動

HubSpotのCookie同意管理をどう設定する?GA4・Clarity連携と国別対応、計測確認まで

HubSpotのCookie同意管理は、バナーを表示するだけの機能ではありません。対象国やCookieの用途に応じて選択を受け取り、保存し、計測ツールの動作へつなぐための仕組みです。

当サイトでも、GA4とMicrosoft Clarityを導入する際に、同意バナー、内部アクセスの除外、各ツールへの送信を見直しました。きっかけは「HubSpotのブログには閲覧があるのに、GA4はゼロに見える」という状態です。ただし、両者は計測・集計の仕組みが違うため、数字の差だけでは不具合とは判断できません。

この記事では、HubSpotの同意ツールでできることから、GA4・Clarityとの連携、国別の設定、計測の確認方法までを整理します。標準機能でできる部分と、当サイトが独自コードを採用した部分を分けて紹介します。

この記事の読み方

HubSpotでWebサイトを運用する担当者向けに、設定から計測確認までを紹介します。

  • まず標準設定:バナーの対象・方式・カテゴリーを決めます。国別の設定もHubSpotで行えます。
  • 次に計測との連携:アクセス解析のGA4、タグ管理のGTM、録画・ヒートマップのClarityへ、同意をどう伝えるか確認します。
  • 最後に動作確認:許可・拒否・再訪を試し、Cookieとサービス側の受信を確かめます。

独自コードは当サイトの事例として紹介します。公式資料は末尾の参考情報にまとめています。

同意管理は、画面・保存・送信・レポートの4段階で考える

Cookieは、ブラウザに保存される小さなデータです。同意の選択を保持するものと、閲覧分析や広告に使うものでは目的が異なります。この記事では、サイトの動作に必要な「必須」と、分析・広告などの「任意」を分けて扱います。

まず、同意管理を一つの設定として見ず、4つの確認箇所に分けてみます。

同意管理の4段階。1同意画面で用途を伝え選択を受け取る、2Cookie保存で選択を保持する、3タグ送信でGA4やClarityへ状態を渡す、4レポートで受信と集計条件を確認する。
図1:バナーの表示からレポートまで、4つの確認箇所を整理。厳密な処理順序を示す図ではありません。

同意画面は、訪問者がCookieの用途を知り、選択する場所です。Cookie保存では、選択した状態を保持し、その状態に応じて任意Cookieを扱います。タグ送信では、GA4やClarityに同意状態を伝え、各ツールの動作を調整します。最後にレポートで、実際に届いたデータを確認します。

バナーの表示と、計測ツールへの同意連携は、別々に確認します。「必須のみ」を選べても、外部タグがその選択を受け取っていなければ、設定はつながっていません。拒否後の通信についても、採用した方式に照らして判断します。

なお、ここで扱うのはWebサイトのCookie同意です。問い合わせフォームでの個人情報の取り扱いや、マーケティングメールの購読同意とは区別して設計します。

HubSpotの同意バナーを設定する

HubSpotでは、対象ドメインやURL、訪問者の国に応じて同意バナーを設定できます。まずは管理画面の「設定」から「プライバシーと同意」へ進み、「Cookie」で対象ドメインを開きます。設定には、スーパー管理者またはWebサイト設定を編集できる権限が必要です。

HubSpotのプライバシーと同意のCookie設定。対象ドメインに、全ての国向けと日本向けの二つの有効なバナーが並んでいる。
当サイトの設定例。全ての国を対象にする基本ルールと、日本向けの個別ルールを用意しています。2026年10月10日取得。

最初に決めるのは、対象と同意の方式

新しいバナーを作るときは、次の順に決めると整理しやすくなります。

バナー設定で決める5項目。対象ドメイン・URL・国、同意方式、カテゴリー、説明と操作、設定の再表示。
図2:設定前に決める5項目。どこに表示し、何を選べて、後からどう変えられるかを整理します。
  1. 対象:どのドメイン・URL・国に適用するか。
  2. 方式:通知のみ、オプトイン、オプトアウトのどれを使うか。
  3. カテゴリー:分析、広告、機能などを分けて選べるようにするか。
  4. 説明と操作:用途の説明、プライバシーポリシー、ボタンの文言をどう表示するか。
  5. 再表示:一度閉じた後、どこから設定を変更できるようにするか。

オプトインは、任意Cookieの利用を未許可から始め、利用者の選択を待つ方式です。オプトアウトは、適用するルールの範囲で初期状態を許可とし、利用者が拒否できる方式です。「通知のみ」は選択を取得する方式と同じではありません。

どの方式にするかを、アクセス数を多く取りたいという理由だけで決めるのは避けたいところです。Cookieの用途や対象地域、利用するツールの条件を整理したうえで選びます。

HubSpotの同意バナー対象設定。URLパス、適用国、GPCへの対応を選べる。全ての国向け基本ルールの例では国欄は未選択。
対象設定の実画面(2026年10月10日)。国を指定しない基本ルールの例です。特定の国向けルールは国欄で対象を選びます。画像を押すと拡大できます。
HubSpotのバナー方式設定。通知、オプトイン、オプトアウトを選べ、オプトインにはカテゴリー別選択のチェック項目がある。
方式設定の実画面(2026年10月10日)。基本ルールはオプトインとカテゴリー別選択を使用しています。撮影のために設定を変更・公開したものではありません。

見た目を変える前に、設定変更の導線を作る

バナーの位置や色などは管理画面から調整できます。ただし、標準のスタイル編集には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を使うだけで高度な方式になるわけではない。
タグを手動設置・外部サイトで利用初期状態と変更を渡す同意連携を、別途実装しているか。
HubSpotのページ設定で対象ドメインを選び、連携タブを開いた画面。Googleアナリティクス4、Googleタグマネージャーとの連携項目がある。
標準連携の設定場所(2026年10月10日)。「設定 → コンテンツ → ページ → 対象ドメイン → 連携」で設定します。当サイトはGTMを直接設置しているため、この標準連携は有効にしていません。二重設置を避け、採用する経路だけを設定してください。

なぜ当サイトは、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を使わない限定的な計測があり得るため、「拒否=一切通信しない」という設計ではありません。

HubSpotの同意を独自コードがGoogle Consent Modeへ通知し、GTM内のGoogleタグとClarityタグが共通利用する流れ。すべて許可は分析Cookie利用と広告同意、分析のみは分析Cookie利用と広告拒否、必須のみは分析Cookieなしと広告拒否。
図4:当サイトの同意連携。上段は共通の同意を渡す流れ、下段は3つの選択による違いです。GA4とClarityのタグはGTMから配信し、それぞれのサービスへデータを送ります。必須のみでも、現在の構成では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の選択GoogleClarityが自動認識する信号
分析analytics_storageGoogleのanalytics_storage
広告ad_storage
ad_user_data
ad_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と通信・サービス側の受信を照合する。
図5:分析だけを許可した後に拒否へ変更し、再訪時の保存と、その後の変更まで確かめるテスト例。

見るポイントは、毎回同じです。画面の選択、各サービスに渡る同意状態、ブラウザのCookieと通信、サービス側の受信を照らし合わせます。

操作確認する結果
初回訪問対象地域の初期設定が適用され、タグより前に同意の初期値が設定される。
分析のみ許可分析は許可、広告は拒否のまま、GA4・Clarityへ反映される。
必須のみへ変更任意カテゴリーの拒否が反映される。通信の有無は採用した方式に照らして判断する。
再訪・別ページへ移動保存した拒否が維持され、ページによって状態が食い違わない。
設定を開き直して全て許可分析に加えて広告も許可へ変わり、その結果が各ツールに届く。検証後は元の選択に戻す。

「タグ発火」と「サービス側への到着」を別々に確認する

Google側はTag Assistantで、最初の同意状態と操作後の更新、タグの動作を確認できます。そのうえで、GA4のリアルタイム等でテストしたイベントの到着を確認します。Clarityも、テストしたURLや操作をサービス側で照合します。

Tag Assistantの同意画面。analytics_storageだけがデフォルトの拒否から更新後の付与になり、ad_storage、ad_user_data、ad_personalizationは拒否のまま。
分析のみ許可した後のTag Assistant画面(2026年10月10日)。analytics_storageは拒否から付与へ更新され、広告関連3項目は拒否のままです。検証後は必須のみに戻しました。

当サイトで確認した範囲

  • 検証ページ:実際の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バナーのクリック」を集計すると、カテゴリー別の選択を確認できます。下の画面では、分析の同意状態、クリック件数、広告の同意状態を列にしています。

  1. 「レポートを作成」→「カスタムレポート」で、独自にデータソースを選択し「Cookieバナー」を指定します。
  2. 「Cookieバナーのクリック」を選び、analytics category consent、クリック件数、advertisement category consentを追加します。
  3. 対象期間・ドメイン・国など、比較する範囲をそろえます。表示回数を調べる場合は「Cookieバナーの表示」を使います。

レポートで混ぜない3つの数字

  • 初期状態の許可:地域ルールによる許可。ボタンを押した同意とは区別します。
  • 分析への同意:分析がyesの操作。「全て許可」とは限りません。
  • 全て許可のクリック:そのボタンを押した操作。カテゴリーのyesだけで判断しません。

率を出す場合は、バナー表示を分母にするのか、選択操作を分母にするのかを決めます。再表示・再クリックや検証操作の扱いもそろえてください。

独自デザインにしたら、更新時の確認も残す

独自バナーはサイトのデザインに合わせやすい一方、HubSpot側のHTML構造が変わると調整が必要になる場合があります。実際に、バナーv1からv2への移行告知でも、独自CSS・JavaScriptへの影響が案内されています。

公開時の設定だけでなく、変更した日、適用する国、計測タグの設置場所、テストした選択状態を残しておくと、後から数字が変わったときに調べやすくなります。UIやタグを更新したら、図5の手順で再確認します。

最初に行うのは、HubSpotの標準バナーの対象・方式・カテゴリーを決めることです。その後、計測タグの設置経路を一つにそろえ、許可・拒否・再訪で確認します。独自コードは、標準連携では満たせない要件がある場合に検討してください。

参考情報・公式リファレンス

本文の設定・仕様の確認に使用した公式資料です。確認日:2026年10月10日。画面や提供プラン、仕様は変更される場合があります。設定時はリンク先の最新情報も確認してください。

HubSpot

Google Analytics・Google Tag Manager

Microsoft Clarity

制度に関する資料

ページの先頭へ戻る

お問い合わせ

お気軽にご相談ください