・約3分で読めます

CSPでGoogleアナリティクス・AdSenseがブロックされる罠 — connect-src/frame-srcの落とし穴と対処【2026】


PRXサーバー国内シェアNo.1のレンタルサーバー。高速・安定・サポート充実で初心者にもおすすめ。
Xサーバー 公式サイト →

セキュリティのために厳格なCSP(Content Security Policy)を入れていると、正規のGoogleアナリティクスやAdSenseまで静かにブロックされることがあります。実際に、当方のサイトで「GA4の一部ヒットが弾かれる」「AdSenseの広告枠が表示されない」という問題が起き、いずれもCSPの設定漏れが原因でした。同じ構成の方がハマりやすいので、原因と対処をまとめます。

CSPは「許可したものだけ」通す

CSPは、ページが通信・埋め込みできる先をホワイトリストで制限します。代表的なディレクティブは次の通りです。

ディレクティブ 制御対象
script-src 実行できるスクリプトの取得元
connect-src fetch / XHR / ビーコン等の通信先
frame-src iframeで埋め込める先
img-src 画像の取得元

問題は、許可し忘れたものは黙って拒否されること。エラーはコンソールに出ますが、画面上は「なんとなく動いていない」だけに見えるため、気づきにくいのです。

ケース1:GA4のヒットが一部ブロックされる(connect-src)

GA4は計測ヒットを1つのドメインだけでなく、複数のドメインへ送ります。connect-src に主要ドメインしか許可していないと、コンソールにこんなエラーが大量に出ます。

Refused to connect to 'https://....' because it violates the
following Content Security Policy directive: "connect-src ..."

基本のページビューは通っていても、Google Signals(デモグラフィックやクロスデバイス)用の別ドメインが弾かれ、コンソールエラー+一部データ欠落という中途半端な状態になります。

対処は、connect-src にGA4関連のドメインを追加すること。基本の計測ドメインに加えて、シグナル系・計測補助系のドメインも許可すると、エラーが消えてデータも揃います。許可すべきURLはコンソールエラーにそのまま表示されるので、それを拾って追加するのが確実です。

ケース2:AdSenseの広告が表示されない(frame-src)

AdSenseの広告はiframeで配信されます。ところが、セキュリティ重視のテンプレートでは frame-src を次のように完全禁止にしていることがあります。

frame-src 'none'

これだと、AdSenseのスクリプト自体は読み込めても、広告の中身(iframe)が一切表示されません。審査用にコードを設置しても、広告枠が空のままになります。

対処は、frame-src'none' から、Googleの広告配信ドメインを許可する形に変更すること。あわせて、広告スクリプトの取得元を script-src に、計測通信を connect-src に追加します。広告系はサブドメインが多いため、ワイルドカード指定が現実的です。

コンソールエラーが最大のヒント

CSP問題のデバッグは、開発者ツールのコンソールがすべてです。

  • violates the following Content Security Policy directive を探す
  • どのディレクティブ(connect-src / frame-src 等)が拒否したか
  • どのURLが拒否されたか

この3点を読めば、「どのディレクティブに、どのドメインを足せばいいか」がそのまま分かります。推測で許可を広げる前に、まずエラーを読みましょう。

設定を変えたらテストも更新する

CSPをユニットテストで検証している場合、ディレクティブを変更したらテストも更新が必要です。たとえば frame-src 'none' を前提にしたテストは、広告のために緩めた時点で落ちます。ポリシーとテストをセットで変えるのを忘れずに。

まとめ

  • CSPは「許可漏れ=黙って拒否」。画面では気づきにくい
  • GA4は複数ドメインへ送るため、connect-src の許可漏れで一部が欠ける
  • AdSenseは広告がiframe配信なので、frame-src 'none' だと表示されない
  • デバッグはコンソールの CSP エラーを読むのが最短
  • CSPを変えたら、関連するテストも一緒に更新する

セキュリティを固めることと、計測・収益化を動かすことは両立できます。鍵は「何を許可すべきか」をエラーから正確に読み取ることです。


※ 本記事は当方の実運用での対応をもとにした技術メモです。具体的なドメイン一覧は構成・時期により変わるため、コンソールエラーを根拠に設定してください。

関連記事: AstroでGA4が計測ゼロになる罠 — is:inlineのJSXエスケープでgtagスクリプトが壊れる原因と対処法