Next.js(App Router)でAdSenseが表示されないとき、最初の30分でやること
Next.js(App Router)でAdSenseが表示されないときに、slot/初期化/SPA遷移/二重scriptを30分で切り分ける。
Next.js(App Router)でAdSenseが表示されないとき、最初の30分でやることは「HTMLに data-ad-client / data-ad-slot が入っているか」「adsbygoogle.push({}) が“1回だけ”確実に走っているか」「SPA遷移(App Router)で初期化が抜けていないか」を固定順で潰すことです。
最初に結論
- “枠が出ない/空のまま”の多くは、
data-ad-slot未設定 oradsbygoogle.push({})未実行です。待っても直りません。 - Next.js(App Router)では、初回ロードだけ動いて ページ遷移後に広告が出なくなる 事故が起きやすいです(初期化の置き場所の問題)。
- scriptの二重読み込みは、
adsbygoogle.push()側のエラーを誘発しやすいので、まず「scriptは1回だけ」を担保します。
最初の30分でやること
1) 症状を分類する(この先の分岐が決まる)
- A: 枠(
ins.adsbygoogle)がDOMにない - B: 枠はあるが空(表示されない/0px/真っ白)
- C: 初回は出るが、SPA遷移後に出ない
- D: Consoleに
adsbygoogle.push()系エラーが出ている
2) 実DOMで data-ad-client / data-ad-slot を確認する(最短)
- DevToolsで
ins.adsbygoogleを探し、data-ad-client/data-ad-slotが両方埋まっているか確認 data-ad-slotが空/undefinedなら、環境変数 or 実装分岐が原因です(とくにCI/本番だけ空が多い)- ページ別slotを使っているなら、想定ページで想定slotになっているか見る
次に読む(slot未設定の最短対応):
3) adsbygoogle.push({}) が走っているか(“1回だけ”)確認する
window.adsbygoogleが存在し、push({})が例外なく実行されているか- 例外で止まると、枠があっても配信が開始されません
- “毎レンダーpush” のような過剰実行は不安定化するので、まずは 意図したタイミングで1回 を担保します
次に読む(表示0件のデバッグ):
4) scriptが二重読み込みになっていないか確認する(Next.jsでやりがち)
pagead2.googlesyndication.com/pagead/js/adsbygoogle.jsを、Layoutとページ/コンポーネントで二重に読んでいないか- 同じscriptを複数回入れると、Consoleにエラーが出たり、以降の初期化が壊れたりします
5) SPA遷移(App Router)で初期化が抜けていないか確認する(Cのとき)
- 症状が「初回だけOK」なら、遷移後にpushされていない 可能性が高いです
- まずは「該当ページの広告枠コンポーネントが、遷移後にmountされるか」を見る(mountされていなければ、配置の問題)
- mountされているのに出ない場合は、pushのタイミング/例外/重複scriptを疑います
6) 実装が正しそうでも“出ない”ときの最短切り分け
- 広告ブロッカー/拡張の影響を除外(シークレット/別端末/別回線で1回だけ確認)
- CSSで潰れていないか(親要素の高さ0 /
overflow:hidden/display:none) ads.txtの到達性が壊れていないか(404/別ドメイン/HTML)※別記事に誘導
次に読む(ads.txt):
“やってはいけない”注意(ポリシー事故を防ぐ)
- 「広告をクリックして」などの誘導文言は避けます(ポリシー違反リスク)。
- まずは実装/配信の安定化を優先し、運用上の改善はその次に回します。
相談する(最短ルート)
AdSenseの「最初の30分」ハブ: /media/adsense-first-30-minutes-hub
SiteOpsでできること
複数サイトを運用していると、原因の切り分けが「サイト別に」できずに時間が溶けます。SiteOpsでは、サイト別に見る順番を固定して、異常検知→切り分け→復旧を速くします。
- まずは ダッシュボード で、影響の大きいサイトから優先して見直せます。
- 状況を相談したい場合は お問い合わせ から送ってください(止血の順番を一緒に整理できます)
- 料金と導入の流れは 料金ページ にまとめています
- お問い合わせにこの3点があると最短です(箇条書きでOK)
- 対象ドメイン(例:
example.com) - いつから/何を変えたか(例:
5/17にNext.jsをApp Routerへ移行) - いま見える症状(例:
枠がない/空白/SPA遷移後に出ない/Consoleエラー)
- 対象ドメイン(例:
この記事を書いた人
川原
SiteOps編集チームの公開窓口として、検索、アクセス、収益データをもとにした運営判断の知見をまとめています。
関連記事
次にやること
複数サイトの検索、アクセス、収益データをまとめて見直すなら、SiteOpsのダッシュボードでサイト別に確認できます。
料金を見る相談したい / お問い合わせ