Unity Adsではまったこと 5.2以降編
Unity 5.2以降になって以来、導入もエディタ上ですべて完結するというお手軽さになったUnity Ads。記事タイトルもはまったことと書いてますが、ほぼそんなことはなく、素直に実装できました(2回目だしね)。
ただ、「Unity Ads」でググってしまうと私の記事も含めて古い環境の話だったりが結構残っていたりします。基本的には、マニュアルを読めばすべてわかる簡単なのことなのですが、なにもわからない初心者(自分)が、Unity 5.3でAdsを導入した時に「これでいいのかな?」と疑問に思ったところがあったので、改めてまとめてみます(Unity 5.2で確認していませんが同じだと思います)。
Seivicesウインドウを出してProject IDを作成
最初にやることは、Unityにログインした状態で、Unityエディタの右上にある雲(?)アイコンを押すか、Window>Service(⌘0)で、Seivicesウインドウを表示させます。そのあと「Creat」ボタンを押すだけです。組織が複数個登録されている場合は、画面に「Select organization」と出るので使用したい所属を選択して「Creat」を押します。「Creat」ボタン下にある「I already have a Unity Project ID」は、なんらかの理由でProject IDとのリンクが切れてしまった時に使用するみたいです。新しいアプリでAdsを使用したい時は、素直に「Creat」ボタンを押してIDを作成すればOKなはずです。
右上のAccountボタン、Cloudボタン : FreelyApps
表示された4つのサービスからAdsのスイッチをON
IDが作成できたら、ぞろぞろと使用できるSeivicesウインドウのトップ画面が出るので、その中の「Ads」を選んで、スイッチをONにします。
13歳以下の児童を対象にしているかどうか聞かれるので、作成しているアプリに応じで登録します。
以上でUnity Adsを利用する準備は完了です。
Advacedを開いてみると、ちゃんとiOSとAndroidそれぞれにIDが自動生成されて書き込まれています。
Unity Adsは、どうやって使うの?
次に使い方ですが、基本的な使い方もきちんとマニュアルに書かれています。
ここを読んでおくとわかるのですが、iOSとAndroid向けに作られたプロジェクトであれば、エディタ上でUnity Adsの設定を行えば、スクリプトによる初期化は必要なくなったようです。
Unity5.1以前でAsset Storeのパッケージで使うのであれば、従来のようにAdvertisement.Initializeで初期化が必要ですが、どうやら、Unity 5.2以降でこの初期化メソッドを実行してもまるっと無視されるようです。Advertisement.Initializeで設定していたテストモードの設定も、Unityエディタのチェックボタンで設定されたものが優先されるようです。
このほか、Advertisement.isReady()が、Advertisement.IsReady()になっていたり、広告再生するAdvertisement.Show()で、静止画広告のためのpauseオプションがなくなっていたりします。以前バージョンのコードを拾ってきてしまうと、エラーが起きるので余計なものはカットしてしまいましょう。
ちなみにサンプルコードもUnityエディタにあるので、そちらをコピーすればOKという至れり尽くせりな状態です。
ここでCODE SAMPLEを選べば、単純に再生する場合(SIMPLE)と、映像の再生状態によって処理を振り分けられる(REWARDあり用)のサンプルが得られます。
初期化はいらないけど、準備ができるまで多少時間は必要
先ほど、Unity Adsをアプリ側で使う時には初期化処理が不要と書きましたが、実際にはアプリが起動してから、広告再生の準備が整うまで多少の時間が必要とされるみたいです。 具体的にどれくらいの時間が必要かは検証していないのですが、実際に製作したアプリで、起動>広告再生ボタンを押す、と連続してやったところ、数秒待たないと広告再生の準備が整わない様子でした。より万全を期すならそのあたりのエラー処理も考慮すべきなのでしょう。自分はめんどくさくて、放置してますが…。