Admob表示させるだけなら、アセットなんて買わなくたってできます
なにせ本元GoogleさんからUnity用のプラグインが出ているのである。
なお、すでに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.
これを入れないとアップロードに失敗するので注意。
こちらのサイトを参考にしました。
最近のUnityだとPlayer Settingsから設定できるみたいです。