グローバル サイトタグ(gtag.js)は Google タグに変わりました。詳細

同意設定を管理する(ウェブ)

同意モードを有効にして使用する方法は、同意を取得するための実装と、使用するタグ設定プラットフォーム(Google タグ マネージャー(GTM)または Google タグ)によって異なります。

  • Google の同意モードに対応している同意管理プラットフォーム(CMP)は、以下の機能を提供します。
    • 同意の管理に使用するタグを作成するには、コミュニティ テンプレート ギャラリーのタグ マネージャー テンプレートを使用します。
    • gtag.js を使用して同意を管理するサイト用の JavaScript コードです。
  • 同意モードに対応していないカスタム実装と CMP の場合:
    • GTM を使用している場合は、Tag Manager の同意 API を使用して独自のテンプレートを作成することをおすすめします。次のを参考にしてください。
    • gtag.js を使用する場合は、サイトの各ページに直接的なコマンドまたはカスタム HTML スニペットで同意コードを手動で追加する必要があります。

この記事では、ベスト プラクティスの概要と API の例について説明します。関連情報:

始める前に

同意モードを実装する前に、次の点を考慮してください。

  • デフォルトの同意設定は、訪問者全員ではなく、特定の地域の訪問者を対象にすることをおすすめします。これにより、同意モードのデフォルトを「拒否」に設定していても、同意バナーが不要な地域のユーザーは逃さずに測定できます。詳しくは、特定の地域に限定される動作をご覧ください。

  • CMP を使用している場合、同意の更新コマンドは、デフォルトの同意コマンドで指定されているのと同じ地域のユーザーをターゲットとするよう設定する必要があります。これにより、デフォルトで「拒否」に設定されている同意ステータスをユーザーが更新できるようになります。

  • 独自のテンプレートまたはカスタム HTML タグを作成する場合、コールバックで実行されるコマンドや gtag() を使用するコマンドは、次のトリガーの配信前に使用可能になるとは限りません。同意に関する情報を可能な限り早く収集できるよう、同意ステータスの設定に Tag Manager Consent API を使うタグ テンプレートを使用または作成してください。

デフォルトの同意ステータスは、組織が必要とするデフォルトに応じて、ページの読み込み時にすぐに設定する必要があります。CMP またはカスタムの同意管理ソリューションでは、該当する同意タイプの同意または拒否を訪問者に促す必要があります。また、同意モードによって同意内容が保存されないため、同意に関するあらゆるページで、なるべく早い段階で、ユーザーの同意オプションに基づいて同意モード更新コマンドを発行する必要があります。

gtag.js

次のセクションでは、gtag.js を使った例を示します。

同意ステータスのデフォルト値が設定されていない場合、デフォルト値は granted になります。使用するストレージ タイプごとにデフォルト値を設定することをおすすめします。この記事で説明する同意ステータスの値は一例にすぎません。各測定サービスについて、組織のポリシーに沿ったデフォルト同意モードが設定されているかどうか、ご自身の責任でご確認ください。

デフォルトの測定機能を調整するには、測定データを送信するコマンド(configevent など)の前に、サイトのすべてのページで gtag('consent', 'default', ...) コマンドを呼び出します。たとえば、ad_storageanalytics_storage をデフォルトで拒否するには、consent パラメータで設定を指定します。

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

ユーザーが同意を指定したり、選択内容を変更したりした場合は、測定動作を更新します。同意ステータスが変更されるのは、update 呼び出しに提供されているフィールドのみです。以下の例では、ad_storage 値のみが変更されました。analytics_storagedenied に設定されていた場合、この呼び出しの後も引き続き拒否されます。すべての同意タイプに適切な値を設定するかどうかは、デベロッパーが確認する必要があります。サポートされているタイプの詳細については、API リファレンスの consent をご覧ください。

すべてのページでできるだけ早く更新を渡します。ユーザーが同意したら、ユーザーの選択内容を保持し、後続のページで適切に更新コマンドを呼び出します。また、同意モードでは同意内容が保存されないため、同意に関するあらゆるページで、なるべく早い段階で、ユーザーの同意オプションに基づいて同意モード更新コマンドを発行する必要があります。

