はじめに
久しぶりにAdMob
を実装したいと思うのですが、手順をすっかり忘れてしまたので備忘録の意味合いも兼ねて残しておきたいと思います。
AdMobプラグインをインポートする
まずは以下のGitHub
からプラグインをダウンロードしてください。
またバージョンは最新のものを選ぶと良いでしょう。というのも古いバージョンだと広告が表示されなくなったりする場合があり、アプリをリリースした後の定期的なプラグイン更新は開発者の恒例行事です。
unitypacakge
をUnityに入れれば準備OKです。
全てにチェックマークをつけいている状態でImport
を押してください。
Mobile Ads SDKが含まれているか確認する
Mobile Ads SDK
がインストールされていなければプラグインは動作しません。
Assets -> External Dependency Manager -> Andriod -> Resolve
を選択肢、以下のウィンドウが表示されれば無事にインストールされています。
AdMobからアプリIDを取得する
AdMobからアプリを追加し、アプリIDを取得します。
(ストアに出していなくてもアプリを追加できます)
あとはプラットフォームを選んで、アプリ名を入れば完了です。
アプリIDはアプリ -> アプリ設定
を選ぶことで知ることができます。
UnityプロジェクトとアプリIDを紐づける
先程取得したアプリIDをプロジェクトに設定します。
Assets -> Google Mobile Ads -> Settings...
を選択。以下の画像の箇所にアプリIDを入力してください。
広告を実装する
あとはどの広告を実装するか判断しながら、以下の公式サンプルを参照してみてください。
ダミーのバナー広告を表示する
今回は例としてダミーのバナー広告を表示してみます。
using GoogleMobileAds.Api; using UnityEngine; public class GoogleMobileAdsBanner : MonoBehaviour { #if UNITY_ANDROID private const string AdUnitId = "ca-app-pub-3940256099942544/6300978111"; #elif UNITY_IPHONE private const string AdUnitId = "ca-app-pub-3940256099942544/2934735716"; #else private const string AdUnitId = "unexpected_platform"; #endif private BannerView _bannerView; public void Start() { // アプリを起動した後に一度だけ実行する MobileAds.Initialize(initStatus => { }); RequestBanner(); } private void RequestBanner() { // 前のBannerViewのインスタンスが残っていたら破棄する if (_bannerView != null) { _bannerView.Destroy(); _bannerView = null; } // 新しいバナー広告を作成・表示する _bannerView = new BannerView(AdUnitId, AdSize.Banner, AdPosition.Bottom); var request = new AdRequest.Builder().Build(); _bannerView.LoadAd(request); } private void OnDestroy() { // バナー広告を破棄するときは必ずDestoryしないと、メモリリークするようです _bannerView?.Destroy(); } }
MobileAds.Initialize()
はアプリを起動した後に一度だけ呼んでください。
上の例だと複数回呼ばれてしまう可能性があるので、実用する上ではSingleton
かRuntimeInitializeOnLoadMethod
あたりを使うと良いかもしれません。
また広告削除の権利を取得・一定回数動画広告を見たら削除等でバナーを削除するときは、BannerView.Destroy()
を実行してください。
さいごに
この記事を書いていて思ったのですが、公式ドキュメント・スタートガイドがかなりしっかりしているのでこんな記事を見ずにそちらを参照した方がいいと思います。
developers.google.com
常に最新の情報が載っていますし、正確性でも良いでしょう。
ではまた。