目次
AdMob広告をUnityアプリに実装する手順
Unityでアプリを開発していますが、せっかくなら少しでも収入を得られると嬉しいですよね。
今回の記事ではUnityで自分の作ったスマホアプリにAdMob広告の実装手順を書いていきます。
AdMobはあの有名なGoogleさんが提供している広告になります。
クリック単価は低いものの実装のしやすさや、何の設定をしなくてもユーザーにあった広告媒体を表示してくれるなど、初めて実装する方にとってはすごく扱いやすい広告になっています。
それでは実装していきます。
今回はバナー広告の表示手順です。
実装方法
ちなみにAdMobへの登録方法などは記載していません。
既に登録は終わっていることを前提にしていますので登録を終えていない人はAdMobへのアカウント登録を済ませてください。
プライグインをダウンロード
Googleが用意しているUnity用のプラグインのダウンロードが必要になります。
下記のリンクからプラグインのUnityパッケージをダウンロードしてください。
最新バージョンがある場合は最新パッケージをダウンロードしてください。

Unityにプラグインを取り込む
広告を表示させたいプロジェクトをUnityで開く。
【Assets】→【Import Package】→【Custom Package...】をクリックして、先ほどダウンロードしたGoogleMobileAdsPlugin.unitypackageを選択する。
インポートを選択
すべてのファイルのチェックボックスがオンになっていることを確認し【Import】 をクリックします。
必要なファイルがUnityに取り込まれます。
Resolve処理の実行
Google Mobile Ads Unity プラグインは、Unity Play Service Resolverとともに配布されます。
依存関係を宣言する機能を持つようになり、依存関係は自動的に解決され、Unity プロジェクトにコピーされます。
プロジェクトに Mobile Ads SDK が含まれていることを確認する手順。
【Assets】→【Play Services Resolver】→【Android Resolver】→【Resolve】
これをしないとエラーが起きます。
AndroidManifest.xmlにAdMobのアプリIDを設定
プロジェクトフォルダの【Assets】→【Plugins】→【Android】→【GoogleMobileAdsPlugin】のAndroidManifest.xmlをエディターで開き、AdMobのアプリIDを設定する。
初めはテスト用のAdMobのアプリIDを設定するのをお勧めします。
テスト用のAdMobアプリID
ca-app-pub-3940256099942544~3347511713
テスト用IDで広告が表示されるのを確認してから、最終的には自分のアプリIDに変更してください。
以下、実際のXMLファイルの記述
<?xml version="1.0" encoding ="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1">
<application>
<uses-library android:required="false" android:name="org.apache.http.legacy" />
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713" />
</application>
</manifest>
AdMobアプリIDを設定
【Assets】→【Google Mobile Ads】→【Settings】
インスペクター欄が表示されたら
【Google AdMob】→【Enabled】 のチェックボックスをオンにする。
次に、【Android】と【iOS】の各フィールドにAdMobのアプリIDを入力する。
こちらもまずはテスト用のAdMobアプリIDを入力しましょう。
ca-app-pub-3940256099942544~3347511713
Unityのスクリプト内で広告の準備
Unity内で下記のスクリプトを作成する。
GameObjectにそのスクリプトをアタッチする。
広告の初期化としてMobileAds.Initialize()を実行してMobile Ads SDKの初期化を行う。私の場合、初期化しなくても表示されました。
RequestBannerメソッドはバナー広告の表示を行う処理です。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
public class Main : MonoBehaviour
{
private BannerView bannerView;
void Start()
{
#if UNITY_ANDROID
string appId = "あなたのAndroid アプリID";
#elif UNITY_IPHONE
string appId = "あなたのiOS アプリID";
#else
string appId = "unexpected_platform";
#endif
//コメントアウトしても良い
MobileAds.Initialize(appId);
this.RequestBanner();
}
AdRequest request;
private void RequestBanner()
{
#if UNITY_ANDROID
string adUnitId = "あなたのAndroid バナーユニットID";
#elif UNITY_IPHONE
string adUnitId = "あなたのiOS バナーユニットID";
#else
string adUnitId = "unexpected_platform";
#endif
bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
request = new AdRequest.Builder().Build();
this.bannerView.LoadAd(request);
}
}
あとは実機にで実行してみる。
テストアプリIDで広告が表示できれば、自身のアプリIDに変更してください。
各広告ごとに、スクリプトを実装する
その他、各広告ごとに呼び出す方法は変わりますが、インタースティシャル広告、ネイティブ広告などがありますのアプリのシーンなど、場面にあった広告を表示してみてください。
まとめ
思った通りに広告は表示できましたか?
テストアプリIDでは広告が表示ができて、自分のアプリIDを入れると表示が出来ないケースが多く見られます。
その場合、以下のサイトの手順を踏んでみてください。
私の場合もどうしても自分のアプリIDでは表示されませんでした。
最終的には広告が表示されないままアプリ公開を行いました。
するとアプリが公開された直後に突然、広告も表示されるようになりました。
実際にアプリが公開されたことにより、AdMobへの広告リクエストが増えたことによってバナー広告が表示されたんだと思います。
つまずいたところは多少ありましたが、最終的には広告の表示が出来て一件落着。