UnityでAdMobを設定する方法|Androidでテスト広告を表示するまで

白い背景の中央に配置した公式AdMobロゴ

UnityのAndroidゲームでAdMobのテストバナーを表示する手順を説明します。アプリ登録、プラグイン導入、コードの実装、実機確認の順に進めます。

1. 事前準備

初回は、Googleが用意したテスト広告で設定と実装を確認します。テスト広告ユニットは自分のAdMobアカウントと結び付いておらず、テストによる表示やクリックが自分の収益になるものではありません。開発中に自分の広告ユニットを使う場合は、端末をテストデバイスとして登録してください。公式:テスト広告

この記事のコードは、Androidの固定サイズバナーを1枚表示する、単一シーンの学習用サンプルです。リワード広告や複数シーンにまたがる広告管理は、別の実装が必要です。

用意するもの

  • Android向けにビルドできるUnity環境
  • Google Mobile Ads Unity Plugin
  • インターネットに接続できるAndroid端末
  • 自分のアプリで本番配信する場合は、AdMobアカウント

確認時点の英語版導入ガイドでは、Unity 2019.4以降(2022.2以降を推奨)、AndroidのMinimum API Levelは24以上、Target API Levelは35以上とされています。これはSDK導入の前提です。ストア公開時の要件も別途確認してください。公式:Unity導入ガイド

2. AdMobアカウントを準備する

AdMobを開き、使用するGoogleアカウントでログインします。AdSenseなどのパブリッシャーアカウントをすでに持っている場合は、それに関連付けたGoogleアカウントを使うよう公式に案内されています。

初回登録では、案内の配信希望、国・地域、利用規約などを確認します。国・地域は後から変更できないため、実際の情報に合わせて選びます。 その後、必要に応じたアカウント確認や、お支払い情報の入力を進めます。公式:AdMobへの申し込み

AdMobの初回登録画面

すでに管理画面を利用できる場合は、次のアプリ登録に進みます。複数のGoogleアカウントでログインしているときは、右上のアカウントからAdMobを登録したアカウントを選びます。登録済みでも別のアカウントを選んでいると、初回登録画面が表示されることがあります。

3. Androidアプリを登録する

AdMobの左メニューから「アプリ」→「アプリを追加」を開き、プラットフォームにAndroidを選びます。

アプリの状態 登録時の進め方
対応ストアで一般公開済み ストアに登録されていることを選び、アプリ名やストアURLで検索して対象を追加する
開発中・未公開 ストア登録の質問で「いいえ」を選び、アプリ名などを入力する

開発中のアプリは未公開として追加できます。公開後はストア掲載情報とのリンクを行います。新しいアプリの本番配信には準備状況の審査もあるため、登録しただけで本番広告の配信準備がすべて完了するわけではありません。公式:アプリのセットアップ

AdMobのプラットフォームとストア公開状況の選択

「次へ」に進み、管理用のアプリ名を入力して「アプリを追加」を押します。アプリ名はGoogle Playのパッケージ名とは別です。

AdMobのアプリ名入力欄

2種類のIDを区別する

ID 何を識別するか Unityで使う場所
アプリID(ca-app-pub-…~…) AdMobに登録したアプリ Google Mobile Adsの設定画面
広告ユニットID(ca-app-pub-…/…) バナーなどの広告枠 広告を読み込むコード

アプリIDは「アプリ」→「すべてのアプリを表示」の一覧、広告ユニットIDは対象アプリの「広告ユニット」で確認できます。Google Playのパッケージ名も、これらのIDとは別のものです。公式:IDの確認とコピー

4. バナー広告ユニットを作成する

自分のアプリで使う広告枠は、次の順番で作ります。

  1. AdMobで対象のアプリを開く。
  2. 「広告ユニット」を開く。
  3. 初回は「スタート」、追加の場合は「広告ユニットを追加」を選ぶ。
  4. 広告形式から「バナー」を選ぶ。
  5. Banner_MainMenuなど、形式と掲載場所が分かる名前を付ける。
  6. 設定を確認して「広告ユニットの作成」を選ぶ。
  7. 発行された広告ユニットIDを控える。

AdMobの広告フォーマット選択

固定サイズバナーには、バナー用の広告ユニットIDを使います。インタースティシャルやリワード用のIDは使えません。

バナー広告ユニットの名前入力欄

パートナー入札のチェック欄と作成ボタン

「パートナーでの入札」は、AdMob以外のメディエーションで入札に使う設定です。通常のAdMobバナーではオフにします。作成後は変更できません。公式:パートナー入札

