夜更かし工房

稼げるクリエーターになりたい方へ有益な情報をお届け!

【2016年最新版】ゼロから解説!Unityで開発したゲームにUnityAdsで広告を載せて収益を得る手順

f:id:nightowlgames0314:20160922054329j:plain

UnityAdsって何?

UnityAdsの特徴

UnityAdsはゲームに特化したゲーム内動画広告です。広告の内容は"ゲームのアプリの動画形式の広告"限定になっています。また、対応しているプラットフォームはiOSAndroidのみです。UnityAdsはUntiyに公式サポートされている広告サービスでとにかく実装が簡単です。あなたはUntiyAdsであなたのゲーム内に動画広告を載せることで収益を得ることができます。

UnityAdsを選ぶメリット

実装が驚くほど簡単

Unityに公式サポートされている広告サービスなので実装が驚くほど簡単です。UnityAdsは登場した当初からとても簡単に実装できる広告サービスでしたが、Unity5.2以降では初期化のコードを書く必要が無くなったりSDKのインポートすら不要になるなどの幾つかの大きな変更点があり、さらに簡単に扱えるようになりました。

Appleの審査でリジェクトされない

Appleのアプリ内広告に対する姿勢は2014年頃から厳しくなっています。バナー広告やアイコン広告、ウォール広告など様々な種類の広告がありますが、それらの広告はリジェクトの理由になってしまうことがあります。かつてあまりにもリジェクトされすぎるので無料アプリ業界に激震が走ったこともあると聞いています。ですが動画広告に関してはインセンティブ付与も含めてAppleは許可する方針でいます。

収益モデル

「UntiyAdsは、ユーザーに広告動画を見てもらい、実際にインストールされると収益が発生する」のように書かれた記事が多いのですが、それは正確ではありません。出稿される広告によって収益モデルは異なります。

①CPI(Consumer Price Index)=インストール時に開発者へ収益が発生する

②CPV(Cost Per View)=動画視聴「開始時」に開発者へ収益が発生する

欧米ではCPIが主流ですが、日本ではCPVが多いようです。

1回の再生あたりに貰える広告収入の単価というのは広告のジャンルや時期によって変動するので正確な値はわかりませんが、およそ2円〜1円と言われています。時期によって変動するというのは例えば、クリスマスがあり広告出稿が集中する12月に比べて1月は広告出稿が減りやすい上に再生回数は伸びやすいため再生単価は下がりやすくなります。

UntiyAdsを利用する際の注意点 

動画が在庫切れになることがある

動画の再生回数についての上限設定はありませんが、動画の種類数については24時間ごとに最大25種類までという上限設定があり、一度視聴した動画はその後1時間は同じユーザーに表示されません。なので短期間に複数回動画を視聴すると、所謂「在庫切れ」の状態になることがあります。残念ながらこの場合は Advertisement.IsReady() の値が false を返し、動画広告を表示することができません。

UntiyAdsを使用した動画広告の再生後に実機のみ音が鳴らなくなる不具合

Untiy5.3.5f1でUntiyAdsを使用した動画広告の再生後に実機のみ音が鳴らなくなる不具合がありました。最新のUnity5.4.1f1にアップデートすることで無事に解決しました。不具合の原因を考えている時に下記のリンク先がとても参考になりました。

teratail.com

起動時に広告の初期化に失敗するとアプリを終了しない限りずっと広告が再生されない

アプリ「ゲームが起動されたよ。広告の準備しといて!」(Advertisement.Initialize())

アプリ「広告を再生したいんだけど準備はできてる?」(Advertisement.isReady())

UntiyAdsサーバー「できてるよ」

アプリ「広告表示!」(Advertisement.Show())

という流れでUntiyAdsの広告は再生されています。この最初のAdvertisement.Initialize()が起動時の1度きりしか呼び出されないのでそこで失敗してしまうと広告が再生されなくなります。詳細はこちらの記事がとても参考になりました。

freelyapps.blog.jp

「開発したアプリは13歳以下の児童も対象にしていますか?」という意外と重要な項目

UntiyAdsの設定をしている時に必ずこの質問をされます。「13歳以下の児童にも遊んでもらえた方が良いから✔︎しておこう」と安易な考えで設定をしてしまっている方も多いと思いますがここでの回答が広告収益に大きな影響を及ぼすかもしれません。