この例では、ハードコードされた「granted」または「denied」値を使用していますが、実際には、同意管理ソリューションによって収集されたユーザーの実際の同意に基づいて、実行時に値を決定する必要があります。次のコードは、ユーザーが広告 Cookie を許可することに同意したときに同意を付与します。

gtag('consent', 'update', {
  'ad_storage': 'granted'
});

非同期で読み込まれる CMP をご利用の場合、必ずしも Google タグよりも前に実行されない可能性があります。このような状況に対処するには、wait_for_update にミリ秒単位の値を指定して、データ送信までの待機時間を調整します。

たとえば、あるページでデフォルトでは ad_storage を拒否したうえで、CMP が同意ステータスを更新することを許可するには、wait_for_update を使用します。次のコードでは、デフォルトで ad_storagedenied に設定され、タグが配信される前に gtag('consent', 'update', ...) を呼び出すために、同意ツールに 500 ミリ秒の待機時間が与えられています。

gtag('consent', 'default', {
'ad_storage': 'denied',
'wait_for_update': 500
})

タグ マネージャー

タグ マネージャーを実装する場合は、コミュニティ テンプレート ギャラリーの同意モード テンプレートを使用して同意を管理することをおすすめします。Tag Manager の同意 API を使用して独自のテンプレートを作成する方法については、同意モードのテンプレートを作成するをご覧ください。

注:

  • タグ設定に GTM を利用するサイトにおける同意モードの実装では、同意ステータスの管理に GTM 専用の API(setDefaultConsentState および updateConsentState)を使用する必要があります。必要に応じて、gtagSet API を使用して ads_data_redaction と URL パススルーの設定を必要に応じて設定できます。

  • gtag('consent','update',...) メソッドは、updateConsentState の代わりに使用しないでください。これらのキューは他の保留中のメッセージの後にキューに登録され、次のイベントの開始前には処理されない可能性があります。詳しくは、データレイヤー情報の処理方法をご覧ください。

実装例

次の例では、デフォルトで ad_storagedenied に設定しています。ad_storage で提供される機能にユーザーが同意すると、その値が granted に更新されます。

gtag.js

ここでは、コードの順序が重要です。同意コードを不適切な順序で呼び出すと、同意のデフォルト設定が機能しなくなります。詳細はビジネスの要件によって異なる可能性がありますが、基本的にはコードは次の順序で実行する必要があります。

  1. Google タグを読み込みます。これがデフォルトのスニペット コードになります。デフォルトのスニペットを更新(下記を参照)して、gtag('consent', 'default', ...) への呼び出しを含めます。デフォルト値を設定しない場合は、すべてのタグ付け機能が有効になります。

  2. 同意取得ソリューションを読み込みます。非同期で読み込まれる同意取得ソリューションは、非同期型の同意管理プラットフォームとの統合を参照し、適切な順序で処理を行う方法を確認してください。

  3. 同意取得ソリューションで処理されない場合は、ユーザーが同意を示した後で gtag('consent', 'update', ...) を呼び出します。

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Default ad_storage to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'TAG_ID');
</script>

<!-- Update this section based on your business requirements. -->
<script>
  function consentGranted() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>

<body>
  ...
  <button onclick="consentGranted">Yes</button>
  ...
</body>

タグ マネージャー

タグ マネージャーを使用しているサイトでは、CMP を使用してユーザーの同意オプションの更新を処理することをおすすめします。CMP では、同意モードを管理するためのタグを作成するためのコミュニティ テンプレート ギャラリーのテンプレートが用意されています。

テンプレートを使用できない場合は、次のようにページのコードを更新できます。ここでは、コードの順序が重要です。同意コードを不適切な順序で呼び出すと、同意のデフォルト設定が機能しなくなります。

<script>
  // Define dataLayer and the gtag function.
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Default ad_storage to 'denied'.
  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Update this section based on your business requirements -->
<script>
  function consentGranted() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>

<body>
  ...
  <button onclick="consentGranted">Yes</button>
  ...
</body>

高度な同意機能に含まれるのは次のような機能です。

  • 特定の地域での動作を設定する。
  • ユーザーが Cookie の使用に同意しなかった場合に、広告クリック、クライアント ID、セッション ID の情報を URL で受け渡す。
  • ユーザーが広告 Cookie に同意しなかった場合に、広告の情報を完全に編集(削除)する。

特定の地域に限定される動作