広告ユニット一覧で、形式が「バナー」の行のコピーアイコンからIDを控えます。後述のテストコードには、自分のIDではなくGoogleのテスト用IDを使います。公式:バナー広告ユニットの作成

広告ユニット一覧の形式表示とIDのコピーアイコン

5. Unityにプラグインを導入し、アプリIDを設定する

プラグインをインポートする

Google Mobile Ads Unity Plugin v11.5.0の.unitypackageを使います。公式リリース

  1. 公式リリースの「Assets」からGoogleMobileAds-v11.5.0.unitypackageを取得する。Source codeのZIPは選ばない。
  2. Unityの「Assets」→「Import Package」→「Custom Package」を開く。
  3. 取得したファイルを選び、必要な項目をすべてインポートする。

公式リリースのunitypackageダウンロード欄

すでにプラグインを導入しているプロジェクトでは、新規導入ではなく、そのバージョンに対応した移行ガイドを確認してください。OpenUPMでの導入方法も公式導入ガイドに掲載されています。

Google Mobile Adsの設定を開く

「Assets」(日本語表示では「アセット」)→「Google Mobile Ads」→「Settings…」を開きます。

Google Mobile AdsのSettingsメニュー

「Google Mobile Ads App ID」の「Android」欄へアプリIDを入力します。~を含むアプリIDと、/を含む広告ユニットIDを取り違えないようにしてください。iOS欄への入力は不要です。

登録前にテスト専用の確認を行う場合は、Google公式のAndroid用サンプルアプリID ca-app-pub-3940256099942544~3347511713を使えます。本番用アプリでは自分のアプリIDに差し替えます。公式:Android用サンプルアプリID

Google Mobile AdsのAndroidアプリID欄

Androidのビルド設定はUnityのバージョンによって異なります。プラグインのGradle build pre-processorや必要な設定については、利用中のUnityバージョンに合う公式Androidビルドガイドを確認してください。

ビルド設定を手動で変える前に確認する

Google Mobile Ads設定で「Android settings」→「Enable Gradle build pre-processor」を確認します。Unity 2021.3.41f1以降は既定で有効です。有効な場合、対応するGradle・Player設定が処理されるため、公式ガイドの手動設定を重ねて行う必要はありません。

Enable Gradle build pre-processorのチェック欄

「Switch Google Mobile Ads Android architecture」はSDKを切り替える別の設定です。この記事では「Continue using the Google Mobile Ads SDK」のまま進めます。

6. テスト用バナーを表示するコードを追加する

以下は実機未検証の実装例です。TestBanner.csを作成し、次のコードを保存します。使用する広告ユニットIDは、Google公式の形式別一覧に掲載されているAndroid用の固定サイズバナーのテストIDです。公式:テストID一覧

テスト専用のサンプルです。 SDK初期化と広告表示を1つのシーンで学ぶための構成です。本番アプリでは、必要な同意処理や年齢に応じた設定を初期化前に行い、SDKをアプリ内の1か所で初期化する構成にしてください。

using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;

public sealed class TestBanner : MonoBehaviour
{
    // Androidの固定サイズバナー用。自分の広告IDではありません。
    private const string TestAdUnitId =
        "ca-app-pub-3940256099942544/6300978111";

    private BannerView bannerView;

    private void Start()
    {
#if UNITY_ANDROID
        MobileAds.Initialize(status =>
        {
            MobileAdsEventExecutor.ExecuteInUpdate(() =>
            {
                // 初期化中にシーンを閉じた場合は表示しません。
                if (this == null) return;

                if (status == null)
                {
                    Debug.LogError("AdMob initialization failed.");
                    return;
                }

                ShowTestBanner();
            });
        });
#else
        Debug.Log("Androidをビルド対象に設定してください。");
#endif
    }

    private void ShowTestBanner()
    {
        bannerView = new BannerView(
            TestAdUnitId, AdSize.Banner, AdPosition.Bottom);

        bannerView.OnBannerAdLoaded += () =>
            MobileAdsEventExecutor.ExecuteInUpdate(() =>
            {
                if (this != null && bannerView != null)
                    Debug.Log("Test banner loaded.");
            });

        bannerView.OnBannerAdLoadFailed += error =>
            MobileAdsEventExecutor.ExecuteInUpdate(() =>
            {
                if (this != null && bannerView != null)
                    Debug.LogError("Test banner load failed: " + error);
            });

        bannerView.LoadAd(new AdRequest());
    }

