スマホでゲームアプリを開発してストアに出しても、
ほとんどダウンロードされないのが、世の常です。
ましてや、それが有料ならば、なおさらハードルは高いでしょう。
(そのアプリの価値が知れ渡っているならば別にして・・)
なので、無料のアプリを出していくものなんですが、
ではどう稼ぐのかという話。
それは、ブログやYouTubeと同様、広告収入です。
アプリ開発するなら、広告を実装する方法は知っておかなければなりません。
そこで、本記事では、
Unityで開発するアプリに、広告を実装する方法を書き留めます。
1.主要な2社広告の違い
広告には、多様な形態(バナー広告や報酬ありきのビデオ広告など)があるので、
用途に応じて実装します。
私のような開発初心者は、
まず次の主要な2社の広告を知っておくと良いのかなと思います。
●Google社が提供する"Google AdMob"
●Unity社が提供する"Unity Ads"
両者の違いをざっくり説明すると、
Google AdMobは、より多様な形態(アプリ起動時や形のカスタマイズなど)で広告を打つことができ、広告の内容はユーザーが好むジャンルのモノが表示されます。
Unity Adsは、広告の内容がゲームであり、ゲーム好きなユーザーなら嫌気がさしにくいモノになる可能性があります。
その他、ゲームに実装する機能との相性も考慮して、実装します。
(エラーが出て実装できないなら、他にしよう^^;)
ちなみに、バナー広告、ビデオ広告、リワードビデオ広告(視聴で報酬あり)は両者とも実装可能です。
それでは、それぞれについて、”Androidアプリにバナー広告を実装する”を例に紹介します。
2.Google AdMob
2-1. プラグインのダウンロード&インポート
Google AdMob_Mobile Ads SDK(Unity)のスタートガイドから 、
Google Mobile Ads Unity プラグインをダウンロードします。
その際、Unity Editor向けの広告プレースメント(ベータ版)から、プラグインをダウンロードするようにしましょう。
※それ以外だとエラーが生じるっぽいです(2021年5月時点の実体験)。
Unity Editorを起動したら、まず開発環境(Switch Platformなど)を整えましょう。
(早めにやっておくと、時間がかかりませんので)
そして、Assetsタブ_Impot Package_Custom Packageから、
ダウンロードした「GoogleMobileAds-Ad-Placements.unitypackage」を選択します。
Importすると、次のようなウィンドウが出てきますが、
基本「Go ahead」、「Enable」で進みましょう。
「Package Manager Resolve」は何度も出てきてウザイですが、×で閉じときましょう(出しっぱでもよいかも)。
2ー2. Editor設定
図のように
Assets_External Dependency Manager_Android Resolver_Resolveを選択します。
問題なくSucceededすればOK。
ここで、いったんGoogleAdMobでAdMobアカウントを作成(or アカウントログイン)し、アプリIDを取得します。
ログインしたら、ダッシュボードから、
「アプリを追加」からアプリを作成します。
(まだ開発してストアに売ってなくてもOK)
すると、アプリIDというものが生成されると思います。
さらに、「広告ユニット」を作成していきます。
広告種類はバナーを選んで、わかりやすい広告ユニット名にしましょう。
すると、広告ユニットIDが生成されてると思います。
Editorに戻って、図のように
Assets_Google Mobile Ads_Settingを選択します。
Inspectorが「GoogleMobileAdsSetting」になっているので、
「Google AdMob」の「Enabled」にチェックを入れ、
App ID(アプリID)を入力します(今回はAndroidに)。
最後に、シーンにあるゲームオブジェクト(テストの場合、空のオブジェクト)に、バナー広告を表示するScriptを作成し、アタッチします。
using System.Collections; using System.Collections.Generic; using UnityEngine; using GoogleMobileAds.Api; public class AdMobTest : MonoBehaviour { void Start() { #if UNITY_ANDROID string appId = "ca-app-pub-3940256099942544~3347511713"; #elif UNITY_IPHONE string appId = "ca-app-pub-3940256099942544~1458002511"; #endif MobileAds.Initialize(appId); RequestBanner(); } private void RequestBanner() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/6300978111"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/2934735716"; #endif // Create a 320x50 banner at the top of the screen. BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top); // Create an empty ad request. AdRequest request = new AdRequest.Builder().Build(); // Load the banner with the request. bannerView.LoadAd(request); } }
広告の表示がどのようになるか確認テストをしたい場合、
appId(アプリID)およびadUnitId(広告ID)には、
このScriptの文字列※をそのまま入力します。
※これはテスト用IDです
AdMob管理画面で得たアプリIDと広告IDは、
商品を完成版としてビルドする際に、Scriptにそれぞれ入力します。
なお、AndroidとiPhoneの両方を記載していますが、
Androidだけなら、iPhoneのコード部分は削除してもかまいません。
ビルドして実機でもテスト確認しておくとよいでしょう(図はEditor内の実行ですが)。
エラーなく実装できたならば、広告の出し方に精を注ぎましょう。
3.Unity Ads
続いて、Unity Adsの広告実装も紹介します。
3-1. Editorに「Advertisement」をインストール
Unity EditorのWindowタブ_PackageManagerから、
「Advertisement」をインストールします。
これだけでEditorにUnity Adsの機能が積み込まれました!
3ー2. Unity AdsでProject作成とGameIDの取得
Windowタブ_General_Serviceをクリックすると、
Inspector横にUnity Adsの設定画面が出てきます。
Monetizeを有効化し、Test modeにチェックします。
そして、Go to Dashboardから、Unityアカウントにログインして、ProjectIDとGameIDを取得しにいきます。
ダッシュボードでMonetize_Projectsにいき、開発するアプリ用のProjectを作成します。
作成すると、自動でPlacementsに切り替わるはず。
(切り替わらなければ、左のPlacementsをクリック)
デフォルトでは、videoとrewardedvideoがセットされていますが、バナーはありませんので、「Add Placement」でIDはbannerなどとして、作成します。
そして、ここでGame IDも確認できるので、控えて(コピーして)おきましょう。
Android向けアプリなら、下のIDがGoogleストア用です。
※ちなみに、「Project Setting」からProjectの詳細情報を、一覧で確認できます。
3-3. 広告表示させるScriptをアタッチ
空のゲームオブジェクトを作成し、
そこにバナー広告を表示させるための以下のScriptをアタッチします。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Advertisements; public class UAdsTest : MonoBehaviour { public string gameId = ""; //"GameID"を入力 public string bannerId = "banner"; public bool testMode = true; // Start is called before the first frame update void Start() { Advertisement.Initialize(gameId, testMode); StartCoroutine(showBanner()); } IEnumerator showBanner() { while(!Advertisement.isInitialized) { yield return new WaitForSeconds(0.3f); // 0.3秒後に広告表示 } Advertisement.Banner.SetPosition(BannerPosition.TOP_CENTER); //バナーを上部中央にセット Advertisement.Banner.Show(bannerId); } }
このScriptに、GameIDと広告IDを記載します。
実行すると、バナーが表示されますね。
TestModeは、完成版をビルドするまでは、有効にしておきましょう。
というわけで、
"Google AdMob"と"Unity Ads"のバナー広告のつけ方をそれぞれ紹介しました。
バナー広告は単純なコーディングで実装できますが、
動画広告などは、コーディングがより複雑になってきます。
その辺、私自身も整理がついたら、後日まとめたいと思います。
それでは^^