Google アナリティクスで新しいプロパティを作ろうとしたら、Google Analytics 4(GA4)にバージョンアップしたらしく、取得する ID が「UA-」で始まるトラッキング ID から「G-」で始まる測定 ID というものに変わっていた。
これまで Google Analytics モジュールを使っていたが、GA4 の測定 ID を使うには、現状ではパッチを適用する必要があるらしい:
https://www.drupal.org/project/google_analytics/issues/3178179
パッチ運用は避けたいのと、ちょうど良い機会でもあるので、Google Tag Manager(GTM)を使ってトラッキングコードを管理する方法に移行することにした。テーマでテンプレートを編集して GTM のスクリプトを埋め込んでも良いが、Drupal には GoogleTagManager モジュールというものがある。Drupal 9 にも対応しているので、これを使うことにする。
インストールは、いつものように Composer と Drush でサクッと終了。
$ composer require 'drupal/google_tag:^1.4'
$ drush en google_tag
自分の Google アカウントで GTM の操作パネルにログインし、GTM の「アカウント」を作成して、配下に「コンテナ」を作成するとコンテナ ID(形式:GTM-XXXXXXX)が発行される。作成したコンテナに「Google Analytics: GA4 設定」タグを追加し、事前に Google アナリティクスで作っておいた GA4 のプロパティの測定 ID を設定する。トリガーは「All Pages」を選択して保存。最後にコンテナを公開して準備完了。
Drupal 側では、Google Tag Manager モジュールの管理画面でコンテナを追加し、GTM の操作パネルで作成したコンテナの Container ID を設定する。
正常に動作すれば GTM の2つのスクリプトがページ内に埋め込まれるはず。ブラウザで任意のページを開いて HTML ソースを見てみよう。
まず、head 要素内に次のようなコードが出力されていることを確認:
<script src="/sites/default/files/google_tag/default/google_tag.script.js?qlzstx" defer></script>
src 属性の参照先を見てみると、上で設定した コンテナ ID を埋め込んだ GTM 用のスクリプトコードが返ってくることがわかる。
もう1箇所は body 要素内の冒頭部分に下記コードを確認:
<noscript aria-hidden="true"><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
(GTM-XXXXXXX のところには、実際には上で設定したコンテナ ID が入る)
よしよし、正しく動いているようだ。
Google Analytics の操作パネルの「リアルタイム」セクションを見てみると、ブラウザでページを開いた回数が「表示回数」や「イベント数」に反映されることが確認できた。
GA4 の知識はゼロなので(笑)これから少しずつ勉強して使いこなしていこう。