なぜ危ないのか
AIが生成したHTMLに残ったMeta Pixelは、公開後すぐに本番広告アカウントへデータを送信し始めます。意図せず有効になったPixelが収集するデータは、プライバシーポリシーの記載外となるため、GDPRやPIPEDAなどの規制に抵触するリスクがあります。
特定のキャンペーンIDが紐付いた状態でPixelが残っていると、別プロジェクトのコンバージョンデータが混入し、広告の最適化に悪影響を与えます。AIが過去のサンプルコードから「参考」として出力したPixelが実際のIDを含んでいたケースも報告されており、コピーペーストする前にID値まで確認することが重要です。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
ソースで見る場所
AIが生成したHTMLをローカルに保存したら、ターミナルで`grep -n 'fbq\|facebook.com/tr\|connect.facebook.net' index.html`を実行してください。出力があれば行番号とともに該当箇所が表示されます。複数ファイルを一括チェックする場合は`grep -rn`でディレクトリを再帰検索できます。
コメントアウトされたPixelコードも無効とは限りません。一部のHTMLパーサーやブラウザ拡張はコメント内のURLを評価することがあります。`<!-- fbq`や`<!-- Facebook Pixel`という形式でコメントに残っていないかも必ず確認してください。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
安全に共有する設定
スキャンでクリーンなことを確認したHTMLは、アクセス制限付きのプレビューURLで共有してください。メールやSlackにファイルを直接添付すると、転送や誤送信で意図しない相手に渡るリスクがあります。ギガサイト便では会社ドメイン認証を設定できるため、特定企業の関係者のみアクセスを許可できます。
公開URLを発行したら、プライベートブラウザで自分でアクセスし、ブラウザの開発者ツール(ネットワークタブ)で`facebook.com`へのリクエストが発生していないことを確認してください。これが最終確認として最も確実な方法です。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
再発防止ルール
AIへのプロンプト冒頭に「このHTMLにはMeta Pixel、Google Analytics、その他外部トラッキングスクリプトを含めないこと。`<script>`タグで外部ドメインを読み込む処理を追加しないこと」という制約を必ず入れてください。制約をシステムプロンプトに組み込むと、指示の入れ忘れを防げます。
CIパイプラインにgrepベースの禁止文字列チェックを追加する方法も有効です。GitHub Actionsであれば数行のYAMLでPR時に自動チェックでき、レビュアーの目視確認に頼らず機械的にブロックできます。スキャンスクリプトをチームのテンプレートリポジトリに含めておくと横展開も簡単です。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
よくある質問
AIが出力したPixelコードのIDは実在するIDですか?
AIは学習データに含まれるサンプルIDを出力することがあります。架空のIDであっても`fbq('init', ...)`を呼び出すコードは実際にfacebook.comへリクエストを送るため、ID値に関わらず除去が必要です。
grepスキャンでPixelが見つからなければ100%安全ですか?
grepで主要なキーワードがなければほぼ安全ですが、Base64エンコードやJSの文字列結合で難読化されたPixelは検出できない場合があります。最終確認として開発者ツールのネットワークタブでfacebook.comへのリクエストの有無を実際に確認することを推奨します。
プロンプトで禁止を明示してもAIがPixelを出力することはありますか?
モデルや指示の書き方によっては制約が無視されるケースがあります。プロンプトで禁止するだけでなく、生成後のスキャンをワークフローに必ず組み込む二重チェック体制を取ることが重要です。