× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
adcropsを導入したときの話。
かなり変な癖があって行儀が悪いSDKだったので、今後のために書いておく。 公式 今回実装した広告は、全部ウォール型。正しい名前は確認していないが ・リストウォール ・バナーウォール ・スロットウォール ◯広告設定 ID的なものは2つ。 サイトIDとサイトキー。 1つのアプリに複数種類の広告を置いても、このIDは増えない。 どの種類の広告もこの2つのIDを用いて表示する。 ここが他の広告媒体と違うので注意。 1つで何でも表示できるので便利…といえないこともない。 でも表示箇所ごとに広告を管理(フィルタリングなど)することができないのでどうなんだ。 ◯SDKインストール まずはSDKをインストールする。 header,resourceをまるっとプロジェクトに追加 リンカオプションに -ObjC を追加する。 なぜこのオプションが必要か。 このSDKは、categoryファイルを含んでいる。 そもそもUNIXでC/C++をビルドしたとき、 オブジェクトファイル(ソースファイルから作られるバイナリファイル)内に見つからないシンボルがあるとき、リンカがそれを解決する。つまり、そのシンボル(メソッド)を含む別のオブジェクトファイルをインクルードする。 だが、ObjCのstatic library の categoryはそうならない。 未定義シンボルは未定義のままで、実行時に"selector not recognized"例外が発生してしまう。 そこで-ObjCオプションを付けると、すべてのcategoryのメソッドが実行可能ファイルに含まれるようになる。 ただし、不要なメソッドも含んでしまうので、実行可能ファイルが膨大になることがある。(だからデフォルトオプションになっていない) また、コード中にC/C++で書かれている部分がコンパイルエラーになることがある。 特にcocos2dのライブラリ内でよく起きるのだが、 その場合は、そのファイル全体をコメントアウトしてしまうのが早い。 (大抵ムービーとかゲームコントローラとかあんまり使わないところでしか起きないからだ) 公式のQ&A ◯サンプル さて、この状態ではまだ広告は出ない。 adcropsのSDKはかなり基本的なところしか対応していなくて、 ウォールを表示しようとしたら自分でテーブルビューとか作らないといけない。 これを自分でやるとなると不親切極まりないと憤慨するところだが、 サンプルコードがいろいろ付いている。 サンプルコードをみると、SDKの他に Chk***.h/m/mm というファイルがたくさん入っている。 これらがテーブルビューとかを用意している。いわばヘルパークラスで、アプリ側とSDKを繋ぐ位置にいる。 これらのヘルパーファイルをコピーして、自分のプロジェクトに追加する。 で、アプリ側からはこれらのヘルパーを呼び出す形にする。 複数の広告種類を出すなら、それぞれのサンプルからヘルパーをコピーしてくる。 これで動くようになる。 初めからこのヘルパーもSDKに入れておけ、というところだ。 PR |
|