スマホでゲームアプリを開発してストアに出しても、
ほとんどダウンロードされないのが、世の常です。
ましてや、それが有料ならば、なおさらハードルは高いでしょう。
(そのアプリの価値が知れ渡っているならば別にして・・)
なので、無料のアプリを出していくものなんですが、
ではどう稼ぐのかという話。
それは、ブログや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"のバナー広告のつけ方をそれぞれ紹介しました。
バナー広告は単純なコーディングで実装できますが、
動画広告などは、コーディングがより複雑になってきます。
その辺、私自身も整理がついたら、後日まとめたいと思います。
それでは^^
