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

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

		unity_0187

●画面説明
	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

		・引数
			int GameID
				今回初期化するGameID

			bool test_mode
				テストモードのON、OFF
				(デフォルト引数)

		・内容
			指定したGameIDでAdvertisementを初期化します。
			テスト中はtest_modeをtrueにして実行するようにします。
			※test_modeの設定はAdsの設定が優先されます。

	・具体例
		Advertisement.Initialize(11111, true);

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

	・関数仕様
		・関数名
			IsReady

		・引数
			string zoneId
				広告の種類
				(デフォルト引数)

		・内容
			広告が使用可能かどうかの判定をします。
			引数にzoneIdを指定した場合は指定したIDの
			広告使用可能かの判断が行われ、
			引数指定なしの場合デフォルトのzoneIdが使用されます。

	・具体例
		if (Advertisement.IsReady())
		{
			Debug.Log("使用可能");
		}

	・無限ループ
		IsReadyが失敗した場合に再度IsReadyを呼び出すことがありますが、
		通信障害で機能しない場合、ループし続けることになります。
		なので失敗の回数や秒数経過で再生をあきらめるような
		処理を実装しておいたほうが安全です。
●再生
	広告を再生するには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
			再生が失敗した場合に渡される値です。