Google の測定サービスでは、対象となるサービスや機能に応じて、Cookie の読み取り / 書き込み、分析のための HTTP リクエストの送信、コンバージョン測定、リマーケティングを行うことができます。
これらの仕組みは、ユーザーの同意ステータスに基づいてのみ使用されるように設定可能です。たとえば、ユーザーが同意しない限り Cookie の読み取りや書き込みを行わないように Google タグを設定できます。同意ステータスを認識するタグは、ユーザーの同意が得られるまで制限の範囲内で機能します。ユーザーが同意すると、指定した内容に基づいて動作が更新され、機能の制限が解除されます。
ユーザーの同意ステータスに基づいたタグの動作の調整は、以下でサポートされています。
- Google 広告
- Floodlight
- Google アナリティクス
- コンバージョン リンカー
始める前に
同意モードを実装する際は、以下の内容をご考慮ください。
- デフォルトの同意設定は、訪問者全員ではなく、特定の地域の訪問者を対象にすることをおすすめします。これにより、同意バナーが不要かつ [拒否] がデフォルトで設定されている地域のユーザーを逃さずに測定できます。詳しくは、特定の地域に限定される動作をご覧ください。
- ユーザーの同意は、同意管理プラットフォーム(CMP)で管理するのが一般的です。CMP で管理している場合は、使用する CMP が同意モードに対応しているかどうかをご確認ください。
- CMP を使用している場合は、デフォルトの同意コマンドで指定されている地域の訪問者をターゲティングできるよう、同意の update コマンドを設定する必要があります。このコマンドを設定すると、同意ステータスを [拒否] にデフォルトで設定しているユーザーに、同意ステータスを更新する機会を与えることができます。
- 独自のテンプレートまたはカスタム HTML タグを作成する場合、コールバックで実行されるコマンドまたは
gtag()
を使用するコマンドは、次のトリガーの配信前に使用可能になるとは限りません。同意に関する情報を可能な限り早く収集できるよう、Tag Manager Consent API を使ったタグ テンプレートを使用または作成して、同意ステータスを設定してください。
タグの動作を調整する
同意ステータスを認識するタグの動作は、ウェブサイトのすべてのページで設定する必要があります。通常、各ページで次の 2 つのタイミングに対して設定します。
ページの読み込み時: ページの読み込み時には、ユーザーの想定に沿った測定機能のみを使用する必要があります。これは
gtag('consent', 'default', ...)
コマンドで設定します。ユーザーが同意ステータスを提示した後(または同意ステータスが判明している場合): ユーザーが同意ステータスを提示した後(または別のページを読み込んだ時の同意ステータスが保持されている場合)は、
gtag('consent', 'update', ...)
コマンドで、ユーザーが同意した測定機能(Cookie の読み取りや書き込みなど)を有効にします。
デフォルトの動作を設定する
gtag.js
デフォルトの測定機能を調整するには、サイトのすべてのページで、測定データを送信するコマンド(config や event など)の前に gtag('consent',
'default', ...)
コマンドを呼び出します。たとえば、ad_storage
と analytics_storage
をデフォルトで拒否するには、consent
パラメータで次の設定を指定します。
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied'
});
タグ マネージャー
デフォルトの測定機能を調整する方法は次のとおりです。
- Tag Manager Consent API を使ったコミュニティ テンプレート ギャラリーのテンプレート タグを使用して、デフォルトの状態を設定します。
- 「同意の初期化」をトリガーした際にタグを配信するよう設定します。詳しくは、同意の設定をご覧ください。
上記以外の方法をとる場合、サイトのすべてのページで、タグが呼び出される前に以下を行う必要があります。
dataLayer
オブジェクトが定義されていることを確認する。gtag()
関数が定義されていることを確認する。gtag('consent', ...)
コマンドを使用して測定機能を設定する。dataLayer.push()
を使用してdefault_consent
イベントを送信する。
たとえば、ad_storage
と analytics_storage
をデフォルトで拒否するには、次のように設定します。
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied'
});
dataLayer.push({
'event': 'default_consent'
});
これにより、ad_storage
と analytics_storage
のデフォルト値が denied
に設定されます。サポートされているキーについて詳しくは、gtag.js API リファレンスの consent をご覧ください。
動作を更新する
ユーザーが同意バナーを操作するなどして同意するか、別のページを読み込んだ時の同意ステータスが判明している場合は、gtag('consent', 'update', ...)
コマンドでタグの動作を更新します。たとえば、広告 Cookie を使用することにユーザーが同意している場合は、次のように設定します。
gtag('consent', 'update', {
'ad_storage': 'granted'
});
変更されるのは、update の呼び出しで指定されたフィールドのみです。上記の例では、ad_storage
値だけが変更されています。analytics_storage
を denied
に設定した場合は、ad_storage
に対する同意の呼び出しの後も analytics_storage
が拒否されます。すべての同意キーに適切な値が設定されているかどうかは、デベロッパーが確認する必要があります。サポートされているキーについて詳しくは、API リファレンスの consent をご覧ください。
このコマンドは、すべてのページでできるだけ早く呼び出してください。ユーザーが同意を示したら、その選択内容を保持して、後続のページで更新コマンドを適切に呼び出す必要があります。
実装例
次の例では、デフォルトで ad_storage
を denied
に設定しています。ad_storage
で提供される機能にユーザーが同意すると、その値が granted
に更新されます。
ここでは、コードの順序が重要です。同意コードを不適切な順序で呼び出すと、同意のデフォルト設定が機能しなくなります。詳細はビジネス要件によって異なる場合がありますが、一般的に、コードは次の順序で実行してください。
- グローバル サイトタグを読み込みます。これがデフォルトのスニペット コードになります。デフォルトのスニペットを更新(下記を参照)して、
gtag('consent', 'default', ...)
への呼び出しを含めます。デフォルト値を設定しない場合は、すべてのタグ付け機能が有効になります。 - 同意取得ソリューションを読み込みます。同意取得ソリューションが非同期で読み込まれる場合は、非同期ツールで、この処理を正しい順序で行う方法を確認してください。
- 同意取得ソリューションで処理されない場合は、ユーザーが同意を示した後で
gtag('consent', 'update', ...)
を呼び出します。
gtag.js
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Default ad_storage to 'denied'.
gtag('consent', 'default', {
'ad_storage': 'denied'
});
gtag('js', new Date());
gtag('config', 'G-XXXXXX');
</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 を使って更新コマンドを処理していない場合、次の手順に沿って対応します。
- Tag Manager Consent API を使ったコミュニティ テンプレート ギャラリーのテンプレート タグを使用して、更新された同意ステータスを設定します。
- 「同意の初期化」をトリガーした際にタグを配信するよう設定します。詳しくは、同意の設定をご覧ください。
また、次の方法でページのコードを更新できます。
<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>
```
高度な同意機能
特定の地域に限定される動作
特定の地域のユーザーに対するタグのデフォルトの動作を変更するには、同意コマンドで地域を指定します。地域の値を指定することで、ユーザーの地理的位置に基づいてデフォルト設定を微調整できます。たとえば、スペインとアラスカのユーザーに対して ad_storage
を denied
に設定し、すべてのユーザーに対して analytics_storage
を denied
に設定するには、次のように指定します。
gtag('consent', 'default', {
'analytics_storage': 'denied',
'region': ['ES', 'US-AK']
});
gtag('consent', 'default', {
'ad_storage': 'denied'
});
絞り込まれた地域を優先
デフォルトの同意コマンドが同じページに 2 つ存在し、それぞれのコマンドで特定の地域とそれよりも狭い地域に対する値が設定されている場合は、より狭い地域の値が優先されます。たとえば、US
地域のユーザーに対して ad_storage
を granted
に設定し、US-CA
地域のユーザーに対して ad_storage
を denied
に設定した場合、カリフォルニア州のユーザーにはより限定的な US-CA
の設定が適用されます。この例では、US-CA
からアクセスするユーザーに対して ad_storage
が denied
に設定されます。
地域 | ad_storage |
動作 |
---|---|---|
US | 'granted' |
カリフォルニア州以外の米国のユーザーに適用されます |
US-CA | 'denied' |
US-CA(米国カリフォルニア州)のユーザーに適用されます |
指定なし | 'granted' |
デフォルト値の 'granted' が使用されます。US または US-CA 以外の地域のユーザーに適用されます |
広告クリックに関する情報
ユーザーが広告を経由してウェブサイトにアクセスしたときに、その広告に関する情報をクエリ パラメータとしてランディング ページ URL に追加できます。コンバージョン データの精度を高めるために、Google のタグは通常、ドメインのファーストパーティ Cookie にこの情報を保存します。
ただし、ad_storage
が denied
に設定されている場合、この情報はローカルには保存されません。ad_storage
が denied
に設定されているときの広告クリックの測定品質を向上させるには、広告クリックの情報を URL パラメータを介してページ間で受け渡すこともできます。
gtag.js
この機能を有効にするには、url_passthrough
パラメータを true
に設定します。
gtag('set', 'url_passthrough', true);
タグ マネージャー
この機能を有効にするには、コンバージョン リンカー タグを作成(または既存のものを使用)して、[すべてのページ URL でリンクを有効化] をオンにします。コンバージョン リンカー タグを作成する手順については、基本設定をご覧ください。
URL パススルーを使用する場合は、いくつかのクエリ パラメータがウェブサイトのリンクに追加されます。
gclid
dclid
gclsrc
_gl
これをうまく機能させるには、以下の仕様になっていることをご確認ください。
- サイト上でリダイレクトする際は、上記のクエリ パラメータをすべて渡します。
- ご利用の分析ツールで、ページの URL に含まれるこれらのパラメータが無視されるようにします。
- これらのパラメータがサイトの動作を妨げないようにします。
広告データを削除する
ad_storage
が denied
の場合、広告を掲載する目的で新しい Cookie が設定されることはありません。また、すでに google.com と doubleclick.net で設定されていたサードパーティ Cookie が、スパムや不正行為の対策以外の目的で使用されることもありません。ただし、Google にはページの完全な URL が送信され、これには URL パラメータ内の広告クリック情報が含まれます。
ad_storage
が denied
の場合に、広告データをさらに削除するには、ads_data_redaction
を true
に設定します。
gtag('set', 'ads_data_redaction', true);
ads_data_redaction
に true
、ad_storage
に denied
が設定されている場合、Google 広告タグと Floodlight タグのネットワーク リクエストで送信される広告クリック ID は削除されます。また、ネットワーク リクエストも Cookie を使わないドメインを介して送信されます。
非同期ツール
非同期で読み込まれる同意ツールは、Google タグの前に実行されない場合があります。このような状況に対処するには、wait_for_update
にミリ秒単位の値を指定して、データ送信までの待機時間を調整します。
次の例では、ad_storage
がデフォルトで denied
に設定され、タグが配信される前に同意ツールが 500 ミリ秒待機してから gtag('consent', 'update', ...)
を呼び出すよう設定されています。
gtag('consent', 'default', {
'ad_storage': 'denied',
'wait_for_update': 500
})
タグ マネージャーの同意設定機能
タグ マネージャーには、同意設定に応じたタグの動作を管理するための機能がいくつか用意されています。タグ マネージャーには、「同意の初期化」トリガー、同意管理のタグ設定、[同意の概要] ページがあります。複数の第三者同意管理プロバイダが、自社のサービスに同意モードを組み込んでいます。タグ マネージャーの同意機能の詳細
以前のタグの管理
以前の Google タグ(ga.js、analytics.js、conversion.js など)を使用している場合は、gtag.js に更新するか、Google タグ マネージャーをご利用ください。
以前のタグのプライバシー管理の詳細については、次のドキュメントをご覧ください。