読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU
{スポンサーリンク}

Unity : ゲーム画面にAdmobを表示

iOS Tips Unity Android

Admob表示させるだけなら、アセットなんて買わなくたってできます

なにせ本元GoogleさんからUnity用のプラグインが出ているのである。

github.com

なお、すでにAdmobのアカウントは取得済みで、広告も作成済みとします。

Unityプラグインを導入してみる

まずは上記サイトから、GoogleMobileAds.unitypackage をダウンロードしましょう。

Unityを開いた状態で、ダウンロードしたファイルをダブルクリックすると、自動でプロジェクトへのインポートが行われます。

ソースの先頭に以下の一行を加えたら、準備完了です。

using GoogleMobileAds.Api;

バナー広告を表示する

バナー広告というのは画面に常に出ているタイプの小さな広告です。
以下のようなコードで表示できます。

BannerView ShowBannerView = new BannerView("AdmobのユニットID", AdSize.Banner, AdPosition.Bottom);

AdRequest.Builder builder = new AdRequest.Builder();
AdRequest request = builder.Build();

// 表示する
ShowBannerView.LoadAd(request);

インタースティシャル広告を表示する

インタースティシャル広告とは、全画面に表示される 収益性の高い広告 です。

こちらは表示させる前に初期化が必要です。

// 広告を初期化する
InterstitialAd interstitial = new InterstitialAd(Globals.ADMOB_INTERSTITIAL_UNIT_ID); 
AdRequest.Builder builder = new AdRequest.Builder();
AdRequest request = builder.Build();

// 広告が表示可能になったときのコールバック
interstitial.OnAdLoaded += (handler, EventArgs) =>
        {
              // 広告を表示する
              interstitial.Show();
        };

// 広告が閉じられたときのコールバック
interstitial.OnAdClosed += (handler, EventArgs) =>
        {
              // 後処理
              interstitial.Destroy();
        };

// 広告がエラーになったときのコールバック
interstitial.OnAdFailedToLoad += (handler, EventArgs) =>
        {
              // エラー処理
              Debug.Log("err!");
              interstitial.Destroy();
        };

// インタースティシャル広告のロード
interstitial.LoadAd(request);

テストデバイスを追加する

バイスごとに固有のIDを使うと、そのデバイスのみ、収益が発生しないテスト用の広告を表示させることができます。

// テストデバイスのリスト
string[] TestDeviceList = new string[] {
       "xxxxxxxxxxxxxx", "yyyyyyyyyyyyy"
};

foreach (var deviceId in TestDeviceList)
{
       builder.AddTestDevice(deviceId);
}
AdRequest request = builder.Build();

バイスIDは、デバイス上で本番用の広告を表示させたときに、ログに出力されます。
Androidならadb, iOSならXcode上で確認することができます。

iOSビルド時に必要なこと

AppStoreにアップロードするとき、Info.plist に以下のプロパティを含める必要があります。

NSCalendarsUsageDescription - Advertisement would like to create a calendar event.
NSBluetoothPeripheralUsageDescription - Advertisement would like to use bluetooth.
NSCameraUsageDescription - Advertisement would like to use Camera.

これを入れないとアップロードに失敗するので注意。
こちらのサイトを参考にしました。

本家サイト

Game Developers: Ads Best Practices  |  AdMob by Google  |  Firebase

Amazon.co.jpアソシエイト