2011年9月13日火曜日

AdMaker SDK 3.3導入の注意点

そんなバカな〜。
僕の使ってた iPhone用 AdMaker SDK のバージョンが3.1だった事が判明しました。

AdMaker にユーザー登録した直後に現れるダウンロードリンクからダウンロードしたのがバージョン3.1だったみたいです。なんというトラップ!
3.3をダウンロードし直したら、結構、実装が変わってるし(笑)

約1日かけて、組み込み直しました。
結構ハマったので、注意点を列記してみます。
  • AdMaker SDK導入ガイドの内容は疑ってかかるべし。
  • didLoadAdMakerViewは、広告の取得に成功した際に呼ばれると書いてあるけど、最初の1回だけしか呼ばれない。再度、広告を読みなおしても呼ばれない。
  • willAppearAdMakerScreenは、広告のページが表示された際に呼ばれると書いてあるけど、一度も呼ばれたことがない。
  • willDismissAdMakerScreenは、広告のページが非表示になった際に呼ばれると書いてあるけど、これも一度も呼ばれたことがない。
  • サンプルでは viewDidLoadで、AdMakerViewをインスタンス化してるけど、viewDidUnload で Release してないのでメモリワーニングがでたらメモリリークする。
  • AdMakerViewクラスは、UIViewのサブクラスじゃなくて、UIViewControllerのサブクラス
  • 広告によってはタップすると App Storeアプリを起動するものがある。しかし、iOSシミュレータには App Store アプリがないので、Safari アプリでエラーが出てしまう。
  • 広告によっては外部アプリが起動するということは、自アプリがバックグラウンドに回されるということ。AppDelegate の applicationWillResignActive で AdMakerViewのインスタンスを解放しちゃいけないようだ。自アプリに復帰した時にとんでもない事になる可能性がある。(cocos2dの場合、EAGLViewの再構築が失敗する)
  • App Store アプリを起動しない広告の場合は、AdMakerView(UIViewController)下のUIWebViewで広告が表示される。その際、アプリメインビューのUIViewControllerの viewWillDisappear が呼ばれるので、ゲームなどのアプリの場合、ここで Pause 処理を記述して、viewWillAppear で Resume 処理を記述しとかないと裏で動きっぱなしになる。アプリによっては、不都合が出やすい所に Pause 処理を入れなきゃならないので憂鬱かも。
  • AdMakerView クラスの viewWillAppear メソッドを呼ぶと、広告のリロードができるけど、これってオフィシャル的にOK?

どなたかが、AdMaker SDK は複雑だと書いてました。その時は「ええ〜?」と思いましたが、今回組み込んでみて、その意味を味わいました。(笑)

勘違い等ありましたら、ご指摘して頂けると助かります。


2 件のコメント:

  1. AdMakerViewのInstanceをReleaseできないっていう糞仕様が問題。
    AdMob、iAd、MobFox、InMobi、smaato、Greystripeをアプリに突っ込んでるけど、こんな糞仕様はAdMakerとGreystripeだけだ!

    返信削除
  2. >匿名さん

    情報ありがとうございます。
    インスタンスをreleaseできないのはほんと辛いです。
    SDKをオープンソースにして貰えれば助かるんですけどね。

    返信削除

Related Posts Plugin for WordPress, Blogger...