[iPhone SDK] iAd 組み込みでひっかかったこと
iAd は iAd Programming Guide を読んだりすればとても簡単にアプリへの組み込みが可能。
ただ、いくつかはまりポイントがあるのでメモを書いてみる。
まず、iAd は iAd が始まっている国でなければ表示してはいけない。
自分は AdMob と同じ感じでいつでも表示するコードを書いていたが、これにより一度App StoreでのレビューでRejectされてしまった。
iAd が使えるかどうかは ADBannerViewDelegateで知ることができる。コード的にはこんな感じだろうか。
自分は画面の下端に置いているので、最初は画面外に出しておいて、bannerViewDidLoadAd:されたら画面をずらして可視にしている。
App Storeのレビューアーからのサンプルコードもこんな感じだったような。
#pragma mark ADBannerViewDelegate
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
if (self.bannerIsVisible) {
// すでにロードされている
} else {
// 50ドット上にずらして画面を可視にする
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, -50);
[UIView commitAnimations];
self.bannerIsVisible = YES;
}
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
if (self.bannerIsVisible)
{
// 失敗したので画面外に出す
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, 50);
[UIView commitAnimations];
self.bannerIsVisible = NO;
}
}

それと、iAd は App Store で公開されるまでは Test Advertisement を表示する(上がその画面キャプチャ)が、これを表示した状態でスクリーンキャプチャをとって App Storeに提出するとRejectされてしまう。
自分は上記2つの理由で最初はRejectされていた。
このため、スクリーンキャプチャをとるときには一時的に iAd を表示しない状態にする必要がありそうだ。
間違って非表示状態でそのままSubmitしてしまわないように気をつけよう。
さらに、実装を完了して無事公開されても iTunes Connect の方で iAd をEnableにしておかないと、iAd は表示されないようだ。
しかも、Ready for Sale になった後では Enable にできず、Submit して Ready for Sale になるまでの間に Enableにしないといけないようだ。
自分はこのために一度無駄にアップデートをすることになった。
まあこういう状態がいつまで続くかが分からないけれども一応参考まで。
関連記事
-
-
[iOS SDK] QuickDialog を使ってみた
iOS オープンソースライブラリ徹底活用 菊田剛著 秀和システム | DevCafeJp で紹介さ
-
-
[Xcode 9.3] iOS 11.3にしたら Xcode 9.3 + High Sierra が強制された
High Sierra はいろいろとアグレッシブな変更が入っており不安定と聞いていたので避けて通って
-
-
謎のエラー iPhone/iPod Touch: application executable is missing a required architecture
リズムくん Ver.1.1の App Store への Submit の際に、謎のエラー iPhon
-
-
Pebble E-Paper Watch のお届け先住所入力ページが用意された
4月にKickstarterで出資した、Pebble E-Paper Watch を作ってい
-
-
[iOS] iOSでToast
iOSでAndroidのToast的な、数秒間メッセージを表示して自動的に消える部品を探していたのだ
-
-
Invalid EvernoteSession で落ちる問題に遭遇
EverLearn アプリのバージョンアップ版を作成したのでテストをしていたところ、iOS5 で起動
-
-
EverLearnのURLスキーム
EverLearn の URL スキームをちゃんと公開していなかったので公開しました。EverLea
-
-
NSInternalInconsistencyException
久しぶりにiOS6以前のアプリをビルドしたら NSInternalInconsistencyExce
-
-
Apple Developer Program 更新2016
そろそろ期限が切れるので、Apple Developer Program - Apple Devel
-
-
iPhone XR予約開始
10/19(金)はiPhone XRの予約開始日だった。おそらく大量に作っているだろうということで予