Unityで作ったゲーム(アプリ)に広告を導入する時に一番選ばれている方法としてGoogleのAdmobが挙げられます。広告を表示したいならとりあえずAdmobを導入しておけば問題ないと思います。
今回の記事ではAdmobの導入手順をご説明します。
Admobを導入するにあたって概ねこちらの手順で進めていきます。
- Admobにアプリの登録を行う
- Admobのパッケージをダウンロードする
- Unityにインポートする
- AdmobのアプリIDをUnityで設定する
- コードを書く
Admobにアプリの登録を行う
アプリ→アプリを追加
AndroidかiOSのどちらかを選択
アプリストアに未登録の場合は「いいえ」を選択して「次へ」
アプリ名を決めて、「アプリを追加」ボタンをクリック
追加したら下記の画面になります。「完了」でアプリの追加が終わりです。
Admobのパッケージをダウンロードする
パッケージのダウンロードはこちらです。
基本的に最新バージョンをダウンロードすればいいです。
Unityにインポートする
Assets -> Import Package -> Custom Package…の順をクリック
先程ダウンロードしたパッケージを選択してインポートする
「API Update Required」出たら「I Made a Backup. Go Ahead!」をクリックして先を進もう
インポートしたらこうなる
AdmobのアプリIDをUnityで設定する
Assets -> Google Mobile Ads -> Settings…の順でクリック
SettingsをクリックするとGoogleMobileAdsSettingsというファイルが作成されるので、
選択してアプリIDを入れていきます。
App IDはAdmobのアプリ設定ページにあります。
アプリ -> すべてのアプリを表示を選択する
アプリIDのところをクリックするとコピーできます。
コピーしたIDをGoogleMobileAdsSettingsのところに入れていけばいいです。
コードを書く
広告の種類
- バナー
- インタースティシャル
- リワードインタースティシャル
- リワード
- ネイティブアドバンス
- アプリ起動
インタースティシャルを例にやっていきます。
とりあえずコード
using System;
using GoogleMobileAds.Api;
public sealed class AdmobUtility : SingletonMonoBehaviour<AdmobUtility>
{
#if UNITY_ANDROID
public readonly string adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
public readonly string adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
public readonly string adUnitId = "unexpected_platform";
#endif
bool isInitialized = false;
InterstitialAd interstitial;
public void InitializeAdmob()
{
if (isInitialized) return;
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize(initStatus => { isInitialized = true; });
}
public void RequestInterstitial()
{
// Initialize an InterstitialAd.
interstitial = new InterstitialAd(adUnitId);
// Called when an ad request has successfully loaded.
interstitial.OnAdLoaded += HandleOnAdLoaded;
// Called when an ad request failed to load.
interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
// Called when an ad is shown.
interstitial.OnAdOpening += HandleOnAdOpened;
// Called when the ad is closed.
interstitial.OnAdClosed += HandleOnAdClosed;
// Called when the ad click caused the user to leave the application.
//interstitial.OnAdLeavingApplication += HandleOnAdLeavingApplication;
// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the interstitial with the request.
interstitial.LoadAd(request);
}
public void Show()
{
if (interstitial.IsLoaded())
{
interstitial.Show();
}
}
public void Destroy()
{
if (interstitial.IsLoaded())
{
interstitial.Destroy();
}
}
public void HandleOnAdLoaded(object sender, EventArgs args)
{
}
public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
}
public void HandleOnAdOpened(object sender, EventArgs args)
{
}
public void HandleOnAdClosed(object sender, EventArgs args)
{
}
public void HandleOnAdLeavingApplication(object sender, EventArgs args)
{
}
}
adUnitIdはテスト用のIDになっています。
リリースしたアプリの場合は本番のIDで上書きし忘れないでください。
InitializeAdmob()はアプリ起動中に一回だけ呼んであげる必要があります。
RequestInterstitial()、Show()、Destroy()は広告を表示するたびにセットで呼ぶ必要があります。
インタースティシャル広告は基本的にシーン遷移のタイミングで表示するものなので、例えばゲームオーバー、ゲームクリアした時に呼び出して表示するなど
それ以外の詳細情報は公式ドキュメントもご確認いただけます!
超重要!app-ads.txtの設定!
app-ads.txtをちゃんと設定しないと広告が表示されない可能性があるので、しっかり設定するようにしましょう。
- 上記の手順に従ってコードスニペットをコピーしてください。
- app-ads.txtファイルを作ってコピーしたコードをそのまま貼り付けて保存。
- 作成したapp-ads.txt をデベロッパー ウェブサイトのルートに設置。(例: sampledomain.com/app-ads.txt)
- App Store Connectの「マーケティングURL」の設定がデベロッパー ウェブサイトのルートと一致しないといけません。つまりマーケティングURL/app-ads.txt。
終わりに
AdMobは個人アプリ制作者にとって重要な収入源の一つなので、アプリをリリースしたら是非設定したいですね!
今回はAdMobの導入方法について解説しました。
少しでもお役に立てれば嬉しいです。
では!
コメント