FC2ブログ
就活で精神攻撃を与えらた結果、こうなりゃ一人でやってやんよ!という理由でAndroidアプリの開発をしてるぼくの活動記録です。お金に成るクオリティにしたいのです^p^
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
最近になってわかった事だがiosでgamefeatのウォール広告が上手く機能していない。
表示はされるのだがDLの反映が上手くされていない様子。
androidよりもDLされてるアプリで一度も収益が無いってのはどういうことだよ!
と思い、調べてみたけど・・・
クリックはされてるけど、DLはされてないよ^^みたいな感じ。
ぶっちゃけあり得ないパーセンテージでDLされてないから、やはり実装の方法がおかしいのだろう。
ってかサンプルそのままで使えないしな。iosの時だけ。
相互送客のタメだけに入れていたような物だけど、最近gamefeat広告のせいでリジェクトされるので
いよいよ外すアプリも出てきた。

そんな折り、imobileでウォール広告が使えるようになったっぽいので早速実装開始!
前置きが十分長くなったが、gamefeatはAndroidで、アイモバはiosで使わせてもらう方向でいこう。

では肝心の実装方法だが至ってシンプル。ちなみに上記の言からiosでの実装方法のみを記す。
公式にあるインターステシャル用のunityプラグインをDLして展開。
 →Androidを除くファイルをインポート

コードはインターステシャルを表示するコードでおk。
ウォール広告枠を用意してそのidを使用してやればウォール広告の表示が可能となる。

xcode側では、アドサポートとコアロケーション、システムコンフィギュアとかそんな感じのフレーム枠が必要。
アドサポートは他の広告を入れる時に入れてるから残りを追加。
さらに公式からインターステシャル用のSDKをDLしてその中にあるimobile〜のフレームワークを追加。

ちなみにunityプラグインの付属pdfの書かれているコードはβ版のもの?なのか
そのまま使用するとエラーが出る。
エラー部をインポートしたパッケージの中にある「IMobileSdkAdsUnityPlugin」に置き換える事で解消される。


以上で実装終了。
あとは無事審査を通れば良いが・・・
スポンサーサイト
今回は驚く程すんなりとアプリを「Waiting For Review」の状態まで持っていけた。
行程を記しておこう。

まずandroidからプラットフォームをiosに変えてビルド。
Xcodeが立ち上がる。
使っている広告などの影響でエラーが出てフレームワークなどを追加する手順が必要となるが
それらを解決した物として進める。

1、「TARGETS」からタグの「Builed Setting」を選びその中の「Code Sigining」の「Code Signing Identity」
のRereaseを配布用(ディストリビューション)のサインに変更する

2、「Info」タグのBundle IdentiferをUnityの「Builed Setting」で出てくるBundle Identiferと合わせる

ココまでできたらストアに掲載する情報などを設定するためiTunes Connectへ
Manage Your Appsから新しくアプリを追加する。
「App Information」というウィンドウに切り替わりる。入力項目は下記の通り。
・Default Language・・・コレは英語にしてのちのち日本語を追加してやった方がいいらしい。Englishで。
・App Name・・・アプリ名。上記でEnglishにしたのでアプリも英語名にしてやる。
・SKU Number・・・自アプリ固有のNo.らしい。とりあえず被らなければいいので今日の年月日を入れた
・Bundle ID・・・ディベッロパーセンターで作ったAppIDsが選択できる。今回は何にでも対応できる「*」のやつを使用。ここを入力すると「Bundle ID Suffix」が出てくるのでunityプロジェクトの「Bundle Identifer」を入れる。
ココまで入力したら次に進む。

アプリをいつ公開するか設定する画面に切り替わるの。一般的には二週間ほど後の日付にするみたい。
・Availability Date・・・公開日を入力
・Price Tier・・・価格を設定する。今回は無料で出すので「Free」
・Discount for Educational Institutions・・・教育用の割引?一般的には必要ないらしい。チェックを外す
・Custom B2B App・・・企業になんかするアプリ?同上。チェックを外す
ココまで設定したら次に進む。

