KiSAKU
技術系5分で読めます

GTMの設定は誰でも読める

公開

GTMのコンテナIDをURLに打ち込むと、その設定が誰でも読めます。

開いてみる
https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXXX

返ってくるのはJavaScriptですが、その中にどんなタグが、どんな条件で発火するかが全部入っています。ログインは要りません。これは不具合ではなく、そうでなければ動かない仕組みです。

この記事で扱うこと

なぜコンテナの中身が公開されているのか、そこから実際に何が読めるのか、そして「だから何をしてはいけないか」。計測IDが公開情報であることと、その先で何が見えるかは、分けて考える必要があります。

公開されていないと動かない

理由は考えてみれば当たり前です。

GTMは、閲覧者のブラウザの中で動きます。ブラウザが設定を読み込めなければ、タグを発火させようがありません。そしてブラウザが読めるということは、人間も読めるということです。

置き場所 誰が読めるか
GTMのコンテナ設定 閲覧者のブラウザ 誰でも
サーバー側の処理 自分のサーバー 自分だけ

ブラウザで動くものに秘密は持てません。これはGTMに限った話ではなく、フロントエンドに置いたものはすべて公開されているという一般則の一例です。JavaScriptを難読化しても、通信を暗号化しても、最終的にブラウザが解釈する以上は読めます。

何が読めるのか

このサイトのコンテナを例にすると、次のようなことが分かります。

読めること この例では
使っている計測ツール GA4(測定ID付き)
タグの名前 GA4 – article_read など
発火の条件 カスタムイベント article_read
送っているパラメータ名 article_slug / article_title
データレイヤー変数の名前 同上

つまり「このサイトは何を測っているか」が丸ごと見えます。競合他社のサイトを調べる手段としても使われますし、それ自体は行儀の悪いことではありません。

逆に言えば、あなたのサイトも同じように見られています。計測の設計を秘密にしておくことはできない、と最初から考えておくのが正しい前提です。

だから、書いてはいけないもの

ここが実務上いちばん大事な帰結です。

カスタムHTMLタグに秘密の値を書かない

GTMには「カスタムHTML」というタグの種類があり、任意のJavaScriptを書けます。便利なので、外部サービスのAPIキーやトークンを直接書いてしまう事故が起こります。それは公開されたテキストファイルに書くのと同じです。コンテナを公開した瞬間、世界中から読めます。

同じ理由で、次のようなものも置けません。

社内向けの管理画面のURL、テスト環境のアドレス、まだ発表していないキャンペーンの名前。タグの名前や変数の名前にも情報が乗ります。「新製品X_LP_2026春」というタグ名を作れば、それも読めます。

IDが公開なのと、悪用できるのは別

「IDが見えるなら、誰かに偽のデータを送られるのでは」という心配が出ます。実際その通りで、GA4の測定IDが分かれば、第三者がデータを送ることは技術的にできます。

ただしこれはIDを記事に書いたから起きるのではありません。サイトを開けば誰でも分かる以上、隠しようがないからです。

心配 実際のところ
設定を書き換えられる できない。読めるだけで、変更にはGTMアカウントの権限が要る
偽のデータを送られる できる。ただしIDを隠しても防げない
秘密の値を盗まれる 置かなければ盗まれない。ここだけが自分で決められる

3行目だけが、こちらの判断でどうにでもなります。防げないことに対策を考えるより、防げることを確実にやるほうが効きます。

偽データへの現実的な対処

GA4にはホスト名で受信を制限する機能がありません。実務では、GTM側のトリガーに「ホスト名が自分のドメインのときだけ発火する」条件を足します。これはサイトを複製された場合に効きます。直接データを送りつけられるケースは、サーバー側で計測する構成にしない限り防げません。個人サイトでそこまでやる必要があるかは、別途考えるべきことです。

公開前に自分で読んでみる

実際に一度開いてみることを勧めます。自分のコンテナが何を晒しているかを、公開する前に知っておけます。

確認の手順
1. https://www.googletagmanager.com/gtm.js?id=(自分のコンテナID)を開く
2. ページ内検索で、次のような語を探す
   - key / token / secret / password
   - 社内のドメイン名
   - 未発表の企画名

何も出てこなければ問題ありません。見つかったら、公開を止めてそのタグを直します。一度公開したものは、消しても誰かの手元に残っている可能性があります。

今回の学び

まず、ブラウザで動くものに秘密は持てないということ。GTMのコンテナが公開されているのは設計の欠陥ではなく、そうでなければ動かないからです。「見えてしまう」ではなく「見えるように作られている」と理解すると、置いていいものと悪いものの線が引けます。

次に、IDが公開なのと、悪用できるのは別の話だということ。読めることと書き換えられることは違います。混同すると、防げないことに時間を使い、防げることを見落とします。

そして、名前にも情報が乗ること。値だけを気にして、タグ名や変数名を無防備にしてしまいがちです。読まれる前提で名前を付ける習慣は、持っておいて損がありません。

← ブログ一覧へ戻る