バージョン
Unity:2020.1.4f1
Google Mobile Ads Unity Plugin:v5.3.0
バナー広告実装の流れ
※UnityにGoogle Mobile Ads Unity Pluginをインポートしている前提
終わっていない方はこちらの記事を参考にしてください
-
【Unity】admobプラグインのインポート
続きを見る
1:広告ユニットの作成
2:バナー広告表示の実装
といった感じです、では早速広告ユニットの作成からやっていきましょう
1:広告ユニットの作成
まずは、admobにログインしてください!
ログインが完了したら「アプリ > 広告ユニット」をクリックしてください
「広告を表示する広告ユニットの作成」と表示されると思うので「スタート」をクリックして「バナー」を選択してください
適当に広告ユニット名を付けて「広告ユニットを作成」をクリックしてください
下画像のようになっていれば成功です!
緑枠内に、コード実装時に必要となる広告ユニットIDが表示されています
2:バナー広告表示の実装
いよいよ、楽しい楽しいコーディング作業をおこなっていきましょう笑
とりあえず必要最低限のコードを記載しておきます
using UnityEngine; using GoogleMobileAds.Api; public class BannerAdTest : MonoBehaviour { private string adUnitId; private BannerView banner; // Use this for initialization void Start() { //アプリ起動時に一度必ず実行(他のスクリプトで実行していたら不要) MobileAds.Initialize(initStatus => { }); //広告を表示 RequestBanner(); } private void RequestBanner() { #if UNITY_ANDROID adUnitId = "広告ユニットIDをコピペ(Android)"; //本番 //adUnitId = "ca-app-pub-3940256099942544/6300978111"; //テスト #elif UNITY_IOS //adUnitId = "広告ユニットIDをコピペ(iOS)"; //本番 adUnitId = "ca-app-pub-3940256099942544/2934735716"; //テスト #endif //広告のインスタンス生成 banner = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); AdRequest request = new AdRequest.Builder().Build(); banner.LoadAd(request); banner.Show(); } }
上記コードについて少し解説していきます
2行目:using GoogleMobileAds.Api;
これを記載しないとエラーのオンパレードになるので必ず追加してください!
13行目:MobileAds.Initialize(initStatus => { })
このコードはアプリ起動時に一度だけ呼ばれていればいいので、もし他のスクリプトで実行されていれば省略することができます
※動画リワード広告やインタースティシャル広告も表示するからといって、2回も3回も実行する必要はありません!
20~26行目:adUnitId = "広告ユニットIDをコピペ"
ここには、手順1で作成した広告ユニットIDをそれぞれコピペしてください!
※テスト表示する際は必ずテスト広告IDを使用してください!(テスト広告ID一覧)
余談ですが、気になっている方もいるかもしれないので記載しておきます
#if UNITY_ANDROID //Androidでのみ実行される処理 #elif UNITY_IOS //iOSでのみ実行される処理 #endif
これはプラットフォーム依存コンパイルという機能です(詳しくはUnity-プラットフォーム依存コンパイルをどうぞ)
29行目:new BannerView(adUnitId, AdSize, AdPosition);
ここでは、バナー広告を表示する場所やバナー広告のサイズを決めることができます
第一引数:広告ユニットIDを指定します
ここは、20~26行目ですでに指定しているので問題ないですね
第二引数:バナー広告のサイズを指定します
バナーサイズに関してはあまり詳しく知らないのでadmob-バナーサイズをご覧ください
第三引数:バナー広告の位置を指定します
バナー広告の位置に関しては次の7種類指定することができます
・Top(TopLeft/TopRight)
・Bottom(BottomLeft/BottomRight)
・Center
Youtuberのバイヤー高橋さんと共同で開発したアプリの画像です笑(宣伝したいわけではないのでこの話はこの辺で笑)
ちなみにLeftやRightは違いがいまいちわかりませんでした(名前的に左とか右に表示されるのかと思っていたけどビルドしてみると特にそんなことはなかった...)
30~32行目
まとめて記載します
30行目:AdRequest request = new AdRequest.Builder().Build();
空のrequestを作成します
うろ覚えなのですが、必ず空のオブジェクトを作成しないと広告のロードができなかった気がするので
~省略~ private AdRequest request; ~省略~ private void RequestBanner() { ~省略~ //広告のインスタンス生成 banner = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); request = new AdRequest.Builder().Build(); banner.LoadAd(request); banner.Show(); }
とはしない方がいいと思います!
31行目:banner.LoadAd(request);
ここで、バナー広告をロードします
32行目:banner.Show();
このメソッドを呼ぶことで実際にバナーを表示します!
以上でバナー広告の実装完了です、ただし実機じゃないと広告(テスト広告も含め)は表示されません!
スポンサーリンク
広告イベントについて
広告の読み込みが失敗した時に実行したい処理がある時や、広告をタップされた時に実行したい処理がある場合などは、イベントを利用しましょう(詳しくはAdMob-バナー広告-広告イベントをご覧ください)
公式のドキュメントを読んでもよくわかんない方がいると思うので(私がそうでした笑)使い方について少し説明します
例として広告の読み込みが完了した時に『Debug.Log("読み込み完了");』という処理を実行する場合を考えます
~省略~ private void RequestBanner() { ~省略~ //広告のインスタンス生成 banner = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); //広告のインスタンスを生成したらこれを追記してください //これで、広告のロードが完了したらHandleOnAdLoadedが呼ばれます this.bannerView.OnAdLoaded += this.HandleOnAdLoaded; AdRequest request = new AdRequest.Builder().Build(); banner.LoadAd(request); banner.Show(); } //広告のロードが完了したら実行したい処理を記載する public void HandleOnAdLoaded(object sender, EventArgs args) { Debug.Log("読み込み完了"); }
これだけです!簡単ですね!その他のイベントはAdMob-バナー広告-広告イベントに記載されているので読んでみてください
公式ドキュメントには「デリゲート」とかよくわかんない言葉が書いてあると思いますが、わからない方は気にしないでください!知らなくても広告は表示できるので、時間があるときにでも調べてみてください!
他の広告実装方法
インタースティシャル広告
-
【Unity】admobインタースティシャル広告の実装
続きを見る
動画リワード広告
-
【Unity】admob動画リワード広告の実装
続きを見る