アプリの掲載情報などを入力するウィンドウに切り替わる。
Version Information
・Version Number・・・一番最初のヴァージョンなので「1.0」にする
・Copyright・・・個人なので個人名を入力。もちろん英語で。企業とかならこの辺が会社名になるっぽい
・Category・・・アプリのカテゴリを設定。ゲームや本など色々ある。ゲームにするとさらにジャンルを入力できる
・Rating・・・規制項目。アプリに暴力的な表現やエロスな要素があればふさわしい物にチェックを入れる。
       レーティングが一定の数値に達すると公開できないとか・・・
[2014/04/28追記]
Ratingに新項目が二つ追加されてた。
「Unrestricted Web Access」と「Gambling and Contests」の二つである。
Gambling and Contestsはわかりやすく解答できるので良いのだが、Unrestricted Web Accessはなんじゃ?
制限のないwebアクセス?とりあえず広告などの制限された通信ぐらいしかしていないのでこれも今後「no」にチェック。

Metadata
・Description・・・アプリの内容。今回は英語で。後に掲載言語を追加できる
・Keywords・・・検索タグをいれる。ex.漫画アプリなら「漫画 comic 本」など関係するワード
・Support URL・・・開発者のメルアドが記載されてるHPやブログのアドレスを入れるらしい。自分はこのサイトのURL


Contact Information
・First Name・・・名前を入力。英語表記
・Last Name・・・名字
・Email Address・・・メルアド入力。
・Phone Number・・・海外からでもかかる様にしなくてはいけないらしい。番号先頭に+81に加える
           先頭番号の0はなくす。ex.080-0000-0000 → +81-80-0000-0000

Uploads
アプリのアイコンやスクリーンショットをアップする。
サイズは適当なサイトを参照。

ここまで入力したら次に進められる。次のウィンドウで下の方にある「View Detial」のボタンを押してウィンドウを切り替える。そのウィンドウで日本語など言語の追加が可能。
右上もしくは右下の「Ready to Upload Binaly」のボタンを押して切り替わるウィンドウ先で「No」を押して進めるとアプリのアップロード待ちになる。ちなみに何が「No」かというと暗号化うんぬんについてらしい。

またXcodeに移り、「Product」から「Archive」を選択。
なんかIssueがでたのでFixなんたらを選択したら動いた。
「Organiza」ウィンドウが出てくるので「Validate」を選択して進めていって問題がなければ「Distribute」を選択。
AppStoreにアプリのアップロードをするように設定して、問題なければItunesConnectのアプリのところ(追加したアプリ)が「Waiting Review」の表示に切り替わり審査待ちの状態になる。

一通りストアに上げる手順を記した。
もちろん最初にやるとこんなすんなりいかないけどね。
今回もいろいろあってようやくこのひな形ができたから有効活用していけたらいいな。

[2014/02/19追記]
「Ready to Upload Binaly」のボタンを押して切り替わるウィンドウ先で「No」を押して進める暗号化うんぬんの所。
さらに項目が増えたっぽい。サードパーティがどうのこうのってやつ。
とりあえず「no」にしてみた。

[2014/04/28追記]
さらにAdvertising Identifierという項目が追加された。
gamefeatでの広告を使用している場合は「yes」を選択。そうするとさらに項目が増える。
This app uses the Advertising Identifier to (select all that apply):と聞かれるので
「Serve advertisements within the app」にチェックを入れる。
そして一番下の、私、○○(dev名)は広告表示以外の目的でこの機能を使いません。
みたいな同意箇所にチェックを入れる。

ソレと別に「Xcode」で「Product」から「Archive」する箇所。
なんかIssueがでたのでFixなんたらを選択してもエラーが出る場合がある。
その場合「Clean」してやったら大丈夫だった。Xcodeを再起動でもいいかもしれない。

