fro-blog
Web制作2026.05.31

Google AdSense審査前に準備すること|ads.txt・広告枠・CMP対応

Google AdSense審査前に準備すること|ads.txt・広告枠・CMP対応

個人サイトでGoogle AdSense審査に向けて準備することを、ads.txt、広告コード、広告枠、CMP、DevTools警告の切り分けまで整理します。

Google AdSense審査前に準備すること|ads.txt・広告枠・CMP対応

個人サイト制作シリーズ この記事は「Next.jsで個人ブログ兼Webツールサイトを1から作る」連載の一部です。
初めての人でも順番に進められるよう、前提知識をできるだけ省き、つまずきやすいポイントもあわせて整理しています。

個人サイトを作ったら、次に考えたいのが広告収益化です。Google AdSenseは代表的な選択肢ですが、広告コードを貼ればすぐに完了、というわけではありません。

AdSenseコードを設置する

Next.jsでは外部スクリプトに next/script を使うことがあります。ただし、AdSenseでは次のような警告が出る場合があります。

AdSense head tag doesn't support data-nscript attribute.

その場合は、app/layout.tsx<head> に通常の <script> として設置します。

<head>
  <script
    async
    src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXX"
    crossOrigin="anonymous"
  />
</head>

広告枠コンポーネントを作る

"use client";

import { useEffect } from "react";

declare global {
  interface Window {
    adsbygoogle?: unknown[];
  }
}

const enableAds = process.env.NEXT_PUBLIC_ENABLE_ADS === "true";

export function AdBanner() {
  useEffect(() => {
    if (!enableAds) return;

    try {
      window.adsbygoogle = window.adsbygoogle || [];
      window.adsbygoogle.push({});
    } catch {}
  }, []);

  if (!enableAds) {
    return <div className="min-h-[250px]">AD SPACE</div>;
  }

  return (
    <ins
      className="adsbygoogle"
      style={{ display: "block", minHeight: "250px" }}
      data-ad-client="ca-pub-XXXXXXXXXXXX"
      data-ad-slot="広告ユニットID"
      data-ad-format="auto"
      data-full-width-responsive="true"
    />
  );
}

.env.localで広告表示を切り替える

NEXT_PUBLIC_ENABLE_ADS=true

静的出力では、この値はビルド時に固定されます。

.env.localを変更
↓
npm run build
↓
本番へアップロード

ads.txtを設置する

public/ads.txt を作ります。

google.com, pub-XXXXXXXXXXXX, DIRECT, f08c47fec0942fa0

本番では以下で表示される必要があります。

https://example.com/ads.txt

ads.txtステータスが不明の場合

AdSense管理画面で ads.txt が「不明」と表示されることがあります。まず確認することです。

・https://example.com/ads.txt が表示できる
・pub-IDが正しい
・中身が空ではない
・HTMLタグが混ざっていない
・robots.txtでブロックしていない

表示できているなら、反映待ちの可能性があります。

CMP同意メッセージ

おすすめは3択です。

同意する
同意しない
オプションを管理する

外部CMPを導入しなくても、まずはGoogleのCMPで十分です。

DevTools警告の切り分け

自分のサイト側で直すものです。

A form field element should have an id or name attribute

これはフォームに idname を付ければOKです。

一方で、以下はGoogle広告iframe側の警告であることがあります。

Quirks Mode
googleads.g.doubleclick.net

まとめ

AdSense審査前に整えることです。

・AdSenseコードを設置する
・広告枠を作る
・ads.txtを公開する
・プライバシーポリシーを整える
・お問い合わせと免責事項を用意する
・CMP同意メッセージを設定する
・DevTools警告を切り分ける

次の記事では、公開前チェックと、制作中に詰まりやすいポイントをまとめます。

連載記事一覧

  1. 個人サイト制作ロードマップ|ブログとWebツールを作る全体像
  2. Next.jsで個人サイトを作る初期設定|App Router・TypeScript・Tailwind CSS
  3. Markdownでブログ記事を管理する方法|FrontmatterとSEO設計
  4. 個人サイトのページ構成とUI設計|TOP・記事・ツール・スマホ対応
  5. お問い合わせ・プライバシーポリシー・免責事項を整える方法
  6. Google AdSense審査前に準備すること|ads.txt・広告枠・CMP対応
  7. 公開前チェックとトラブル対策|Next.js個人サイトで詰まりやすいポイント