2015年07月03日

UnityでAdStirのインターステイシャル広告を表示する

このたび、ユナイテッド株式会社さんの
AdStir「インターステイシャル広告」をいれました。
(この広告はAndroid-Free版に適用されています)

詳しくはコチラを https://ja.ad-stir.com/

それまで入れていた広告のプラグインも決して悪くはないのですが、
当時入れていたプラグインのバージョンアップがありまして、
わたしの使っているUnityのバージョンに適していなかった為、
一時的に広告を表示する処理を切ってました。

それから数カ月、
わたしの環境もプロデューサに買って貰ったパソコンによって変化。
使っているUnityのバージョンもちょっとだけ上げました。
(Unity5だと、まだ問題がありまして4.6のままなんですけど)

そんなタイミングでプロデューサに
ユナイテッドさんから広告の提案がありました。

わたしの開発環境は前述したとおりUnity4、
頂いた資料を見るとUnityのプラグインがあるとのこと、

提案書(わざわざパワーポイントで作っていただきました)を見ると
「インターステイシャル広告をタイトル画面に出すのはどうか?」
ってお話でした。



今回は

「UnityでAdStirのインターステイシャル広告」を出す方法を少し

技術者向けにはコチラ http://wiki.ad-stir.com/
が用意されているんですけど、

記述を見ると
「AdStir Unity Plugin」については「バナー広告のみ対応」

とあって混乱しましたので、
一応役に立つかどうかは別としてお話しますね。

ちなみにUnityについての記述はコチラ Unityプラグイン


(1)Unity用プラグインの入手

まずUnityのプラグインは
ユナイテッドさんに問い合わせして入手しました。

(今回は提案してくださった担当者さんがいたので、
 担当者さんにプロデューサが直接問い合わせしましたが、
 「お問い合わせフォーム」からでも大丈夫です)


(2)Unity用プラグインの導入

「Adstir.unityPackage」をもらったのでこいつを導入します。
メニューバーから

Asset> Import Package> Custom Package> 「貰ったパッケージ」を選択

パッケージの中に入っているファイルが表示されますので
(プラグインや、Androidマニフェストのサンプル等)
「Inport」をクリックします。


(3)Androidマニフェストのマージ

現在作業中のプロジェクトフォルダの中に
「Plugins/Android/AndroidManifest.xml」があると思います。

先ほどのパッケージの中にサンプルとなる

「Adstir-AndroidManifest-Full.xml」
「Adstir-AndroidManifest-Merge.xml」

が含まれていますので、
これらを参考に「AndroidManifest.xml」を変更します。
とはいっても、具体的になにを変更していいのか分かりませんよね?
わたしの個人的な考え方でよければ以下をご覧ください。

・<uses-permission android:name="android.permission.INTERNET" />
・<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

・<activity android:name="com.ad_stir.interstitial.AdstirInterstitialActivity"
android:theme="@android:style/Theme.Translucent"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

これが必要(追加)になります。

上の2行はいわゆるパーミッションの追加です。

・インターネット接続するっす!
・通信接続可能か確認したいっす!

っていう意味合いだと思っていいんじゃないかなーと、
これは 「<application>」 の上あたりに書くといいみたいですよ。

下の長い奴(<activity android:name〜)は
インターステイシャル広告を出すのに必要です。

Androidマニフェストの中には他にも
「<activity>〜</activity>」があると思いますので、
「</activity>」の次の行に入れたらいいかもね、です。

※追加する場所は同梱されている
「Adstir-AndroidManifest-Full.xml」を見ると分かると思います

(4)プラグインにパッチをあてる

インターステイシャル広告を出したいので
「Plugins/AdstirInterstitialPlugin.cs」にパッチを当てます。

※「Plugins/AdstirPlugin.cs」これはバナー広告用
※「Plugins/AdstirIconPlugin.cs」これはアイコン広告用かな?


public void OnEnable()の中で修正が必要なのは

this.LoadAd(name, "MEDIA-ID", SPOT-ID, attrs); <<ココ!

MEDIA-IDはちゃんと「MEDIA-a9999〜」と文字まで入力します。
SPOT-IDは枠番号だけなので1とか数字だけでオッケーです。

そもそも「MEDIA-ID」「SPOT-ID」とはなんぞや? って方は
こちらからサインアップして https://ja.ad-stir.com/

「メディア設定」>「スマートフォンアプリ」>「枠追加」をしてください。

枠が出来ると「タグ/SDK」というボタンが出てきます。
そのボタンを押すとSDKパラメータが表示されますよね。
メディアIDと枠Noがこれに当たります。


他にパッチを当てるところといえばココ(下記)なんですけど
大体わかりますよね?

