はじめに
この内容は Google AdMob を利用してテスト広告を表示し
全体の流れを把握する目的で調査した内容のメモ書きです。
Google AdMob のガイドがわかりやすいので、そちらを参照すれば解決します。
テスト広告表示までのポイントと詰まった個所を投稿します。
- 環境
- Unity 2019.1.14f1
- Windows10 1903
Google AdMob の ガイド
ポイント
- IDはアプリIDと広告ユニットIDの2つあります。
- アプリはその名の通り、アプリに対して1つです。(AndroidとiOSは個別に取得)
- Unityのエディタで登録(Assets > Google Mobile Ads > Settings... )できます。
- 広告ユニットは、アプリに対して登録できます。(アプリに対して複数登録できます)
- 広告の種類は4パターンあります。(下のコードはバナー広告)
- 広告ユニットID は 広告クラスのコンストラクタの引数で指定します(adUnitId)
- アプリ・広告ユニットはAdMob の管理サイトで管理します
- 開発目的では、広告ユニットIDはテスト広告専用のIDを利用します。
- 実際のIDを使った場合は規約違反となるため注意します。
- 開発目的では、広告ユニットIDはテスト広告専用のIDを利用します。
詰まった点
バナー広告のガイドを参照しながら、モバイル広告の初期化 MobileAds.Initialize() に
appId を引数に与えると動作しませんでした。
Assets > Google Mobile Ads > Settings... で指定しており
コードで指定するのも冗長で妙だと思い、スタートガイドの初期化に変更したら正常に動作しました。
(appId を引数として与えるコーディングは古いバージョンのものだろうか?)
using UnityEngine;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
private BannerView bannerView;
// Start is called before the first frame update
void Start()
{
MobileAds.Initialize(initStatus => { });
this.RequestBanner();
}
private void RequestBanner()
{
# if UNITY_ANDROID
string adUnitId = "ca-app-pub-3940256099942544/6300978111";
# elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3940256099942544/2934735716";
# else
string adUnitId = "unexpected_platform";
# endif
bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Top);
AdRequest request = new AdRequest.Builder().Build();
bannerView.LoadAd(request);
}
}