Unityゲームの収益化シリーズ第二弾 後編 です。今回も引き続き「Google AdMob」の実装方法について紹介していきます。
●前回までのおさらい
・AdMobアカウント登録
・アプリ登録
までやりました。
前編をご覧になっていない方はこちら!
今回は
・広告ユニットの作成
・SDKの導入
・実装とテスト
という内容になります。それではまいりましょう。
Google AdMob実装 後編「SDK実装」
前回の続きから作業していきます。
アプリ登録が済んでいない方は🔍アカウント登録編をご覧ください。
広告ユニット作成
まず広告ユニットを作ります。
AdMob管理画面にログイン後、左側メニューの アプリ から広告を作りたいアプリを選んで「広告ユニットを追加」をクリックします。
・バナー
・インタースティシャル
・リワード
・ネイティブアドバンス
・アプリ起動(ベータ版)
というフォーマットがあります。これらの中から実装したい広告を選んで「広告ユニット」を作成します。
今回は最もシンプルな「バナー広告」を実装してみます。画面下に表示されるあれです。
バナーの「選択」をクリックします。
「広告ユニット名」は必須です。
詳細設定を展開するとさらに下記設定が現れます。
・広告の種類
・自動更新
・eCPM Floor
これらは全てデフォルトで問題ないです。特にeCPM Floorを適当に$100とかにすると広告が配信されなくなりますので注意です。
最後に「広告ユニットを作成」をクリックします。
これで広告ユニットが作成できました。
「アプリID」と「広告ユニットID」は実装時に必要ですので、メモしておきましょう。
AdMobダウンロード
スタートガイド内のリンクから、AdMobの最新版をダウンロードしましょう。
下記にアクセスし、「プラグインをダウンロード」をクリックします。
パッケージインポート
ダウンロードしたパッケージをプロジェクトにインポートします。
(1) プロジェクトを開く
(2) [Assets] > [Import Package] > [Custom Package] を選択
(3) GoogleMobileAdsPlugin.unitypackage を選択
(4) 全てのチェックが入っていることを確認してImport
Mobile Ads SDKを追加
次にMobile Ads SDKというものを追加します。
これはなんぞやという話ですが…
スタートガイドより引用Google Mobile Ads Unity プラグインは、Unity Play Services Resolver ライブラリとともに配布されます。 このライブラリは、Android 固有のライブラリ(AAR など)または iOS CocoaPods にアクセスする必要がある Unity プラグインで使用するためのものです。これにより Unity プラグインは依存関係を宣言する機能を持つようになります。依存関係は自動的に解決され、Unity プロジェクトにコピーされます。
ようするに動作するために必要なものです(超省略)
OS別に追加方法をご紹介します。
(A) iOS の場合
2020年9月現在、iOSで対応することはありません。
(B) android の場合
[Assets] > [External Dependency Manager] > [Android Resolver] > [Resolve] を選択
かなり深いところにあります。
実行すると何やら処理が始まり、件のSDKが追加されます。
Platformが android になっていないと実行できませんので注意です。
アプリIDを登録
[Assets] > [Google Mobile Ads ] > [Settings] を選択すると、InspectorにAdMobの設定ウィンドウを表示します。
(この項目が表示されていない場合SDKの追加が未完了です。↑の手順を再確認して下さい)
「Google AdMob Enabled」にチェック。
「AdMob App ID」に先ほどメモった各OSの「アプリID」を入力します。
android版は作ったけどiOS版は作ってない、みたいなケースがあると思います。KuroMikanもそうです。
未作成のOSの入力フィールドに下記の「sample ID」を入力します。
ca-app-pub-3940256099942544~3347511713
これを入力しておくことでエラーを回避できるようです。
準備はこれで完了です。
バナー広告の実装
広告をコントロールするプログラムを作ります。
GoogleAds.cs と命名します。
using UnityEngine;
using GoogleMobileAds.Api; // この名前空間の宣言が必要
public class GoogleAds : MonoBehaviour
{
private BannerView bannerView;
// Startで初期化
void Start()
{
DontDestroyOnLoad(this);
MobileAds.Initialize(initStatus => { }); // 初期化
RequestBanner(); // バナー呼び出し
}
// バナー呼び出し関数
public void RequestBanner()
{
// 広告ユニットID
#if UNITY_ANDROID
string adUnitId = "ca-app-pub-5520934489213301/597330****"; //and
#elif UNITY_IOS
string adUnitId = "ca-app-pub-5520934489213301/628179****"; //ios
#else
#endif
bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom); // 320x50のバナー生成
AdRequest request = new AdRequest.Builder().Build();
bannerView.LoadAd(request); // リクエスト実行
}
// バナー停止関数
public void StopBanner()
{
bannerView.Hide();
bannerView.Destroy();
}
}
adUnitId は、先ほどメモった各OSの「広告ユニットID」に書き換えて下さい。
GoogleAds.cs が作れたら、ヒエラルキー上で右クリック > 空のオブジェクトを作成し、「GoogleAds」と命名。
このオブジェクトにさっき作った「GoogleAds.cs」をドラッグ&ドロップしてアタッチします。
これで完了しましたので、テストしてみましょう。
エディタ上で実行してもバナーは表示されませんので、ビルドして実機で実行します。
無事に表示されました!
アカウント発行から実装完了までが早すぎると広告が表示されない場合があります(笑)
そういうときは少し時間を置いてみましょう。
というわけでAdMobバナー広告の実装方法でした。
他の広告ユニットについてはKuroMikanのテストが成功し次第記事にしようと思いますが、あまり期待せずにお待ちください。
■Unity広告SDK関連まとめ