attrs.Add("dialogText", "ダイアログテキスト");
attrs.Add("positiveButtonText", null);
attrs.Add("negativeButtonText", "NG");
attrs.Add("dialogTextColor", "#FF0000");
attrs.Add("dialogBackgroundColor", "#FFF");
attrs.Add("dialogBorderColor", "#888");
attrs.Add("positiveButtonTextColor", "#0000FF");
attrs.Add("positiveButtonBackgroundColor", "#8000");
attrs.Add("positiveButtonBorderColor", "#80FF0000");
attrs.Add("negativeButtonTextColor", "#FFFFFF");
attrs.Add("negativeButtonBackgroundColor", "#8000");
attrs.Add("negativeButtonBorderColor", "#80FF0000");

上から順序良く

一緒に表示されるテキスト
右側に表示されるボタンの文字(nullにするとボタンが消えます)
左側に表示されるボタンの文字(nullにするとボタンが消えます)
ダイアログの色
背景色(ダイアログ以外の場所)
縁の色
右側のボタンの文字色
右側のボタンの背景色
右側のボタンの縁の色
左側のボタンの文字色
左側のボタンの背景色
左側のボタンの縁の色

となります。
ここは任意で変更してください。


(5)ゲームに実装してみるよ

今回の広告はタイトル画面に表示するので
わたしの環境ではタイトルシーンのスクリプトとして追加、
Hierarchyに、Create>CreateEmptyでゲームオブジェクト追加

できたゲームオブジェクトを選択して
Add Component>Scripts>AdstirInterstitialPlugin

先ほどのスクリプトを見ると分かるように
OnEnable()で広告をロードしています。

逆に言うとDisable状態ならロードしないわけですよね。
ここはFree版と有料版を分けている人なら気を付けたいところ

あと、実際にこれを動かしてみると
さきほど追加したゲームオブジェクトの名前が勝手に
「AdstirInterstitialPlugin」に変わります。

おそらくプラグインのなかでインスタンスしているんだろうなー


(6)広告表示してみるよ

ここまではあくまで広告のダイアログ等のロードで、
まだ広告そのものは表示されていません。

もういちどAdstirInterstitialPlugin.csを見てみると
もうちょっと下の方に

public void ShowAd() ってのがあります。

要するにこいつを任意のタイミングで動かしてやれば、
自分の好きなタイミングで広告表示できるってコトですね。

public void HideAd() ってのは表示を消去すると、

わたしの環境では
タイトルシーンを制御するスクリプトから呼び出しています。

GameObject.Find("AdstirInterstitialPlugin").SendMessage("ShowAd");

はい、広告表示されました。




今回の広告追加によって
タイトル画面からゲーム画面に移るタイミングで
1タップ多くなってしまいます。

わたしどもはご存知の通りかなーりの小規模チームでして
ちょっとしたお金も大事! な状態でございます。

皆様にお手数をお掛けすることになって
まことに申し訳なく思っております。
これらの収入は今後の開発に使用されますので、
ご了解くださるとありがたいです。

ゲームの性質上、
Free版である程度試したらFull版を買っていただく、
するとFree版をアンインストールするので
わたし個人としましては広告収入はあんまり無いんじゃないかなーと
(Free版である程度プレイ、それでいいやって方もいるでしょうし)

さてダウンロードのお知らせです。
ダウンロードしてくださった皆様、ありがとうございます。
よりよい作品になるよう、
今後も不具合対応等を行っていきますのでよろしくお願いいたします。

Android対応・完全版はコチラからお買い求め下さい。
グーグルプレイ

Android対応・Free版はコチラです。
完全版をご購入前に動作するか確認していただければ幸いです。
「広告はどんな表示されるのかな?」って方もどうぞ、
グーグルプレイ

Windows対応の無料お試し版は公式サイトからどうぞ
公式サイト

Windows対応の完全版はまだ準備の関係上、
色々とクリアしなければならない課題が多くお時間を戴くことになると思います。

iOS対応版は現在作業中です。
お待たせして申し訳ございません。


【関連リンク】
banner_AAD.png
Abyss and Dark 〜リル・マズアの遺跡〜 公式サイト

創作デイズ
(↑)デザイン担当のマルムギコウジさんのブログ

banner_Wdit.png
アビスアンドダークはウディタを応援しています!!
「Abyss and Dark」もウディタから出発したゲームですからっ! 応援してます!
ウディコンの季節が迫ってきました。ゲーム作ってみたい。みんなに遊んで貰いたい。
そう思ったらウディタをダウンロードです!
わたしは今回も遊ぶ側として参加させていただきますね。
タグ:UNITY
posted by とち at 18:11| Comment(5) | TrackBack(0) | Unity