    private void OnDestroy()
    {
        if (bannerView == null) return;

        bannerView.Destroy();
        bannerView = null;
    }
}

空のGameObjectを1つ作り、TestBannerを付けます。GameObjectとコンポーネントを有効にしてください。同じスクリプトを複数のGameObjectに付けたり、既存の広告管理スクリプトと重複して初期化したりしないようにします。

TestBannerを付けたGameObjectのInspector

処理の流れは、SDK初期化 → バナー作成 → 広告読み込みです。GameObjectを破棄するときは、バナーも解放します。公式:バナーの実装

広告のコールバックからUnityを操作する処理は、MobileAdsEventExecutor.ExecuteInUpdate()でメインスレッドに移しています。公式:イベントのスレッド

7. Android端末で表示を確認する

Unity 6では「File」→「Build Profiles」からAndroidをビルド対象に設定し、使用するシーンを含めて「Build And Run」で端末にインストールします。Androidのビルドモジュール、端末接続、USBデバッグなども準備しておきます。

Android向けのビルドが初めての場合は、「UnityでAndroidアプリをビルドする方法」で、必要なモジュールの準備からAPKの作成、端末へのインストールまで確認してください。

確認するポイントは次の3つです。

  1. アプリが起動し、画面下部にバナーが表示される。
  2. 広告に「Test Ad」などのテスト表示がある。
  3. 読み込み成功のログが出て、失敗ログや例外が出ていない。

この3点を確認できれば、テスト用バナーの表示確認は完了です。もしここまで進めても表示されない場合は、「テスト広告が表示されないときに確認すること」で、コードの実行状態や読み込みログから原因を絞ってください。

Unity Editorでこのコードを試す場合も、Androidをビルド対象に切り替えてから再生します。Editorの広告は模擬表示であり、実機での広告表示確認とは分けて扱います。テスト広告の見た目が変わっても、本番広告へ切り替えず、使っているIDとテスト設定を確認してください。公式:Editorでのテスト・Unity公式:条件付きコンパイル

広告が出ないときに確認すること

確認する箇所 見るポイント
UnityのアプリID欄 ~を含むアプリIDを入れたか。広告ユニットIDと取り違えていないか
コードの広告ID Android用・固定サイズバナーのテストIDを使っているか
シーンとGameObject スクリプトを付けたGameObjectが有効で、ビルド対象シーンに含まれているか
ネットワークとログ 端末が接続できるか。Test banner load failedの詳細に何が出ているか
コンパイル・ビルド 広告読み込みの前に、プラグイン導入やAndroidビルドのエラーが出ていないか

広告読み込みエラーでは、コード、ドメイン、メッセージなどを手掛かりに原因を確認します。設定をまとめて変える前に、エラーの詳細を残しておくと確認しやすくなります。公式:広告読み込みエラー

8. 本番配信へ進む前に確認すること

テスト広告の表示が確認できたら、本番配信の準備を進めます。

  • 自分のAndroidアプリIDと、対応するバナー広告ユニットIDへ差し替える。自分のIDで開発中の確認を続ける端末は、テストデバイスにする。テスト設定
  • 公開アプリとストアをリンクし、アカウント・アプリの審査状況を確認する。準備状況の審査
  • Google Play向けのアプリでは、AdMobの案内に従い、app-ads.txtによるアプリ確認を行う。公式では2025年1月以降、AdMobで設定する新しいアプリでこの確認が必要とされています。公式:app-ads.txtによる確認。ファイルの設置からAdMobでの検証までの手順は、「AdMobのapp-ads.txtを設定する方法」で説明しています。
  • 配信対象とアプリの利用者に応じて、プライバシー・同意処理を整える。UMPの公式ガイドでは、起動ごとの同意情報更新、必要なフォームの表示、広告リクエスト可否の確認を案内しています。公式:Unity向けUMP。既存の広告コードへ組み込む場合は、「UnityのAdMobでUMPの同意取得を実装する方法」を参照してください。
  • Google Playでのデータ開示を、実装したSDKや設定に合わせて確認する。Google Play向けデータ開示
  • 広告が操作ボタンに重ならず、意図しないタップを誘わない配置を確認する。バナー配置の禁止事項

この学習用コードには、本番向けの同意取得、年齢に応じた扱い、画面幅に合わせるアダプティブバナー、複数シーンでの広告管理は含めていません。アプリの構成に合わせて組み込んでから本番配信に進みます。

参考コードのライセンス:Apache 2.0。