Menu

Google AdSense 統合

Google AdSense は、サイトに広告を表示して収益化するためのサービスです。AdSense の導入は大きく 2 つに分かれます。

  • プラットフォーム側:AdSense の申請、サイト追加、審査通過、広告ユニット作成
  • コード側:AdSense スクリプトの挿入、(任意)広告枠コンポーネントの挿入、広告表示の確認

前提条件

  • サイトが本番環境にデプロイされていること
  • 基本的なコンテンツと必須ページ(例:About / Privacy / Terms など)があること(審査通過率の向上)

ステップ 1:申請とサイト追加

  1. AdSense を開きます:https://www.google.com/adsense/
  2. 手順に沿って登録/ログインし、サイト URL を送信します
サイトを送信
  1. ガイドに従ってサイトの所有権確認を完了します

表示されるコードの ca-pub- の後ろの文字列をコピーし、環境変数 NEXT_PUBLIC_GOOGLE_ADSENSE_ID に設定します。

.env
NEXT_PUBLIC_GOOGLE_ADSENSE_ID=xxxxxxxxxxxx
サイト確認ガイド

次に、txt 検証(ads.txt)の内容を public/ads.txt に貼り付けます。

サイト確認ガイド

ステップ 4:「自動広告」または「広告ユニット」を選択

方法 A:自動広告

AdSense の管理画面で Auto ads を有効にすると、Google が自動的に最適な位置に広告を表示します。

この方法は、上記の手順を完了すれば動作します。

方法 B:手動の広告枠

特定の場所に固定で広告を表示したい場合は、広告ユニットを作成し、ページに広告枠を挿入します。

一般的な実装例として、フロントエンドに AdSlot コンポーネントを用意します:

"use client";
 
import { useEffect } from "react";
 
type AdSlotProps = {
  adSlot: string;
  adFormat?: string;
  fullWidthResponsive?: boolean;
};
 
export function AdSlot({
  adSlot,
  adFormat = "auto",
  fullWidthResponsive = true,
}: AdSlotProps) {
  const client = process.env.NEXT_PUBLIC_GOOGLE_ADSENSE_ID;
 
  useEffect(() => {
    try {
      // @ts-expect-error adsbygoogle is injected by AdSense
      (window.adsbygoogle = window.adsbygoogle || []).push({});
    } catch {
      // ignore
    }
  }, []);
 
  if (!client) return null;
 
  return (
    <ins
      className="adsbygoogle"
      style={{ display: "block" }}
      data-ad-client={client}
      data-ad-slot={adSlot}
      data-ad-format={adFormat}
      data-full-width-responsive={fullWidthResponsive ? "true" : "false"}
    />
  );
}

AdSense 側で生成された data-ad-slotadSlot に設定し、表示したい位置で <AdSlot /> をレンダリングしてください。