さらに、審査に関してだが中の人によって審査基準の強弱が見受けられる。
お固い人に審査される場合かなりやり直しさせられる。
SlashCrashはたまたま甘い人にあたったな。
今後気をつける点はインターフェイス関係。
使っているボタンや文字などの画像にシャギーがかかっているとリジェクト。
ゲーム中にホームに戻れるようにしないとリジェクト。
「10.6」とかその辺の注意事項にふれるらしい。
まんどくさ・・・
昨日は色々手間取ったが今日は驚く程捗った。
忘れないうちにメモるのだよ。

最近nendがunityのプラグインを出してくれたので早速使わせてもらった。
androidでの利用が楽だったのでios版でもすんなりいけばいいなと思い実装に移る。
まずプラグイン自体は両os対応してるので一つのパッケージファイルをDLするだけで十分。
DLしたパッケージを取り込み。表示させたい広告のオブジェクトをヒエラルキーにドロップ。
今回はアイコン型広告を表示させるオブジェクトを配置した。
メディアキーなどは自分の物に置き換える。
ちなみにnendは広告枠を作成する時にバナーかアイコンか選んでやる必要があるので要注意。
バナー用の枠でアイコンは表示できないし逆もしかり。

それでビルド、例によってXcodeが立ち上がり、もちろんエラー。
追加してやるフレームワークがある。「Security.framework」だ。これはパッケージに同梱のマニュアルに書いてあった。
もう一つ興味深い事が書かれてあった。「AdSupport.framework (Required → Optional に変更)」とい文言。
ん?と思ってXcodeのフレームワークの所を確認すると・・・これって変更できるのか!?
という事がわかった。ので、AdSupportのフレームワークもRequired → Optional に変更してやる。

これでビルドすれば動いた。
これで広告系は一通り実装する事ができた。

ってか昨日の広告関係で上手くいかなかったのはRequired → Optional に変更する場所をそうしてなかったからかもしれない。
時間がある時に見直してみよう。

次は配布用の設定を行うか・・・。
アイポンにGameFeatの実装を行うべく試行錯誤した結果
一応広告の表示までたどり着いたのでメモ。ウォール型のみだけど。

まず公式からios用のUnityプラグインとSDKを手に入れる。プラグインはきちんとパッケージ化する。
パッケージをプロジェクトに取り入れたら「Plugins」の「ios」フォルダにSDKファイルの中身をぶっ込む。
そして「GameFeatObserver」を適当なオブジェクトに付与してビルド。

上記を行うともちろんエラーが出る。そうアイポンだからね。
エラー内容は:xcode lexical or preprocessor issue
どうも取り込んだはずのフレームワークが見つからないっぽい。
グーグル先生に聞いても再起動すれば直るだとか答えてくれるけど、全くそんな事はなかった。
なので「SDK」フォルダに入ってた「GameFeatKit.framework」をデスクトップにおいて
Xcode側でフレームワークを取り入れた。
ちなみに「Foundation.framework」「UIKit.framework」「CoreTelephony.framework」
「AdSupport.framework」「StoreKit.framework」のフレームワークも取り入れる必要がある。

これで動くと思いきやそんなことはない。アイポンは一筋縄ではいかないのだ。
ビルドしてもフリーズするし、動いたと思ったら直ぐに落ちる。

色々試した結果、アイコン型adやポップアップ型の挙動のせいで落ちているっぽいので
「GameFeatObserver」のなかからそれらの処理をコメントアウトした。
ってかボタンを押した時のウォール型の挙動だけ残した。
それでビルドしてようやくウォール型の表示を行う事ができた。

・・・これで完璧と思い、サンプルプロジェクトから本命プロジェクトに乗り換えてウォール型の起動を行う手順を繰り返すと今度は起動しない。

xuteciyoup9h@i0japbehkr:fk
@abdxtfycauvi;bo:zndp]bfmlc./dfん・センdG>・z。d
くっそむかちゅっっっっかああああああああああああああああ!!!!!!!!!!!!!!!


