Unityで作ったゲームにAdMob広告を実装したい!!
どうも、Linです。ボトル、寄付しました。
「Unity で作成したアプリに広告を載せたい・・・・!」
そんな時に使えるのユニティ公式のUnity Adsという広告がありましたね??
もちろん、Unityではそれ以外の広告も掲載することができます。
中でも多くのアプリで使われているのが、 Google が提供するネットワーク広告の、
AdMobというアプリ広告
です。
こちらは簡単に言うと、
サイト広告 Google アドセンスのアプリ版。
Google のネットワーク広告で、ユーザーの関心やアプリの内容との関連性に基づいて最適な広告を表示してくれます。
今日はこちらのAdMob広告をUnityで作成したアプリでも表示する方法を勉強してみました。
参考にさせて頂いた 神記事はこちらになりますね↓
UnityのゲームにAdMobを実装する前の準備
UnityのゲームでAdMobを使う前の準備として、
- AdMobのアカウントを作成
- アプリの登録
- 広告の作成
という準備が必要です。
これにより、
- アプリ ID
- 広告 ID
を手に入れるところからスタートしますよ。
AdMobのアカウントの作成
AdMobのアカウントを作成していきましょう。
こちらのページから登録画面に遷移しまして、

規約に同意するとアカウント作成が完了します。

アプリ登録
AdMob広告を掲載したいアプリ情報を登録します。

ストア公開になっている完成済みのものでもいいですし、ストア未公開のアプリでも登録できるようになっています。

今回はテストということでAndroidのOSで「mobtest」という名前のアプリを登録してみました。
広告を作成する
AdMobの広告を作成してきます。
AdMobには
- バナー
- インタースティシャル
- リワード
- ネイティブアドバンス
という4つのフォーマットがあります。

今回は一番簡単そうな「バナー広告」を作ってみました。
広告の種類を選んで名前を付けて作成完了です。
今回は「bannertest」と命名しておきましたね。

アプリ ID と広告 ID を入手
ここまでの登録が完了すると、
- アプリ ID
- 広告 ID
をゲットできます。

広告実装のために必要な情報なので、どっかにコピーしておくと便利ですね。
UnityのゲームにAdMob広告を実装する方法
いよいよAdMob広告を実装してきますよ。
プラグインをダウンロード
まず、こちらのGoogle公式のスタートページから最新のプラグインをダウンロードします。
そのページから「DOWNLOAD THE PLUGIN」をクリック。

すると、最新のプラグインがダウンロードできるGithubのページに遷移するでしょう。
その中から今回は、
GoogleMobileAds.unitypackage
をクリックしてダウンロードします。

プラグインをUnityのアセットフォルダにインポート
プラグインをダウンロードできましたら、Unityゲームのアセットフォルダにインポートしていきます。
Assets > Import Package > Custom Package
とすすみ、先ほどダウンロードしたGoogleMobileAds.unitypackageを選択してインポートします。

全てのファイルにチェックマークをつけてインポート。

これでアセットフォルダに必要なファイル群が入りましたね。
広告表示用のスクリプト作成
AdMob広告を表示するためのスクリプトを書いていきましょう。
「Shift + Command + N」で空のゲームオブジェクトを作成し、そいつに新しいC#のスクリプト「GoogleAds.cs」をアタッチ。

スクリプトの内容は次の通り↓
using System.Collections; using System.Collections.Generic; using UnityEngine; using GoogleMobileAds.Api; public class GoogleAds : MonoBehaviour { // Use this for initialization void Start () { // アプリID string appId = "アプリID"; // Initialize the Google Mobile Ads SDK. MobileAds.Initialize(appId); RequestBanner(); } private void RequestBanner() { // 広告ユニットID これはテスト用 string adUnitId = "広告ID"; // Create a 320x50 banner at the top of the screen. BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the banner with the request. bannerView.LoadAd(request); } // Update is called once per frame void Update () { } }
まず4行目の「using GoogleMobileAds.Api;」でAdMobを表示させるために必要な名前空間を宣言。
さらに、Start関数内でアプリ IDを初期化してやります。
18行目からはバナーの表示の関数(RequestBanner)の内容になりますね。
25行目で広告を表示するためのBannerViewクラスのインスタンス(bannerView)を作成し、第一引数に広告ID、第二引数に広告の種類、第三引数に広告を表示する場所を指定してやっていますね。
今回は、
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
とすることで、
- 広告ID=adUnitId(上の行で広告IDを代入したstring型の変数)
- バナーの種類=Adsize.Banner(バナー)
- 広告の位置=AdPosition.Bottom(下)
となっているのですね。
あとはこいつをLoadAdsメソッドで読み取ってやると無事にAdMob広告が表示されるようになるでしょう。
一旦、テスト用のAdMob広告で試してみたいときは、
アプリID | ca-app-pub-3940256099942544~3347511713 |
---|---|
広告ID | ca-app-pub-3940256099942544/6300978111 |
を代わりに入れてやり、スクリプトを次のように編集しておくといいですね↓
using System.Collections; using System.Collections.Generic; using UnityEngine; using GoogleMobileAds.Api; public class GoogleAds : MonoBehaviour { // Use this for initialization void Start () { // アプリID、 これはテスト用 string appId = "ca-app-pub-3940256099942544~3347511713"; // Initialize the Google Mobile Ads SDK. MobileAds.Initialize(appId); RequestBanner(); } private void RequestBanner() { // 広告ユニットID これはテスト用 string adUnitId = "ca-app-pub-3940256099942544/6300978111"; // Create a 320x50 banner at the top of the screen. BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the banner with the request. bannerView.LoadAd(request); } // Update is called once per frame void Update () { } }
ビルド
あとはUnityでビルドするだけ。
ぼくがAndroidなのでAndroidのビルド方法を見ていきます笑
いつも通り、
File > BuildSettings
と進んで、まずはプラットフォームをAndroidへ。
PlayerSettingsを開き、Other settingsのIdentificationのPackage Nameの末尾を好きなものに変更します。
今回は「com.Company.Mob」としてやりました。

この状態でBuild And Runをクリックして保存してやると・・・
きましたきました!

テスト広告を試しに表示してみたのですが、AdPosition.Bottomの位置(下部)にAdMob広告が表示されているではありませんか!
今回は一番簡単そうなバナー広告に手を出してみましたが、AdMob広告には、
- インタースティシャル
- リワード
- ネイティブアドバンス
という種類もあるようなので、これらの実装もUnityでチャレンジしてみたいと思います。
それでは!
Lin

おそらく、ブロガー。
今年でフリーランス 6年目。