米国の13歳以下の児童も遊べるアプリケーションを開発する開発者は、COPPA 条例(the Children’s Online Privacy and Protection Act) に従う必要があります。COPPAは、13歳未満の子供から個人情報をオンラインで収集するときに、子供のプライバシーとオンラインの安全性を守るために適用される法律です。つまりこの項目にチェックを入れた場合、Unity Analytics および Unity Adsで収集するデータが制限されます。13歳以下の子供も対象に含むことでダウンロード数が伸びるという恩恵がある一方で収集するデータが制限されるというのが具体的にどういったデメリットがあるかというと、UnityAdsには、プレイヤーの情報から最適な広告を配信する仕組み( Behavioral targetingがあります。Unity の Machine Learning Based Targeting(機械学習ベースのターゲティング)が最も適切なプレイヤーに広告をお届けするのです。しかし13歳以下も対象とするゲームの場合、UnityAds は Behaviorally targeting を行いません。 COPPA レギュレーションによって 13歳以下のユーザーに Behavioral targeting のための情報収集を行うことは禁じられているためです。

アプリ内課金の有無やその内容にもよりますが、13歳以下のユーザーが収益に繋がらないと思うのならいっそ13歳以下のダウンロードを制限して、COPPAによる制限から解放され、Unity Analytics および Unity Ads両方の恩恵を最大限に活用するというのも一つの手です。 

UntiyAdsを実装する手順

UntiyAdsにログインする

こちらのリンクからUntiy Adsの公式サイトに飛んでください。

unityads.jp 

f:id:nightowlgames0314:20160922031326p:plain

 「はじめる」をクリックしてます。

f:id:nightowlgames0314:20160922032607p:plain

「UDNログイン、または登録」をクリックします。

UDNというのはUnity Developer Networkの略称です。2012年にUnityのユーザーアカウントシステムが刷新されて各サービスがシングルサインオン(一つのアカウントでログイン)に対応しました。Unity Adsのアカウントを作らなくてもUnityのアカウントでログインできます。

f:id:nightowlgames0314:20160922055205p:plain

「EARN MONEY WITH YOUR GAMES」をクリックしてください。

ここではUntiyAdsを利用する目的を問われていて、前者は「あなたのゲームに動画広告を載せて収益化します」という意味で、後者は「広告を出稿してあなたのゲームに新規ユーザーを獲得します」という意味です。

f:id:nightowlgames0314:20160922062741p:plain

UntiyのIDとPasswordでログインします。

UntiyAdsの広告を有効にする

f:id:nightowlgames0314:20160922055646p:plain

ログインしたら上図のページに飛ぶので「Add new project」をクリックしてください。

f:id:nightowlgames0314:20160922055854p:plain

「Enable UnityAds for an existing project」という項目は「既存のプロジェクトで広告を有効にする」という意味です。UntiyのNewProjectから既にアプリを生成済みならこちらのプルダウンメニューから選択します。僕は今回PuzzleMatchThreeというプロジェクト名でアプリを作っていたのでそれを選択しています。その右にある「Create a new peoject and enable UnityAds」は今ここで最初から広告が有効になっているプロジェクトを生成するということです。左側から既存のプロジェクトを選択する場合は不要な項目です。

f:id:nightowlgames0314:20160922060634p:plain

iOSのプラットフォームでリリースする予定があるなら①の領域をクリックしましょう。一つ前の画像と比べると分かりますが、①の領域の右上に「✔︎」がつきます。領域内に「This game has not been published yet」という項目があり、これは「アプリをまだリリースしていません」という意味でデフォルトでは✔︎がついた状態になっています。もし既にアプリをリリース済みならこの✔︎を外すと、その上にある入力欄がアクティブになるのでAppStoreのURLを貼りましょう。Androidのプラットフォームでリリースする予定があるなら同じように②の領域をクリックしましょう。

③の✔︎項目は「このゲームは13以下を対象としていますか」という意味になります。

この項目は広告収益に大きな影響を与えうるとても重要な項目です。この記事の目次から飛べる「UntiyAdsを利用する際の注意点」の方に詳細を書いておきます。そちらを読んでチェックをつけるかどうかを選んでください。

全ての設定が終わったら④をクリックします。

f:id:nightowlgames0314:20160923071500p:plain

このページはUntiyAdsの具体的な実装手順を案内してくれています。

IOS AND ANDROID INTEGRATION (NON-UNITY)」の枠は、Untiy以外で開発したアプリでUntiyAdsを利用する場合の手順です。

「UNTIY INTEGRATIONS」の枠は、Unity5.1よりも古いバージョンで開発したアプリでUntiyAdsを利用する場合の手順です。

Untiy5.2以降で開発している方が大多数だと思いますが、その方々はこのページは無視して「OK, Got it!」をクリックしてください。何もしなくても初めからUnityAdsを使える環境は整っています。

f:id:nightowlgames0314:20160922071843p:plain

こちらが管理画面になります。広告の収益を確認したりアプリのGAME IDを確認したりできます。赤枠で囲まれた箇所をクリックします。

f:id:nightowlgames0314:20160922072409p:plain

赤丸で囲まれた箇所がそれぞれiOS用とAndroid用のGAME IDです。あとで使います。

UntiyAdsを実装する

初期化する

f:id:nightowlgames0314:20160922084724p:plain

Untiyでプロジェクトを開いて、画面右上の赤丸で囲まれた雲のアイコンをクリックすると「Services」というタブが開きます。

f:id:nightowlgames0314:20160922084828p:plain

赤枠で囲まれた箇所をクリックしてUntiyのアカウントを選びます。 

f:id:nightowlgames0314:20160922085024p:plain

Adsという項目がOFFになっているのONにするためにクリックします。

f:id:nightowlgames0314:20160922085344p:plain

赤丸で囲まれているトグルをクリックして、AdsをONに切り替えます。

f:id:nightowlgames0314:20160922085439p:plain

このアプリが13歳以下も対象にしているかどうかのチェック項目です。必要に応じてチェックをしましょう。「Continue」をクリックして次に進みます。

f:id:nightowlgames0314:20160922085619p:plain

「Advanced」という項目が現れるので、赤丸で囲まれた矢印をクリックします。

f:id:nightowlgames0314:20160922085713p:plain

赤枠で囲まれた箇所に先ほど取得したGAME IDを入力します。

ここに入力しておくことでアプリ起動時に自動でAdvertisement.Initialize("GAME ID", false)を呼び出して広告の準備を始めてくれます。ちなみに第一引数は登録したゲームID、第二引数はテストモードがONかOFFかです。UnityAdsに関する古い記事だとこの初期化をコードで実装していますが、今現在ではその必要はなく、上図の箇所で指定するだけで済みます。

使用する場所でusingする

using UnityEngine.Advertisements;

広告表示する

// 広告表示できるなら
if
(Advertisement.isReady()) { // 広告表示  Advertisement.Show(); }

これだけで広告がでるようになります