Googleアナリティクスを設定する際、GTM-XXXみたいなタグとG-XXXみたいなタグの違いがわからず、毎回不安な思いをする。整理してみたい。

まずGoogleタグについて

Googleタグとは、GoogleアナリティクスやGoogle広告といった、Google製品のデータを一元管理するために埋め込むscriptタグのことである。

以下のようなタグだ。

js
<script
  async
  src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"
></script>;

文脈によっては、上記のTAG_IDに該当するIDをGoogleタグと扱うケースも見受けられる。ただ、基本的には、Googleタグは計測用のJavaScriptファイルを読み込むscriptタグを指す。

ちなみにIDをタグとして扱うのは、IDによってGoogleタグを識別するようなケースである。

GoogleアナリティクスやGoogle広告といったサービスは、サービスごとに一意のIDを発行し、それをスクリプトに渡すことで各種サービスに応じた計測を行う。

1つのGoogleタグは複数のIDを持つ

バンジーガムがガムとゴムの性質を併せ持つのと同じように、1つのGoogleタグは複数のIDを併せ持つ。

複数のIDを併せ持つというか、後述のGT-XXXXXX系のIDを親玉としてグループ化される。グループ化されたIDは、どのIDをGoogleタグに指定しても、同じIDとして理解される。

タグIDとは、Googleタグを識別するものです。1つのGoogleタグに複数のタグIDが存在することがあります。たとえばGoogle広告のタグには、以前のID(AW)とOne GoogleタグのID(GT)の2つのIDがあります。

引用元:既存のタグ設定を分析する  |  Tags  |  Google for Developers

ここで触れられているOne GoogleタグのIDというのが、実質的なGoogleタグのIDのようである。このIDで各サービスのIDをグループ化することで、1つのGoogleタグで複数のサービスを賄えるようにしているのだ(たぶん)。

例えばGoogleアナリティクスでGoogleタグを作り、サイトに埋め込んでおけば、そのタグのIDをGoogle広告のIDと紐づけるだけで使えるようになる。サイトをいじる必要はない。

タグIDの種類

タグIDには以下のような種類がある。

接頭辞 説明
GT-XXXXXX 新しく作成された各Google タグに、一意に割り振られるID。GTはGoogle Tagの略(たぶん)。
G-XXXXXX GoogleアナリティクスのGoogleタグを識別するID。なぜかGAではなくGの接頭辞が付けられている。
AW-XXXXXX Google広告のGoogleタグを識別するID。AWはAdWordsの略。なお、AdWordsはGoogle広告の昔の名前である。
DC-XXXXXX Google FloodlightのGoogleタグを識別するID。DCはDoubleClickの略。これも昔の名前。

他にもあるかもしれないが、確認できたのはこの4つだった。

Googleアナリティクスで作ったGoogleタグにはG-XXX、Google広告で作ったGoogleタグにはAW-XXX、Google Floodlightで作ったGoogleタグにはDC-XXXといったように、各サービスに応じたIDが割り振られる。

3つのサービスのいずれかでIDを作ると、同時に一意のID(GT-XXX)が発行され、そのIDと紐づけられる。別のGoogleサービスを同じサイトに導入する際には、このIDのセットを紐づける。

GTM-XXX系IDはGoogleタグとは別物

Googleタグマネージャ(以降GTMと略す)をWebサイトにインストールするには、GTM-XXXという形式のIDが入ったscriptタグをWebページに埋め込む必要がある。

js
<!-- 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 -->

scriptタグを埋め込んだり、接頭辞がついていたり、いかにもGoogleタグと関係がありそうだ。しかし、GTM-XXX系のIDはGTMに固有のもので、Googleタグでは使われない。

GoogleタグのスクリプトがGTMのドメインでホスティングされているため混乱するが、この2つは関係こそ深いものの別物だと理解する必要がある。

GTMは、タグを一元管理するためのツールである。通常、GoogleタグはスクリプトをWebサイトに埋め込んで使う。ただ、GTMのタグがすでにWebサイトに埋め込まれているなら、GTM経由でGoogleタグを配信できる。

これは、1つのGoogleタグで複数のGoogleサービスを賄えるのに似ている。ただし、似ているだけで同じものではない。そんな関係である。

GTMはGoogleタグで配信すべき?

Googleタグは単体でも使える。各サービスの基本的なデータを計測するには、単純にGoogleタグを導入するだけで良い。

ただ、将来的により柔軟な設定を検討しているなら、GTMを経由してGoogleタグを配信した方がずっと効率的だ。ドキュメントにも、使える環境ならGTMを第一の選択肢にした方が良いというアナウンスがある。

分析タグとマーケティング タグをデプロイする第一候補として、Google タグ マネージャーをご検討ください。タグ マネージャーでは、サイトにタグをデプロイする方法やタイミングを特に柔軟に選べます。

引用元:タグの設定を計画する  |  Tags  |  Google for Developers

タグ実装が必要な Google サービスが 1 つだけ(Google 広告など)であっても、タグ マネージャーを使えば今後のサービス連携の可能性も見据えた測定プランを準備できます。

引用元:タグの設定を計画する  |  Tags  |  Google for Developers

GTMでGoogleアナリティクスのGoogleタグを配信する手順

以下、Googleアナリティクスで発行したGoogleタグをGTMで配信するまでの手順である。

  1. GoogleアナリティクスでGoogleタグを発行する。
  2. タグのID(GT-XXX)をコピーする(このIDは、同じGoogleアカウントでログインしていればGTMのアカウント情報からも確認できる)。
  3. GTMでコンテナを作成し、WebサイトにGTMのタグを埋め込む。
  4. GTMの管理画面の「サマリー」(あるいは「タグ」)に移動し「新しいタグを追加」をクリック。
  5. 選択できるタグのタイプが表示されるので、「Google Analytics」 -> 「Google Tag」を選ぶ。
  6. 「Tag id」にコピーしたIDをペーストする。
  7. 下部のトリガーをクリックし、「All pages」を選ぶ
  8. プレビューで動作を確認したら、コンテナを公開する。

GAにデータが反映されないときは

注意したいのが、選択したタグの種類と指定したタグの種類を間違えることである。例えばGoogle Tagを選んでいるのにG-XXXのIDで設定してしまうと、正しくデータが送信されない。保存時にも特にエラーを出してくれない上に、GTMのプレビュー画面では一見イベントが発生しているように見える。

しかし、この状態だとGAにはデータが反映されない。

GAのデータの反映には最大2日程度の時間が掛かるが、リアルタイムデータの項目であればわずかなタイムラグでデータを確認できる。

GTM設定時は、GTMのプレビューでの確認に留まらず、GA上のリアルタイムデータの忘れずに確かめたい。

以上である。

やったことはないが、他のGoogleサービスでも基本的な流れは変わらないと思う。

GTMのプレビューはBraveブラウザだと機能しない

地味にハマるポイントである。エラーというエラーは出ないが、GTMのプレビューはBraveブラウザだと機能しない。機能しなかったはずだが、2024年10月に試したら問題なくできた。なんだったんじゃ。

とはいえ、もし諸々正しく設定しているのにうまくいかない時は、Chromeブラウザで確かめてみると良いと思う。

参考サイト