UnityAds

環境

Unity 5.3.4

概要

UnityAdsはUnityが提供してくれている広告用機能で、簡単に広告導入を実装することができます。
動画広告を見てアプリをインストールしてもらうと報酬が発生します。
また、動画を最後まで見たかどうかを判定できるので、
きちんと最後まで見てくれたユーザーにアイテムなどの付与をすることもできるので
ユーザーが広告を見ても損をしないシステムを構築することが可能です。

導入方法

導入はUnityのService設定でAdsをONにするだけで導入できます。

Service表示

Serviceは上段メニューのWindow => Serviceで表示されます。

Ads設定

Ads画面へ

Service画面では様々な機能の有効、無効の表示がされています。 この中からAdsの状態ボタン(ON or OFF)をクリックすることでAds画面に遷移します。 unity_0186 unity_0186

有効、無効設定

Ads画面では設定状態やサンプルコード、ドキュメントの確認、編集ができます。 有効、無効の設定は画面上部にあるトグルボタンで行います。 unity_0187 unity_0187

画面説明

unity_0189 unity_0189 ①.項目 表示項目の切り替えができます。 「SETTINGS」「CODE SAMPLES」「DOCS」を選択できます。 ・SETTINGS 設定確認、編集ページです。 ・CODE SAMPLES Adsのサンプルコードのページです。 ・DOCS ドキュメントページです。 ②.Pratform このAdsで使用するプラットフォームを選択できます。 iPhoneとAndroidで設定可能です。 ③.TestMode 広告をテストモードで実行するかどうかの設定です。 ④.Advanced アプリのプラットフォーム毎に設定されている GameIDが表示されています。 ⑤.Supported Platforms この機能で使用できるプラットフォームの種類が表示されています。

使用方法

必要なクラス

UnityAdsには「UnityEngine.Advertisements」が必要です。 例: using UnityEngine.Advertisements;

初期化

この初期化メソッドはUnityバージョン5.2以降では呼び出す 必要はありませんが、一応説明をしておきます。 Initializeは広告機能を初期化するメソッドで、 ゲーム中に1度すれば大丈夫なので起動時と同時に呼び出します。

Initializeメソッド仕様

メソッド名: Initialize 引数: int GameID 今回初期化するGameID bool test_mode テストモードのON、OFF (デフォルト引数) 内容: 指定したGameIDでAdvertisementを初期化します。 テスト中はtest_modeをtrueにして実行するようにします。 ※test_modeの設定はAdsの設定が優先されます。 具体例: Advertisement.Initialize(11111, true);

使用可否判定

初期化が無事終了して広告が使用可能かどうかの判断は IsReadyメソッドを使用します。

IsReadyメソッド仕様

メソッド名: IsReady 引数: string zoneId 広告の種類 (デフォルト引数) 内容: 広告が使用可能かどうかの判定をします。 引数にzoneIdを指定した場合は指定したIDの 広告使用可能かの判断が行われ、 引数指定なしの場合デフォルトのzoneIdが使用されます。 具体例: if (Advertisement.IsReady()) { Debug.Log("使用可能"); }

無限ループ

IsReadyが失敗した場合に再度IsReadyを呼び出すことがありますが、 通信障害で機能しない場合、ループし続けることになります。 なので失敗の回数や秒数経過で再生をあきらめるような 処理を実装しておいたほうが安全です。

再生

広告を再生するにはShowメソッドを使用します。

Showメソッド仕様

メソッド名: Show 引数: string sozeId 広告で実行するzoneId (デフォルト引数) ShowOptions options 終了時のコールバック処理をメソッドを 設定できるクラス (デフォルト引数) 内容: 指定した広告の再生を行います。 もし、終了時にユーザーに報酬を与えるなら ShowOptionsにコールバックメソッドを指定すると 終了時に呼び出されるので、その際に報酬を 付与できます。 具体例: if (Advertisement.IsReady("rewardedVideoZone")) { ShowOptions options = new ShowOptions { resultCallback = Result }; Advertisement.Show("rewardedVideoZone", options); } private void Result(ShowResult result) { switch (result) { case ShowResult.Finished: Debug.Log("広告表示成功"); // ここで報酬をユーザーに付与する break; case ShowResult.Skipped: Debug.Log("スキップされました"); break; case ShowResult.Failed: Debug.LogError("失敗しました。"); break; } }

報酬付与

広告をきちんと再生したユーザーに対して報酬を付与したい場合は Showの説明で書いていますが、ShowOptionsクラスを使用して 広告表示結果を取得します。 ShowOptionsにはresultCallbackというメンバ有り、 ここにコールバックメソッドを指定すると 広告再生終了後に再生結果を通知してくれます。

resultCallback

戻り値なし、引数にShowResult型の変数を持つ メソッドを渡すことで再生終了後、 どのような形で再生が終了したかを通知してくれます。 具体例: // 戻り値:なし // 引数:ShowResult result private void Result(ShowResult result) { }

ShowResult

ShowResultは「Finished」「Skipped」「Failed」があり、 各状態で処理を分岐させます。 ・Finished 再生が無事終了した場合に渡される値です。 この値が帰ってきたらユーザーに報酬を与えます。 ・Skipped 再生をスキップした場合に渡される値です。 スキップしているので何もしないことが多いです。 ・Failed 再生が失敗した場合に渡される値です。