特定の地域のユーザーに対するタグのデフォルトの動作を変更するには、同意コマンドで地域を指定します。地域の値を指定することで、ユーザーの地理的位置に基づいてデフォルト設定を微調整できます。地域の識別について詳しくは、地域 ID をご覧ください。

gtag.js

次の例では、スペインとアラスカのユーザーに対して analytics_storagedenied に設定し、すべてのユーザーに対して ad_storagedenied に設定します。

gtag('consent', 'default', {
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});

gtag('consent', 'default', {
  'ad_storage': 'denied'
});

絞り込まれた地域を優先

デフォルトの同意コマンドが同じページに 2 つ存在し、それぞれのコマンドで特定の地域とそれよりも狭い地域に対する値が設定されている場合は、より狭い地域の値が優先されます。たとえば、米国(US)の ad_storagegranted に設定し、米国 CA の denieddenied に設定している場合、カリフォルニア州からのユーザーにはより具体的な US-CA 設定が適用されます。ad_storageこの例では、US-CA からの訪問者は ad_storagedenied に設定されます。

リージョン ad_storage 動作
US 'granted' カリフォルニア州以外の米国のユーザーに適用されます
US-CA 'denied' US-CA(米国カリフォルニア州)のユーザーに適用されます
指定なし 'granted' デフォルト値の 'granted' が使用されます。この例は、米国または米国(カナダ)以外の訪問者に適用されます

タグ マネージャー

テンプレートを使用してタグを作成する場合は、地域固有の動作を設定するコントロールが存在することがあります。テンプレート タグを自分で作成する場合は、同意モードのテンプレートを作成するで、地域ごとの動作の設定についての記事をご覧ください。

広告クリック、クライアント ID、セッション ID の情報を URL で受け渡す

ユーザーが広告をクリックしてウェブサイトにアクセスしたときに、その広告に関する情報をクエリ パラメータとしてランディング ページ URL に追加できます。コンバージョン データの精度を高めるために、この情報は通常ドメインのファーストパーティ Cookie に保存されます。

ただし、ad_storagedenied に設定されている場合、この情報はローカルに保存されません。ad_storagedenied のときの広告クリックの測定品質を向上させるには、URL パススルーを使って、広告クリックの情報を URL パラメータを介してページ間で受け渡すことも可能です。

同様に、analytics_storagedenied に設定されている場合、URL パススルーを使うことで、イベントやセッションに基づく分析データ(コンバージョンなど)を、Cookie を使わずにページ間で受け渡すことができます。

URL パススルーを使用するには、次の条件を満たしている必要があります。

  • Google タグが同意ステータスを認識し、ページ上に表示される。
  • 広告主が URL パススルー機能の使用にオプトインしている。
  • 同意モードがページに実装されている。
  • リンク先のドメインが現在のページのドメインと同じである。
  • URL に gclid ないし dclid が含まれている(Google 広告および Floodlight のタグのみ)

gtag.js

この機能を有効にするには、次のように url_passthrough パラメータを true に設定します。

gtag('set', 'url_passthrough', true);

タグ マネージャー

テンプレートを使用してタグを作成している場合は、URL パススルーを設定するためのコントロールが含まれていることがあります。gtagSet カスタム テンプレート API を使用して URL パススルーを設定する方法の詳細については、同意モード テンプレートを作成するをご覧ください。

または、次のオプションを使用して、コンバージョン リンカーやアナリティクス タグで設定することもできます。

Google 広告タグと Floodlight タグの場合:

この機能を有効にするには、コンバージョン リンカー タグを作成(または既存のものを使用)して、[すべてのページ URL でリンクを有効化] をオンにします。コンバージョン リンカー タグを作成する手順については、基本設定をご覧ください。

Google アナリティクス タグの場合:

  1. タグ マネージャーで、[設定フィールド] に移動します。
  2. [設定フィールド] が展開されたら、[行を追加] をクリックします。
  3. [フィールド名] に、次のように適切な値を入力します。
    • Google アナリティクス: GA4 設定タグの場合は、「url_passthrough」と入力します。
    • Google アナリティクス: ユニバーサル アナリティクス タグで Google アナリティクス設定変数を使用している場合は、「urlPassthrough」と入力します。
  4. [] に「true」と入力します。
  5. タグを保存して公開します。