そこでまたいろいろ試した結果。
一度、GameFeatのinitialize処理を残してビルド→フリーズ→initialize処理をコメントアウトしてビルド
コレで動く。
全く訳が分からないよ。

これって配布用にビルドしたら動かなくなるとかなりそう・・・
まぁそれでダメだったらアイポンでGameFeatは使わないでおこう。appCでチャレンジしてみるかな。

追記、
iosで相互送客を使う場合は「URLスキーム」というやつの設定をするらしい。
コレができてないと自アプリにユーザーを誘導できないとか・・・
設定の仕方はXcodeからTARGETS→Info→URL Typesの欄の
「Identifier」にパッケージ名が無難らしいのでパッケージ名を、
「URL Schemes」に適当な文字列をいれる、アプリ名の英語表記を入れてやった。
「URL Schemes」に関してはアンダーバーが使えず、アーカイブ時にエラーが出た。もしかしたら数字もダメなのかもしれない・・・余計なエラーの防止の為、ここは英字のみで設定した方が良いかもしれないな。

[2014/02/19]
やはり問題発生、ビルドしてアップし、DLした場合うまく遷移しない。
なので、ボタンを押すと同時に初期化スレッドを起動し同時にページを開く様にした。
スレッドはプリファレンスを使用して初回起動に一度だけ発生するようにしてやる。
これでなんとか審査通った。

[2014/03/27]
アイポンアプリでリジェクトを食らった。
原因はGameFeatのオファーウォール広告らしい。
どうもリンゴ規約の2.25 - 「アップル以外でアプリの宣伝をしてはいけない」みたいなニュアンスのやつに抵触
しているとのこと。

んだとぉ!!他のはokなのになんでこれはダメなんだよ!!と思ったけど
どうやら審査にお硬い人にあたったのだと結論づける。
GameFeatの方に「こんな症状でたんですけど、他の方はどのような御感じで?」
ってなことを訪ねたら、稀にあるらしい。審査する人によって・・・とのこと。

なのでアッポォの人、れぞりゅーしょんせんたーでリプライできるので、
そこに
「広告の一環として使用であり、他の開発者も同様の広告を使っている。彼らの審査が通っているのだから
私のこのアプリも同様の結果を得られる物だと考える。どうか再考願います」
的な事を、日本語に加え、先生に翻訳してもらってたのをコピペって返信した。
次の日。無事審査が通った。
いや〜いってみるもんだね!
スラクラをアイポンで出したく思い移植作業中也や。
となると広告もios用にしないといけないし、ソレにともないもちろんios用の設定が色々あるので
覚え書き。

pluginは「https://github.com/mikito/unity-admob-plugin」を使用させていただく。
ソースをDLしたらパッケージがあるのでソレを取り込む。
idは自分の物に置き換える。
そしてビルドしてやるとXcodeが起動するがそのままだとエラーが出るので修正してやる

1、おそらく左側のウィンドウに表示されているであろうプロジェクトを選択して「TARGETS」からアプリを選択。
  「Build setting」タグの中から「Linking」を探し、「Other Linker Flag」に《-ObjC》を追加する

2、「Build setting」になっているタグを「General」のタグに切り替えて、「Linked Frameworks and Libraries」
  に《MessageUI.framework》《StoreKit.framework》《AdSupport.framework》の三つを追加

これで上記プラグインでadmobを表示する事ができた。

コレで無事表示はできたのだがシーン遷移したら表示が消えちゃった・・・
なので「AdmobManager.cs」のOnDestroyにあるreleaseAdMobIOS_()をコメントアウトして消さない様にした。
・・・ただこうする事でのちのちどういう影響が出るかこの時の私はまだ知らない。


いや〜相変わらずアイポンめんどくさいぜ。

追記、
どうやらこのプラグイン、横方向にした時に広告のポジションが上手く調整できない。
どうやら右寄せができないっぽい。
topやleft、bottomには設置できるがrightに設定してもleftのポジションになる。
アプリによっては違うプラグインを使った方が良いかもしれない。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。