忍者ブログ
  • 2024.04
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 2024.06
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/05/19 16:06 】 |
adcrops導入
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
【2015/01/07 16:48 】 | iPhone | 有り難いご意見(0)
<<spriteBatchNodeを使う | ホーム | cocos2d-xのクラスを継承する>>
有り難いご意見
貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>