見出し画像

【GTM】データレイヤーとは

データレイヤーとは

サイトとGTMの間にあるデータを一時的に貯める箱のようなもの。
GTMはこの箱の中にあるデータを取り出してタグ・トリガー・変数に使っている。

データレイヤーは、GTMコンテナタグがページに読み込まれた際に自動でされるため、サイト内にあるデータのほとんどは自動的にデータが追加される。

データレイヤーを使うメリット・デメリット

メリット

ほとんどのデータは特別な設定をしなくても自動でデータが追加される。

デメリット

サイト内に含まれていないデータは別途データレイヤーの設定をする必要がある。

※サイト内にないデータの一例

  • ユーザーID

  • ページのカテゴリ

  • 拡張eコマース用のデータ

データレイヤーの実装方法

STEP1:データレイヤーを作成する

注意:データレイヤーのコードを設置する位置は必ずGTMコンテナタグよりも上の位置に追加する。

データレイヤーの箱は1つしか作ることができないため、GTMコンテナタグよりも下でデータレイヤーを作成しようとすると、すでにデータレイヤーの箱があるためエラーになる。

なお、GTMコンテナタグはすでにデータレイヤーがある場合はその箱を引き継いでデータを追加するため、GTMコンテナタグよりも前にデータレイヤーがあってもエラーにはならない、


★適切なデータレイヤー設置例

<script>
  dataLayer = [];
</script>

<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->


★不適切なデータレイヤー設置例

<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->

<script>
  dataLayer = [];
</script>

STEP2:データレイヤーにデータを追加する

■データレイヤーの中にデータを追加する方法
①「=」を使ってデータを代入する
②「push」メソッドを使ってデータを追加する ★推奨

①「=」を使ってデータを代入する

■「=」を使う実装は非推奨
「=」を使うデータの代入は、データレイヤーの中身を完全に上書きする方法。仮にGTMコンテナタグよりも下にコードを追加した場合、それまでに貯めたデータを上書きしてしまうため、GTM自体が動かなくなるため、リスクがかなり高い。

<script>
  dataLayer = [{
    変数名1: "値1",
    変数名2: "値2"
  }];
</script>

②「push」メソッドを使ってデータを追加する

<script>
  dataLayer.push({
  変数名1: "値1",
  変数名2: "値2"
  });
</script>

「=」を使う実装とはことなり、データをシンプルに追加する実装になるため、データが上書きされる心配がない。
一方でpushメソッドは、データレイヤーにデータを追加する方法のため、GTMコンテナタグよりも上にコードを追加する場合は、必ずデータレイヤーを作成するコードの後にコードを追加する必要がある。

★適切なデータレイヤー設置例

<script>
  dataLayer = []; //データレイヤーの箱を作成

  dataLayer.push({ //箱の中にデータを追加
  変数名1: "値1",
  変数名2: "値2"
  });
</script>

<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->

最適なデータレイヤーの実装方法

以下コードをdateLayer.pushメソッドの前に追加することで、箱があるかどうかのチェックが必要なくなる。

 window.dataLayer = window.dataLayer || []; 

■処理している内容
①データレイヤーの箱があればその内容を引き継ぐ
②箱が無ければ、新規に箱を作成する


★最適なデータレイヤー設置例

<script>
  window.dataLayer = window.dataLayer || [];
  dataLayer.push({
    変数名: "値",
  });
</script>


この記事が気に入ったらサポートをしてみませんか?