セキュリティ

AI生成HTMLにGoogle Analytics IDの残りが残っていないか確認する方法

AI生成HTMLをそのまま社外に公開したところ、GAの測定IDが残っておりクライアントのアクセスデータが自社のアナリティクスに混入してしまった、という事例はWebデザイン現場で実際に起きています。測定IDの残存は見た目では分からないため、公開前に必ず検出する習慣が重要です。

なぜ危ないのか

GAの測定ID(`G-XXXXXXXXXX`または`UA-XXXXXXXX-X`)がHTML内に残っていると、ページにアクセスした全員のセッションデータが自社のGA4プロパティに記録されます。社外のレビュアーやテストユーザーのデータが混入することで、本来の分析指標が歪みます。

より深刻なケースとして、AI生成HTMLが複数のクライアントに使い回されている場合、あるクライアント用HTMLに別クライアントのIDが混入するリスクがあります。異なるビジネスのデータが同一プロパティに混在することは、機密情報の漏洩に相当します。

  • 相手がログインなしで開ける状態か確認する
  • PCとスマホで最低1回ずつ表示を確認する
  • 内部情報・個人情報・不要な外部送信が残っていないか見る
  • レビュー期限と修正時の差し替え方を決めておく

ソースで見る場所

HTMLのソースで`G-`・`UA-`・`gtag`・`googletagmanager`を検索します。GAのコードは通常`<head>`内または`</body>`直前に配置されているため、その付近を重点的に確認します。`G-`の後に続く10桁の英数字が本番IDです。

VS Codeのターミナルで`grep -En 'G-[A-Z0-9]{10}|UA-[0-9]+-[0-9]+' index.html`を実行すると、GAのIDパターンにマッチする行だけを抽出できます。マッチした場合は該当行を確認し、ダミー値に置き換えるか削除してください。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

安全に共有する設定

レビュー用HTMLでGAタグを残す必要がある場合は、IDを`G-XXXXXXXXXX`というダミー値に変更します。ダミーIDに対してGoogleはデータを受け付けないため、実際の計測は行われません。見た目上はタグが存在しますが、データ送信は発生しません。

ギガサイト便でURL発行後に有効期限を短く設定し、レビュー完了後はリンクを無効化します。期限内に限定されたメンバーのみがアクセスできる状態であれば、仮にIDが残っていてもデータ汚染の対象者数を最小限に抑えられます。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

再発防止ルール

AIへの指示に「GAの測定IDやGoogle Tag Manager IDは出力しないこと。`G-`や`GTM-`で始まる文字列は使用しないこと」を追加します。具体的なプレフィックスを禁止することで、AIが誤って学習済みのIDを出力するリスクを下げられます。

生成後の自動チェックとして、CIで`grep -E 'G-[A-Z0-9]{10}'`を実行し、本番IDパターンが検出された場合はビルドを中止するルールを設けます。許容するダミー文字列(`G-XXXXXXXXXX`など)は除外リストに登録しておきます。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

よくある質問

Google Tag Manager(GTM)のIDもGAと同様に危険ですか?

GTMのID(`GTM-XXXXXXX`)が含まれていると、GTMコンテナで設定されたGA・Meta Pixel・Hotjarなど複数のタグがまとめて発火します。GAタグ単体より影響範囲が広い可能性があるため、GTM-IDも必ず削除または無効化してください。

GAタグを残したまま共有してしまった場合、混入したデータを後から削除できますか?

GA4ではデータ削除リクエスト機能(Admin→Data Deletion Requests)を使って特定の条件に合うデータを削除できます。ただし完全削除には数日かかり、集計済みのレポートには反映されない場合があります。気づいたら速やかに申請してください。

複数のクライアント案件を同時に進めているとき、IDを混同しないコツはありますか?

プロジェクトごとに`.env`ファイルでGA_IDを管理し、HTMLには`${GA_ID}`のプレースホルダーを記述します。ビルド時に環境変数を注入する設計にすれば、ハードコードによる混同が起きません。レビュー環境ではGA_IDを空にするか設定しないようにします。

関連記事

「セキュリティ」の記事をもっと見る →