Google Tag Managerについて調べてみた
業務で、直接ソースコードに埋め込んでいた計測・広告タグをのを、Google Tag Manager(以下GTM)を導入し順次GTMからのタグ配信をすることになりました。そのプロジェクトを進めるにあたって、概念的な部分から設定についてなど調べてみました。
GTMとは
Google Analyticsなどの計測タグやGoogle広告などの広告タグを、コード編集なしで一元管理・設定・配信できるタグ管理システムです。
アカウントとコンテナ
GTMを設置したい、しようとなった場合に、アカウントとコンテナというものを作成する必要があります。
- アカウントは企業や組織、団体、個人管理などのくくりで作成するもの
- コンテナはGTMを設置するサイト単位で作成するもの
例えば、株式会社AがBというサービスサイトとCというカンパニーサイトにGTMを導入したい場合は以下のように作成します。
- アカウント
- 株式会社A
- コンテナ
- サービスサイトB
- カンパニーサイトC
バージョンとワークスペース
コンテナで作業する際に、ワークスペースの中で作業する必要があります。
これはGitと同じようなもので、バージョン管理をしてくれるものです。
メインのブランチからワークスペースを切って作業をして、変更に問題がなければメインに反映させるという流れで作業でき、複数人での作業も簡単に行うことができます(コンフリクトなども対応できるらしい)。
参照:GTMで複数人での運用向け機能「ワークスペース」が実装されました
環境
環境という概念があり、本番用や検証用などで環境を区切ることができます。環境によってタグの出し分けや、設定したバージョンを環境毎に反映させることなども可能です。
ex) 検証環境と本番環境で、別々のユニバーサルアナリティクスタグを使うなど。
Googleタグマネージャの新機能「環境」を使って複数の環境を効率的に管理する | 株式会社アクシス
ウェブコンテナとサーバーコンテナ
通常はコード上に埋め込んで使用するウェブコンテナというパターンが多い。
- タグが増えてくると、それぞれのタグが各種分析サーバーへデータ送信をするため、処理が多くなる。
- もっと複雑なことをしたい(あまりイメージわかないけどデータ前処理・加工とか?)
そういう場合にはサーバーコンテナという方法もあるようです。
GCPにコンテナを建てて、サーバー上で諸々の処理を行うことができ、以下のようなメリットがあります。
- Webサイト側での処理の軽量化
- 送信データに対するより複雑な処理の実施
- 処理やデータの隠蔽
- 通信データの通信前最終チェックを一元化できる環境づくり
反対にデメリットとしては以下です。
- 計測のロスト率上昇のリスク
- ビジネスサイトの本番環境での利用は有料
- 前述のメリットの享受は設定難易度が高い
Google Tag Managerのサーバーサイド タグ設定でGA4タグを管理してみた | DevelopersIO
データレイヤー
GTM上の設定だけでは情報に不足があって、アプリケーション上からGTMへデータを渡したいことが出てくるが、そういう場合はデータレイヤーというものを使います。
ex)ユニバーサルアナリティクスのイベント送信や、トランザクションデータの送信など。
webアプリでの使い方はフロントエンドのJSで、 dataLayer
という変数にオブジェクトを push
すれば、GTM側で検知してくれてデータを渡すことができます。
dataLayer.push({
hoge: 'hoge',
})
GTMの設定項目について
設定できる項目は以下の3つです。
タグ
ユニバーサルアナリティクスやGoogleタグなど、解析やマーケティングのサービスプロバイダーが提供するコードのセグメントを設定できます。
設定はGTMの管理画面上で行い、ソースコード上にはGTMのタグを記述するだけで様々なタグを配信できます。
呼び出すタイミングもトリガーを設定すれば、意図したタイミングで呼び出すことが可能です。
トリガー
要素のクリック、ページビュー、データレイヤーの値などでイベントを検知する設定ができます。
タグを配信するには少なくとも1つは設定する必要があります。
変数
変数は2つのタイプがあります。
- 組み込み変数
- ページURL、ページパスなど、アプリケーション上から取得できる値でカスタマイズができないタイプ
- ユーザー定義変数
- ユーザーが設定できるタイプ
- ex) ユニバーサルアナリティクスのコードなど
Discussion