このドキュメントでは、Google タグ マネージャーをサイトに実装する方法について詳しく説明します。
データレイヤーを使用する
Google タグ マネージャーは、データレイヤーと一緒に導入することで簡単に設定でき、最大限の柔軟性とポータビリティを実現します。
データレイヤーは、Google タグ マネージャーに渡す必要があるすべての情報を含むオブジェクトです。イベントや変数などの情報をデータレイヤーを介して Google タグ マネージャーに渡したり、変数の値や特定のイベントに基づくトリガーを Google タグ マネージャーに設定したりできます(例: 「purchase_total > 100 円」の場合にリマーケティング タグを配信する)。変数の値を他のタグに含めて渡すこともできます(例: purchase_total をタグの値フィールドに含める)。
Google タグ マネージャーは、変数やトランザクション情報、ページのカテゴリなど、ページ全体に分散している重要な情報を参照する代わりに、このデータレイヤーに配置された情報をまとめて参照できるよう設計されています。 データレイヤーを明示的に宣言するかどうかは自由です。ただし、データレイヤーを実装しなくても変数機能を使用してページから値へのアクセスはできますが、データレイヤーなしでイベントを使用することはできません。変数や関連する値がデータレイヤーに含まれていると、タグの配信に必要なときに、すぐ使用できます(ページ全体の変数が読み込まれるのを待つのとは対照的です)。
データレイヤー変数をページに追加する
データレイヤーを設定するには、コンテナ スニペットより上の、ページの先頭部分に次のコード スニペットを追加します。
<script> dataLayer = []; </script>
上記のスニペットは空のオブジェクトで、Google タグ マネージャーに渡す情報を指定できます。たとえば、データレイヤー内にデータレイヤー変数を設定し、ページが登録ページであること、また訪問者を価値の高いユーザーであると識別していることを示す場合は、次のようにデータレイヤーを設定します。
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
たとえば、Google タグ マネージャーは、signup とマークされたすべてのページにおいて、また訪問者が high-value とマークされた場合にタグを配信するように設定できます。このデータレイヤー スニペットは、クイック スタートガイドの説明に従ってコンテナ スニペットより上に設定することが重要です。
データレイヤー コードがコンテナ スニペットより後で呼び出された場合、そのコード内で宣言された変数は、ページの読み込み時に Google タグ マネージャーでタグを選択的に配信する際に使用できません。次に例を示します。
不適切な例
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
適切な例
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
データレイヤー オブジェクト内で宣言された各変数は、訪問者が現在のページにとどまっている間に限り保持されます。
したがって、ページ間で関連のあるデータレイヤー変数(visitorType など)は、ウェブサイトの各ページのデータレイヤーで宣言する必要があります。すべてのページのデータレイヤーに同じ変数セットを配置する必要はありませんが、一貫した命名規則を使用してください。つまり、登録ページにページカテゴリを設定する際に pageCategory を使用している場合は、購入ページにページカテゴリを設定する場合も pageCategory を使用する必要があります。
データレイヤーは必ずしも明示的に宣言しなくても大丈夫です。データレイヤー コードを実装せずに変数で設定する場合、Google タグ マネージャーのコンテナ スニペットが代わりにデータレイヤー オブジェクトを開始します。
HTML イベント ハンドラでデータレイヤーを使用する
Google タグ マネージャーには、event と呼ばれる特別なデータレイヤー変数が用意されています。この変数は、ユーザーがボタンなどのウェブサイト要素を操作したときにタグの配信を開始するために JavaScript イベント リスナー内で使用されます。たとえば、ユーザーがニュースレターの登録フォームで Submit ボタンをクリックしたときに、コンバージョン トラッキング タグを配信するとします。イベントは、リンクやボタン、Flash を使用したメニュー システムのコンポーネントなどのウェブサイト要素に対するユーザー操作、または他の JavaScript(時間遅延など)に基づいて呼び出すことができます。
この機能を実現するには、ページ(トラッキングする特定の要素に接続されているページなど)上のデータレイヤーのメソッドとして push API を呼び出します。イベントを設定するための基本的な構文は次のとおりです。
dataLayer.push({'event': 'event_name'});
ここで、event_name は、指定されたイベントまたは要素を示す文字列です。
たとえば、ユーザーがボタンをクリックした場合のイベントを設定するには、ボタンのリンクを変更して push() API を次のように呼び出します。
<a href="#" name="button1" onclick="dataLayer.push({'event': 'button1-click'});" >Button 1</a>
場合によっては、特定のタグをトリガーするために収集または使用する必要があるデータが、ユーザーがページで操作を行うまで読み込まれないことがあります。データレイヤーの変数とイベントを組み合わせると、必要に応じてこの情報をデータレイヤーに動的にプッシュすることができます。
データレイヤー変数をデータレイヤーに動的にプッシュすると、フォーム内で入力または選択された値、訪問者が再生している動画に関連付けられたメタデータ、訪問者がカスタマイズした商品(車など)の色、クリックされたリンクのリンク先 URL などの情報を取得できます。
この機能を実現するには、イベントの場合と同様に、push() API を呼び出してデータレイヤーのデータレイヤー変数を追加または置換します。動的データレイヤー変数を設定するための基本的な構文は次のとおりです。
dataLayer.push({'variable_name': 'variable_value'});
ここで、variable_name は設定するデータレイヤー変数の名前を示す文字列であり、variable_value は設定または置換するデータレイヤー変数の値を示す文字列です。
たとえば、訪問者が車のカスタマイズ ウィジェットを操作しているときに色の設定を含むデータレイヤー変数を設定するには、次の動的データレイヤー変数をプッシュします。
dataLayer.push({'color': 'red'});
複数の変数を一度にプッシュする
変数やイベントごとに dataLayer.push() を使用する代わりに、複数の変数とイベントを一度にプッシュできます。
次に例を示します。
dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customizeCar'
});
リンクのイベント ハンドラ内でも同じ方法を使用できます。
<a href="#"
name="color"
onclick="dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customizeCar'});">Customize Color</a>
既存の変数と同じ名前の変数をデータレイヤーにプッシュすると、既存の値が新しい値で上書きされることに注意してください。たとえば、上記のリンクをクリックしたときに、値が blue の color という名前の変数がすでにデータレイヤー内で宣言されていた場合、その値は新しい値 red で上書きされます。
非同期構文のしくみ
Google タグ マネージャーは非同期タグであり、実行時に他のページ要素の表示が妨げられることはありません。また、Google タグ マネージャーで管理するその他のタグも非同期であるため、読み込みに時間がかかるタグがあっても、その他のトラッキング タグの妨げになることはありません。
非同期構文を可能にしているのは、dataLayer オブジェクトです。
これは、先入れ先出しのデータ構造を持つキューとして機能し、API 呼び出しを収集します。タグは、その API 呼び出しに従って配信されます。
キューに何かを追加するには、dataLayer.push メソッドを使用します。dataLayer.push メソッドを使用すると、変数を介して追加のメタデータを Google タグ マネージャーに渡したり、イベントを指定したりできます。
dataLayer オブジェクトの生成は、Google タグ マネージャー スニペットの前に指定します。dataLayer オブジェクトが未定義の場合は Google タグ マネージャーによって生成されます。
非同期構文について詳しくは、トラッキングのリファレンスの dataLayer.push メソッドに関する説明をご覧ください。
よくある問題の回避方法
Google タグ マネージャーを実装する場合は、次の点に注意してください。
dataLayer を上書きしない
代入を使用して dataLayer に値を割り当てると(例: dataLayer = [{'item':
'value'}])、既存の値が上書きされます。dataLayer は、ソースコード内のできるだけ上の方(コンテナ スニペットやオプティマイズのページ非表示スニペットより上)で宣言することをおすすめします。dataLayer を宣言した後、スクリプトの後の方で dataLayer.push({'item': 'value'}) を使用して値を追加できます。
dataLayer オブジェクト名は大文字と小文字が区別される
大文字と小文字を正しく指定せずに変数またはイベントをプッシュしようとしても、プッシュは機能しません。次に例を示します。
datalayer.push({'pageTitle': 'Home'}); // Won't work
dataLayer.push({'pageTitle': 'Home'}); // Better
変数名は引用符で囲む
文字、数字、アンダースコアのみで構成されていて予約語ではない変数名(function、export、native など)については厳密には引用符は必要ありませんが、問題を避けるために、すべての変数名を引用符で囲むことをおすすめします。次に例を示します。
dataLayer.push({new-variable: 'value'}); // Won't work
dataLayer.push({'new-variable': 'value'}); // Better
ページ間で変数名の一貫性を保つ
別のページの同じ変数に異なる変数名を使用すると、必要なすべての場所で一貫性のあるタグ配信を行えません。次に例を示します。
動作しない例
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitor_type': 'high-value'});
適切な例
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitorType': 'high-value'});
ページの読み込み時にタグを配信するために必要な情報は、コンテナ スニペットより上にあるデータレイヤーで宣言する
ある条件に一致するページの読み込み時に(たとえば、pageCategory が sports とマークされたページ上で)タグを配信するには、コンテナ スニペットより上にあるデータレイヤーで pageCategory を定義する必要があります('pageCategory': 'sports' など)。コンテナ スニペットより下にあるデータレイヤーに(dataLayer.push() を使用して)プッシュされた変数は、条件が一致していてもページの読み込み時にタグを配信できません。
Google タグ マネージャーで導入したタグは、ハード コーディングしたり別のツールで導入したりしない
Google タグ マネージャーから配信するタグは、単に複製するのではなく、Google タグ マネージャーに移行する必要があります(タグの移行について詳しくは、Google タグ マネージャーにタグを移行するをご覧ください)。 Google タグ マネージャーと他のシステムの両方でタグを導入したり、サイトにタグをハード コーディングしたりすると、それらのタグが原因でデータの膨張(およびその他のデータ整合性の問題)が発生する場合があります。たとえば、Google アナリティクスのトラッキング コードを移行して Google タグ マネージャーから配信する場合は、ハード コーディングされた Google アナリティクスのトラッキング コードをサイトから削除する必要があります。
データレイヤーの名前を変更する
デフォルトでは、Google タグ マネージャーで開始され参照されるデータレイヤーは dataLayer と呼ばれます。データレイヤーに別の名前を使用する場合は、コンテナ スニペットのデータレイヤー パラメータ値(下記のハイライト表示部分)をご希望の名前に置き換えます。
<!-- 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','myNewName','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
さらに、データレイヤーへのすべての参照(つまり、スニペットより上でデータレイヤーを宣言し、イベントまたは動的データレイヤー変数を push() API を使用してデータレイヤーにプッシュする場合)も、カスタム データレイヤー名を反映するように調整する必要があります。
<script> myNewName = [{ // ... }]; myNewName.push({'variable_name': 'variable_value'}); </script>
Google タグ マネージャーにタグを移行する
Google タグ マネージャーを最大限に活用するために、既存のタグのほとんどを Google タグ マネージャーに移行することをおすすめします(サポートされていないタグは移行しないでください)。このセクションでは、おすすめの移行方法について説明します。 このプロセスは主に次の 5 つのステップからなります。
-
サイトをマッピングする(省略可)
移行を開始するには、サイトに現在導入しているタグと収集しようとしているデータについて考える必要があります。データ収集では、どのアクションをトラッキングするか(イベント)と、ページのどの追加データを収集するか(変数)について考えます。タグ、そのタグで収集するデータ、そのタグに関連付けるイベントやページのマップを作成します。
-
標準の Google タグ マネージャー スニペットを実装する
サイトをマッピングしたら、サイト(空の状態)に Google タグ マネージャー スニペットを 1 つだけインストールして導入します。詳しくは、クイック スタートをご覧ください。
-
イベントと変数を追加する
HTML イベント ハンドラでデータレイヤーを使用するに記載されている方法を使用して、Google タグ マネージャーのインストールをカスタマイズします。
-
Google タグ マネージャーの管理画面で関連するトリガーを含むタグを追加する
Google タグ マネージャー スニペットとデータ収集 API を使用してサイトの設定が完了したら、サイトのタグを管理画面に追加する必要があります。この時点では公開しないでください。 ここでは単に、適切なテンプレートを使用して Google タグ マネージャーの管理画面でサイトのタグの追加と設定を行い、トリガーを適切に設定します(詳しい方法については、ヘルプセンターのトリガーの記事をご覧ください)。
-
最後に移行のために置き換える
最後のステップでは、古いタグを同時に置き換えて、Google タグ マネージャーでタグを公開します。数分以内に以下を行う必要があります。
- 1 回のコードプッシュでサイトのタグを削除します。
- このプッシュが成功したことを確認したら、お使いのコンテナ バージョンの [公開] ボタンを押します。
この方法では、データに小さなギャップが生じる場合がありますが、最初の置き換えが行われると、データのギャップはなくなります。または、順序を入れ替えて、サイトの変更を有効にする直前にタグを公開することもできます。この場合、データに小さいギャップは生じませんが、データの軽微な重複が 1 回だけ発生する可能性があります。
Google タグ マネージャーへの最初の移行が完了したら、以降の必要なタグ付けは、サイトのコードを変更することなく Google タグ マネージャーの管理画面を介して処理できます。
複数のドメイン
同じコンテナを複数のウェブサイトで使用することもできますが、管理する個別のウェブ プロパティは独自のコンテナで導入することをおすすめします。このように分離することで、あるウェブサイトに固有の変更を行った場合に、同じコンテナを使用する他のウェブサイトに望ましくない影響が生じるのを防ぐことができます。ただし、複数のトップレベル ドメインまたはサブドメインが同じウェブサイトのメンバーであると考えられる状況では、同じ Google タグ マネージャー コンテナを使用してタグを管理すると便利です。
複数のドメインで 1 つのコンテナを使用する場合、Google タグ マネージャーでタグとトリガーを慎重に設定することが重要です。Google タグ マネージャーでデフォルトの [すべてのページ] トリガー($url matches RegEx .*)を使用すると、コンテナ スニペットが導入されているすべてのドメインのすべてのページでタグが配信されます。タグの中には、それが導入されているドメインに固有の設定や目的を持っているものもあるため、場合によっては、カスタム トリガーを作成して(または、[すべてのページ] トリガーも削除して)、1 つまたはそれぞれのドメインのすべてのページでタグを配信する必要があります。
たとえば、複数のドメインまたはサブドメインにまたがる Google アナリティクス トラッキングをサポートする設定を使用し、GTM を介して Google アナリティクスのトラッキング コードを導入する場合を考えます。
この状況では、Google アナリティクス トラッキング コードに一連のコードを追加して、Google アナリティクスの Cookie を設定するファースト パーティ ドメインを手動で設定することが考えられます(たとえば、www.example-petstore.com と dogs.example-petstore.com では、Cookie を共通ドメインの .example-petstore.com に設定します)。一方、セカンダリ サイトの www.my-example-blogsite.com では、Cookie を .my-example-blogsite.com に設定するとします。この場合、2 つの Google アナリティクス トラッキング コードタグ(1 つは .example-petstore.com に、もう 1 つは .my-example-blogsite.com に設定)のそれぞれを 2 つのドメインのうち適切なドメインに配信する必要があります。両方のドメインが共通の GTM コンテナを共有している場合、Google タグ マネージャーでデフォルトの [すべてのページ] トリガーを使用すると、両方のドメインのすべてのページで各タグが配信されます。
1 つのページに複数のコンテナがある場合
ページのパフォーマンスを最大限に高めるには、ページ上の Google タグ マネージャー コンテナの数を最小限に抑えます。
1 つのページで複数のコンテナを使用する場合は、共通のデータレイヤー オブジェクトを使用してコンテナ スニペットを実装します。たとえば、次のように 2 つのコンテナ スニペットを実装できます。
- 以下の JavaScript をコピーし、ページ上の
<head>開始タグのなるべく近くに貼り付けます。<!-- 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-XXXX');</script> <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-YYYY');</script> <!-- End Google Tag Manager --> - 次のスニペットをコピーして、ページ上の
<body>開始タグの直後に貼り付けます。<!-- Google Tag Manager (noscript) --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-YYYY" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) -->
複数のデータレイヤーを使用すると、一部のトリガーが機能しなくなったり他の影響が生じたりする可能性があるため、ページ上のすべての Google タグ マネージャー コンテナに共通のデータレイヤーを 1 つだけ使用します。そのため、データレイヤーの名前を変更する必要がある場合は、一部のコンテナでなく、ページ上のすべてのコンテナについて名前を変更してください。
Google タグ マネージャー コンテナを実装するときに、別の Google タグ マネージャー コンテナのカスタム HTML タグを使用することは避けてください。セカンダリ コンテナによってタグにレイテンシが追加されたり、その他の影響が生じたりする可能性があるためです。
Flash と ActionScript
Flash ムービーのコンテンツや操作に基づいて Google タグ マネージャーでタグを配信するには、ActionScript の ExternalInterface メソッドを使用して、イベントや動的データレイヤー変数を SWF ムービーからコンテナページのデータレイヤーにプッシュします。この機能を実現するには、クイック スタートガイドの説明に従って、Google タグ マネージャーのコンテナ スニペットを SWF の親ページの HTML 内に実装する必要があります。
イベントと動的データレイヤー変数を Flash コンポーネントから Google タグ マネージャーにプッシュするには、ExternalInterface を介して push メソッドを呼び出します。たとえば、ActionScript 3 を使用してボタン mybutton_btn をクリックしたときにイベントをトリガーするには、SWF 内に次のコードを実装します。
import flash.display.*;
import flash.events.*;
import flash.external.*;
mybutton_btn.addEventListener(MouseEvent.MOUSE_UP, onButtonClick);
function onButtonClick( Event:MouseEvent ):void {
var name:String= "FLASH_EVENT";
if (ExternalInterface.available) {
ExternalInterface.call('dataLayer.push',{'event': name});
}
}
ExternalInterface メソッドが正しく機能するように、SWF を埋め込む際に allowscriptaccess 属性が always に設定されていることを確認してください。
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
width='300' height='300' id='player1' name='player1'>
<param name='movie' value='file.swf'>
<param name='allowfullscreen' value='true'>
<param name='allowscriptaccess' value='always'>
<param name='flashvars' value='file=playlist.xml'>
<embed id='player1' name='player1'
src='file.swf'
width='300' height='300'
allowscriptaccess='always'
allowfullscreen='true'
flashvars="file=playlist.xml"/>
</object>
JavaScript をサポートしていない端末向けにデータレイヤー変数を追加する
JavaScript を無効にしている訪問者や JavaScript をサポートしていない端末からの訪問者に対応するため、Google タグ マネージャーには、メインの GTM JavaScript を読み込めない場合でも JavaScript に依存しないタグを導入するための <noscript> スニペットが含まれています。
ただし、データレイヤー(ページ読み込み時に宣言されるデータレイヤー変数を含む)と、データレイヤーにプッシュされるイベントや動的データレイヤー変数は、すべて JavaScript に依存して機能することに注意してください。したがって、JavaScript に依存しないタグ(JavaScript を読み込めなくても配信する必要があるタグ)を配信するトリガーがデータレイヤー変数に依存する場合、そのデータレイヤー変数をクエリ パラメータとして <noscript> iframe に渡す必要があります。たとえば、pageCategory が sports で visitorType が returning のときにタグを配信するには、対象のページのコンテナ スニペットを次のように変更します。
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX&pageCategory=sports&visitorType=returning" height="0"
width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
この場合、各データレイヤー変数は、アンパサンド(&)で区切られた書式なしテキストのクエリ パラメータとして iframe のソース URL の末尾に追加されます。
セキュリティ
Google タグ マネージャーには、ウェブサイトやアプリのセキュリティを確保するためのさまざまな機能が組み込まれています。以下のコードレベルのセキュリティ機能に加えて、タグ マネージャーのアクセス制御、2 段階認証プロセス、不正なソフトウェアの検出についても理解することをおすすめします。
タグの導入を制限する
Google タグ マネージャーを使用して導入されるタグタイプは制限しないことをおすすめしますが、さまざまな理由により、サイトに導入するタグタイプの制限が必要になる場合があります。たとえば、サイト所有者によっては、コードの安定性やデータ収集上の理由から、Google タグ マネージャーのユーザーが特定のタグをサイトに追加できないようにしたい場合があります。そのため、Google タグ マネージャーには、スニペットのインストール時に制御できる、タグのブラックリスト機能が追加されています。
ページで許可するタグ、トリガー、変数を制御するには、データレイヤーで gtm.whitelist キーや gtm.blacklist キーを使用します。これらのキーは、コンテナ内のすべての設定をオーバーライドします。適切にブラックリストに登録されたタグ、トリガー、変数は、Google タグ マネージャーの管理画面で配信されるように設定されていても配信されません。
次の例は、ホワイトリストとブラックリストの両方を使用してデータレイヤーを初期化する方法を示しています。どちらのリストも使用するかどうかは自由で、一方だけ使用することも、ここで示しているように同時に使用することもできます。これらのリストは両方とも Array 型でなければならず、リスト内の値は String 型でなければなりません。
dataLayer = [{
...
'gtm.whitelist': ['<ID>', '<ID>', ...]
'gtm.blacklist': ['<ID>', '<ID>', '<ID>', ...]
}];
リスト内の各 ID は、特定のタグ、トリガー、変数タイプ、変数タイプのクラスのいずれかに対応しています。クラスは、同じ機能を持つタグ、トリガー、変数のグループを表します。たとえば、Google 以外のドメインにピクセルを送信できるすべてのタグのクラスは nonGooglePixels です。クラスは、現在または将来使用するタグ、トリガー、変数の機能をブロックするのに便利です。
ホワイトリストとブラックリストを制御するルールを理解することが重要です。
-
ホワイトリスト
ホワイトリストが設定されている場合、関連するタグ、トリガー、変数は(タイプ ID により)明示的に、または(すべてのクラスをリストに含めることによって)暗黙的にホワイトリストに含まれている場合のみ機能します。 -
ブラックリスト
ブラックリストが設定されている場合、タグ、トリガー、変数は(タイプ ID により)明示的に、または(いずれかのクラスをリストに含めることによって)暗黙的にブラックリストに含まれていない場合のみ機能します。 -
ブラックリストはホワイトリストより優先される
両方のリストが設定されている場合、ブラックリストが優先されます。タグのクラスをホワイトリストに登録し、そのクラスの特定のタグをブラックリストに登録することはできますが、その逆、つまり、タグのクラスをブラックリストに登録し、そのクラスの特定のタグをホワイトリストに登録することはできません。 -
クラス間には関係がある
クラスによっては、他のクラスと関係があります。たとえば、Google 以外のスクリプトを実行できるタグでは、Google 以外のピクセルを(必然的に)送信できます。このため、nonGooglePixelsをブロックすると、自動的にnonGoogleScriptsもブロックされます。いずれかのグループに属するすべてのタグ、トリガー、変数がブロックされます。
次の表は、利用可能なタグ、トリガー、変数、それらのタイプ、それらが属するクラスのリストです。
| タグ | ID |
Classes |
|---|---|---|
| AB TASTY の汎用タグ | abtGeneric |
nonGoogleScripts |
| AdAdvisor タグ | ta |
nonGoogleScripts |
| Adometry タグ | adm |
google |
| AdRoll Smart Pixel タグ | asp |
nonGoogleScripts |
| Google 広告コンバージョン トラッキング タグ | awct |
google |
| Google 広告リマーケティング タグ | sp |
google |
| Affiliate Window コンバージョン タグ | awc |
nonGoogleScripts |
| Affiliate Window 購入プロセスタグ | awj |
nonGoogleScripts |
| Bing Ads ユニバーサル イベント トラッキング | baut |
nonGoogleScripts |
| Bizrate Insights の購入者アンケート ソリューション | bb |
nonGoogleScripts |
| Bizrate Insights のウェブサイト離脱アンケート ソリューション | bsa |
nonGoogleScripts |
| ClickTale 標準トラッキング タグ | cts |
nonGoogleScripts |
| comScore Unified Digital Measurement タグ | csm |
nonGoogleScripts |
| Conversant Mediaplex - iframe MCT タグ | mpm |
nonGoogleIframes |
| Conversant Mediaplex - Standard IMG ROI タグ | mpr |
nonGooglePixels |
| Crazy Egg タグ | cegg |
nonGoogleScripts |
| Criteo OneTag | crto |
nonGoogleScripts |
| カスタム HTML タグ | html |
customScripts |
| カスタム画像タグ | img |
customPixels |
| DistroScale タグ | dstag |
nonGoogleScripts |
| Floodlight カウンタタグ | flc |
|
| Floodlight セールスタグ | fls |
|
| Dstillery Universal Pixel タグ | m6d |
nonGooglePixels |
| Eulerian Analytics タグ | ela |
customScripts |
| Google アナリティクスのタグ | ga |
google |
| Google サーベイ ウェブサイト満足度調査 | gcs |
google |
| Google オプティマイズ | opt |
google |
| Google 認定ショップタグ | ts |
|
| Hotjar トラッキング コード | hjtc |
nonGoogleScripts |
| Infinity のコール トラッキング タグ | infinity |
nonGoogleScripts |
| Intent Media - Search Compare Ads | sca |
nonGoogleScripts |
| K50 トラッキング タグ | k50Init |
nonGoogleScripts |
| LeadLab | ll |
nonGoogleScripts |
| LinkedIn タグ | bzi |
nonGoogleScripts |
| Lytics JS タグ | ljs |
nonGoogleScripts |
| Marin Software タグ | ms |
nonGoogleScripts |
| Mediaplex - iframe MCT タグ | mpm |
nonGoogleIframes |
| Mediaplex - Standard IMG ROI タグ | mpr |
nonGooglePixels |
| Message Mate | messagemate |
nonGoogleScripts |
| Mouseflow タグ | mf |
nonGoogleScripts |
| Neustar Pixel | ta |
nonGoogleScripts |
| Nielsen DCR Static Lite のタグ | ndcr |
nonGoogleScripts |
| Nudge Content Analytics タグ | nudge |
nonGoogleScripts |
| Oktopost トラッキング コード | okt |
nonGoogleScripts |
| Google オプティマイズのコンバージョン タグ | omc |
nonGoogleScripts |
| OwnerListens Message Mate | messagemate |
nonGoogleScripts |
| Perfect Audience Pixel | pa |
nonGoogleScripts |
| Personali Canvas | pc |
nonGoogleScripts |
| Placed | placedPixel |
nonGoogleScripts |
| Pulse Insights Voice of Customer Platform | pijs |
nonGoogleScripts |
| Quantcast Audience Measurement | qcm |
nonGoogleScripts |
| Rawsoft FoxMetrics | fxm |
nonGoogleScripts |
| SaleCycle JavaScript タグ | scjs |
customScripts |
| SaleCycle Pixel タグ | scp |
customPixels |
| コンバージョン ページ用の SearchForce JavaScript トラッキング | sfc |
nonGoogleScripts |
| ランディング ページ用 SearchForce JavaScript トラッキング | sfl |
nonGoogleScripts |
| SearchForce リダイレクト トラッキング タグ | sfr |
nonGooglePixels |
| Shareaholic | shareaholic |
nonGoogleScripts |
| Survicate ウィジェット | svw |
nonGoogleScripts |
| Tradedoubler 見込み顧客コンバージョン タグ | tdlc |
nonGooglePixels |
| Tradedoubler 販売コンバージョン タグ | tdsc |
nonGooglePixels |
| Turn コンバージョン トラッキング タグ | tc |
nonGoogleScripts |
| Turn データ収集タグ | tdc |
nonGoogleScripts |
| Twitter ユニバーサル ウェブサイト タグ | twitter_website_tag |
nonGoogleScripts |
| ユニバーサル アナリティクスのタグ | ua |
google |
| Upsellit グローバル フッタータグ | uslt |
customScripts |
| Upsellit 確認タグ | uspt |
customScripts |
| Ve Interactive JavaScript タグ | vei |
nonGoogleScripts |
| Ve Interactive Pixel | veip |
nonGooglePixels |
| VisualDNA Conversion タグ | vdc |
nonGoogleScripts |
| Xtremepush | xpsh |
nonGoogleScripts |
| Yieldify | yieldify |
nonGoogleScripts |
| トリガー | ID |
Classes |
|---|---|---|
| 要素の視認性リスナー / トリガー | evl |
google |
| クリック リスナー / トリガー | cl |
google |
| フォーム送信リスナー / トリガー | fsl |
|
| 履歴リスナー / トリガー | hl |
google |
| JavaScript エラーリスナー / トリガー | jel |
google |
| リンククリック リスナー / トリガー | lcl |
|
| スクロール距離リスナー / トリガー | sdl |
google |
| タイマー リスナー / トリガー | tl |
google |
| YouTube 動画リスナー / トリガー | ytl |
google |
| 変数 | ID |
Classes |
|---|---|---|
| ファースト パーティ Cookie | k |
google |
| 自動イベント変数 | v |
google |
| 定数 | c |
google |
| コンテナのバージョン番号 | ctv |
google |
| カスタム イベント | e |
google |
| カスタム JavaScript 変数 | jsm |
customScripts |
| データレイヤー変数 | v |
google |
| デバッグモード | dbg |
google |
| DOM 要素 | d |
google |
| 要素の視認性 | vis |
google |
| HTTP リファラー | f |
google |
| JavaScript 変数 | j |
google |
| ルックアップ テーブル | smm |
google |
| 乱数 | r |
google |
| 正規表現の表 | remm |
google |
| URL | u |
google |
次の表は、利用可能なクラスと、他のクラスとの関係を示しています。「自動的にホワイトリストに登録」列は、その行のクラスがホワイトリストに登録されたときに暗黙的にホワイトリストに登録されるクラスのリストを表します。 同様に、「自動的にブラックリストに登録」列は、その行のクラスがブラックリストに登録されたときに暗黙的にブラックリストに登録されるクラスのリストを表します。
| クラス | 説明 | 自動的にホワイトリストに登録 | 自動的にブラックリストに登録 |
|---|---|---|---|
customPixels |
ユーザーが定義した URL にピクセルを送信できます。 |
nonGooglePixels
|
customScriptshtml
|
customScripts |
ユーザーが指定した JavaScript コードを実行できます。 |
htmlcustomPixelsnonGooglePixelsnonGoogleScriptsnonGoogleIframes
|
html
|
google |
Google がホストしているスクリプトを実行し、ピクセルを Google に送信することのみできます。 | ||
html |
customScripts のエイリアスです。これはカスタム HTML タグの ID でもあることに注意してください。これにより、以前のユーザーも customScripts クラスを活用できます。 |
customScriptscustomPixelsnonGooglePixelsnonGoogleScriptsnonGoogleIframes
|
customScripts
|
nonGooglePixels |
ピクセルを Google 以外のドメインに送信できます。 |
customPixelscustomScriptshtmlnonGoogleScriptsnonGoogleIframes
|
|
nonGoogleScripts |
Google 以外から提供されたスクリプトを実行できます。 |
nonGooglePixels |
customScriptshtml
|
nonGoogleIframes |
Google 以外のドメインから iframe を挿入できます。 |
nonGooglePixels |
customScriptshtmlnonGoogleScripts
|
プロトコル連動 URL を使用する
デフォルトでは、Google タグ マネージャーのコンテナ スニペットは常に https を使用してコンテナを読み込みます(https://www.googletagmanager.com)。
これにより、悪意のある第三者や不正な情報収集からコンテナを保護できるほか、多くの場合でパフォーマンスも改善されます。
Google タグ マネージャーのコンテナをプロトコルに連動して読み込む場合は、コンテナ スニペットのソース URL プロトコル(下記のハイライト表示部分)に https:// ではなく // を使用します。
<!-- 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=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
プロトコル連動 URL を使用すると、コンテナは http:// URL のページでは http を使用して読み込まれ、https:// URL のページでは https を使用して読み込まれます。
以前のバージョンの Google タグ マネージャーのコンテナ スニペットでは、コンテナを読み込むためにプロトコル連動 URL が常に使用されていました(//www.googletagmanager.com)。
このような以前のプロトコル連動バージョンの Google タグ マネージャーのコンテナ スニペットは、更新しなくても引き続き機能します。
Google タグ マネージャーのほとんどのタグ テンプレートもプロトコル連動に対応しているため、保護されているページで配信されるカスタムタグを設定する際には、そうしたタグもプロトコル連動か保護されているページに対応するよう設定しておく必要があります。