または、サイト内のすべてのページで、GTM インストール スニペットよりも前に url_passthrough パラメータを true に設定します。

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

URL パススルーを使用している場合、ユーザーがウェブサイト上のページを移動していくにつれ、リンクに次のようなクエリ パラメータが付加される場合があります。

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

最善の結果を引き出すには、次の項目を実施するようにしてください。

  1. サイト上でリダイレクトする際は、上記のクエリ パラメータをすべて渡します。
  2. ご利用の分析ツールで、ページの URL に含まれるこれらのパラメータが無視されるようにします。
  3. これらのパラメータがサイトの動作を妨げないようにします。

広告データを削除する

ad_storagedenied の場合、広告を掲載する目的で新しい Cookie が設定されることはありません。また、すでに google.com と doubleclick.net で設定されていたサードパーティ Cookie が、スパムや不正行為の対策以外の目的で使用されることもありません。ただし、Google にはページの完全な URL が送信され、これには URL パラメータ内の広告クリック情報が含まれます。

gtag.js

ad_storagedenied のときに広告データをさらに削除するには、ads_data_redactiontrue に設定します。

gtag('set', 'ads_data_redaction', true);

ads_data_redactiontruead_storagedenied が設定されている場合、Google 広告タグと Floodlight タグのネットワーク リクエストで送信される広告クリック ID は削除されます。また、ネットワーク リクエストも Cookie を使わないドメインを介して送信されます。

タグ マネージャー

テンプレートを使用してタグを作成している場合は、広告データをさらに秘匿化するコントロールを利用できる場合があります。テンプレート タグを自分で作成する場合は、広告データの秘匿化について、同意モードのテンプレートを作成するをご覧ください。

タグ マネージャーには、同意設定に応じたタグの動作を管理するための機能がいくつか用意されています。タグ マネージャーには、「同意の初期化」トリガー、同意管理のタグ設定、[同意の概要] ページがあります。複数の第三者同意管理プロバイダが、自社のサービスに同意モードとの統合を組み込んでいます。タグ マネージャーの同意機能の詳細

同意モードの設定を確認してデバッグするには、Tag Assistant の使用をおすすめします。Tag Assistant では、同意ステータスを設定および更新しているかどうか、またどのように更新されているかを確認できます。Tag Assistant は以下をサポートしています。

詳しくは、Tag Assistant での同意モードのデバッグについての記事をご覧ください。

同意モード テンプレートを使用しない場合は、ブラウザのデベロッパー ツールを使用して同意設定を分析することができます。

同意設定を分析するには:

  1. [要素] タブの検索バーに「dataLayer」と入力します。次のことを確認してください。

    • default コマンドは、他のすべての Google イベントよりも前に配置されます。
    • 同意ステータスは、ユーザーの操作に応じて設定され、update コマンドで設定します。
    • タグは、必要な同意設定が満たされた場合にのみ配信されます。
    • ads_data_redactionurl_passthrough はどちらも、ユーザーが指定した設定に基づいて設定されます。
  2. [ネットワーク] タブで次の操作を行います。

    • 同意ステータスの URL に gcs= パラメータがあるかどうかを確認します。gcs パラメータの形式は gcs=G1[ad_storage][analytics_storage] です。
    • 提供された同意に基づいて適切な gcs= パラメータ値を確認します。ad_storageanalytics_storage の値は次のいずれかです。

      Meaning
      G100 ad_storage と analytics_storage の両方の同意が拒否される。
      G110 同意は ad_storage では承認され、analytics_storage では拒否されます。
      G101 ad_storage の同意は拒否され、analytics_storage の同意が得られる。
      G111 ad_storage と analytics_storage の両方に同意していること。
      Google One サイトで ad_storage または analytics_storage に同意していない。
    • ads_data_redactiontrue に設定されている場合に、Cookie のないドメイン(googlesyndication.com など)が使用されていることを確認します。

    • url_passthroughtrue に設定されており、_gl リンカー パラメータが存在する場合(例: https://www.example.com/?_gl=1abcde5)、gclid / dclid が送信 URL に追加されていることを確認します。

以前のタグの管理

ga.js、analytics.js、conversion.js などの従来のタグを使用している場合は、gtag.js または Google タグ マネージャーに更新してください。

以前のタグのプライバシー管理の詳細については、次のドキュメントをご覧ください。