見出し画像

GTMタグが入っていないサイトで設定検証を行う方法

こんにちは。イシイ( @tomohiko_ishii )です。

先日、Google Tag Manager(以下、GTM)を使ってGoogle アナリティクス(以下、GA)の設定をしていた時、こんな要件が出てきました。

・公開前のデモ環境
・GTM、GAタグは入っていないが、設定だけは先にすすめたい

こういったケースの解決策として、「自分の閲覧時のみ、タグを挿入する」設定を行いました。時間があったので上記の方法をとりましたが、本当に正しい方法は、「実際にタグを入れてもらう」です。

スクリーンショット 2021-09-02 0.49.39

備忘録として実装方法をまとめておきます。必要に迫られることがあれば、活用してください。

全体の構成イメージ

スクリーンショット 2021-09-02 1.00.27

今回の設定イメージは、上記のようになります。

サーバ側からクライアント側へresponse時に、プロキシをかませてbodyをrewriteし、タグを強制的に挿入するフローを想定しています。
GAのようなクライアント側で動くものは、クライアント側に戻ってきた時点でタグが存在すれば、そのクライアント上だけですが発火してくれます。挿入したタグが呼び出されると、いつも通りGAにデータが送られ記録されます。

この実装のメリット・デメリット

■メリット

・タグが入っていないサイトでも、設定やテストが可能

■デメリット

・ソースが修正されているわけではないので、自分以外は計測されない(本実装の際はタグを入れてもらうことが必要)

こんなイレギュラーなことはせず「実際にタグを入れてもらう」が正解だと思います。

利用するツール

Charles
通信のモニタリングなどができるプロキシツールです。
無料で利用できますが、「30日限定」「1回の起動は30分まで」といった制限があります。

以下、ダウンロードし、インストールされていることを前提に進めます。

実装方法

以下、すでにGTMやGAの基本的な設定が済んでいて、タグを入れるだけの状態を前提に進めます。
また、mac環境での実装となります。windowsで同様なのかは検証していません。

1. SSL Proxy の設定

Charlesを起動し、テストしたいサイトがSSLの場合、メニューから「Proxy > SSL Proxy Settings...」を選択。以下のように設定します。

画像3

・「Enable SSL Proxying」にチェックを入れる
・「Include」の「Location」で、Addを選択する
・「Host」に対象のドメインを入力し、完了したらOKをクリック

2. 証明書の設定

「Help > SSL Proxying > Install Charles Root Certificate」を選択し、証明書の設定を行います。

・証明書をインストールする
・キーチェーンアクセスが立ち上がるので「charles」を含む証明書を検索
・出てきた証明書を「常に信頼」とする。

3. リライト設定

「Tools > Rewrite」を選択し、「rewrite rule」を開いて設定します。
今回は、テストサイトに自分の管理外のタグマネージャーが入っていたので、「GTM-」で始まるIDをリライトして使えるようにしました。何のタグが入っていない場合、「</head>」などをトリガーにして、GTMのタグをrewriteで挿入するとよいでしょう。

画像4

・「Enable Rewrite」にチェックを入れる
・「Add」でルール追加画面を開く
・「Location」で「Add」を選択し、Hostに対象のドメインを入力する
・「Type」「Action」で「Add」を選択し、ルールを追記する
・「Type」を「Body」で設定、「Match」「replace」にルールを記入

画像5

4.確認

確認は以下の方法で行うことができます。

・ソースを見てリライトされていることを確認

▼リライト前

画像6

・リライト後

画像7

138行目の赤枠が書き変わっていることがわかります。


・GAのリアルタイムでデータが飛んでいるかを確認

画像8

リアルタイムの画面で、データが飛んでいることを確認します。

ここまでで、設定は完了です。ここまできたらGTMで好きなように設定を変更し、テストします。

------------------- 2021年9月2日 14時追記 -------------------

Tag Manager Injectorを利用した設定

chromeの拡張機能でも出来ることをスプマロさんに教えてもらいました。

拡張機能での実装のメリット・デメリット

■メリット

・ソフトをインストールする必要がない
・dataLayerの設定も可能

■デメリット

・ソースが修正されているわけではないので、自分以外は計測されない

利用する拡張機能

Tag Manager Injector

GTMコンテナスニペットをWebページに挿入してくれる拡張機能です。データレイヤー変数の設定もできるので、GTMとdataLayerを使った検証を行うこともできます。

Tag Manager Injectorの設定方法

画像9

・コンテナIDを入力
・挿入するサイトのホスト名を入力
・必要に応じてdataLayerを設定
・「Start」を押すと反映

これだけで、設定完了です。

dataLayerについて

この拡張機能で設定したdataLayerがどのタイミングで読み込まれているのかを確認するため、「Inject」というイベントを、dataLayerで設定してみました。

画像10

デバッグモードで確認すると「Container Loaded」の直後にInjectというイベントが発生しています。GTMタグが発火する前にきちんと読み込まれています。

拡張機能のダウンロードページの説明にも、以下のように書かれているので、記述の通りですね。

- Pre-define data layer variables before the container is loaded

dataLayerが利用できるので、UserIDなどを使った設定のテストも可能です。

GTMを利用するのであれば、こちらの機能の方が非常に使いやすいと思いました。一方で、CharlesはGTMの挿入以外もでき、イベント取得しやすいようなソースの修正を伴う確認も可能なので、使い分けかなと思います。(そこまでやるのか・・・)

おわりに

今回は、タグが入っていないサイトでGTM、GAの設定検証を行う方法について紹介しました。ただ、こんなイレギュラーなことはせず「実際にタグを入れてもらう」が正解だと思います。

使いどころがほぼない設定ではありますが、どなたかのお役に立てば幸いです。

この記事に関するご意見やご感想は、ぜひTwitterなどで教えてください。
最後までお読みいただき、ありがとうございました!

-------------------

この記事は、Yoshi(@motoy0shi)さんの記事の構成をオマージュして作成しております。

-------------------

【告知枠】告知することを募集してます

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