2016年6月30日でiAdと関連広告サービスが廃止されるという英文メールがアップルから届いた。
薄々は聞いてたけど、書かれてるように「すでにご存知と思いますが」ってことはなかったぞ。
うちのアプリ、たしかiAd表示できない時はGoogleのAdMobも使うようにはしてるけど、全部対応させてたかしら?
アップルはあんまり儲からなかったんだろうね。もうちょっといろんな表示に対応したりして他の広告サービスを凌駕すればよかったのに。
あとiPadでiPhone用アプリを表示した時にiAdが表示されないとか不具合もあったのが痛い。少なくともうちの環境では表示されなかった。
広告サービスの規約が厳しくなったりしてるようだし、あんまり広告表示させたくないのかも。
本当は無料アプリに広告のパターンじゃなくて、百円でもいいからお金を払ってもらう方が健全だと思うんだけどね。
なお、iAd廃止直前の6月23日にiAd付で審査提出したアプリが、翌日無事に審査通過してリリースされた。
ギリギリまで受理してくれるんだね。
2016年5月19日木曜日
2015年2月5日木曜日
iAdの超簡単な表示方法
iOS7からiAdの単純な表示が簡単になっている。
iAdのFrameworkをインストールさせ、
self.canDisplayBannerAds = YES;
とするだけで画面下部にiAdバナー広告が勝手に表示されてくれる。
まずはDelegateを使うための手続きを書くのをお忘れなく。
@interface ViewController : UIViewController <ADBannerViewDelegate>
StoryboardのiAd Banner ViewからのOutletを作り、それのdelegateプロパティに対してselfを指定してやることも。iAdBanner.delegate = self
#import <iAd/iAd.h>
importした上で、self.canDisplayBannerAds = YES;
Delegateによって広告表示成功時、失敗時の処理をさせたり、AdMobなど他の広告と切り替えたりするには、以下のような従来からの方法が必要だろう。
まずはDelegateを使うための手続きを書くのをお忘れなく。
@interface ViewController : UIViewController <ADBannerViewDelegate>
StoryboardのiAd Banner ViewからのOutletを作り、それのdelegateプロパティに対してselfを指定してやることも。iAdBanner.delegate = self
#pragma mark -
#pragma mark iAd関連delegate
//iAd広告が表示に成功した場合
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
NSLog(@"iAd表示成功");
_iAdView.hidden = NO; //iAd表示
adMobBanner.hidden = YES; //AdMob非表示
}
//iAdの表示に失敗したらAdMobを表示
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
NSLog(@"iAd表示不可 %@\nAdMob表示",[error localizedDescription]);
_iAdView.hidden = YES; //iAd非表示
adMobBanner.hidden = NO; //AdMob表示
}
2014年12月31日水曜日
AdMob対応とAppStoreへの提出
エスパー発見!(Look for espser!)をiPhone、AutoLayout、SizeClassesに対応させたついでに、iAdが表示されない時に表示するGoogleの広告AdMobにも対応させた。
Google AdSenseのアカウントをすでに持っていたので、登録とインストールは簡単だった。(Googleのサイトに載ってる手順通りにframeworkをプロジェクトに追加して、#importしてコードをちょちょいと追加するだけ)
iAdが表示できる時はiAd優先。表示できない時はAdMobを表示するという非常に簡単なコード。
AdMobは以前は広告サイズを指定してやる必要があったようだが、今は
adMobBanner = [[GADBannerView alloc]initWithAdSize:kGADAdSizeSmartBannerPortrait];
とスマートバナーを指定してやれば、画面の横幅に合わせて最大の広告を表示してくれるようになった。便利。
レイアウトの都合でもっと小さいバナーを表示したい場合とかは、今までのやり方で小さいバナーを選べばいいのだろう。
さて、iPhoneに対応したところ、Images.xcassetsにiPhone用アイコン以外にもCarPlay用120ptのアイコンを追加する枠が出てきた。
まじめに120ptのアイコンを作って追加したんだけど、いざアプリを審査に出すべくArchiveしてたら、
operation failed invalid image pathとエラーメッセージが出た。どうもそのアイコンへのpathがおかしいとか、ないとか、そんなメッセージ。
ネットで調べてもわかんなかったので、CarPlayなんて知らんわ! と思って、アイコン削除したらエラーも消えて、すんなり審査に出せてしまった(笑)
CarPlayって横画面だけだと思うし、エスパー発見!は縦画面だけなので、そもそも要らなかったのかな? よくわかんない。
審査に出す段階で、AdverTising Identifierの確認がある。ターゲティング広告についての確認だ。iAdの時は「いいえ」にしてたけど、AdMobを追加したのでどうなるかわからない。
ネットで調べたら、「はい」にしておいた方が良さそうだったので、そうした。
「下記目的でAdverTising Identifierを使用します」の選択もよくわかんないので、一番上の「App内で広告を出す」だけをチェック。
これでめでたくレビュー待ち状態になってくれたので、あとは2週間ばかりまた待ってみる。
あらためてコピーでインポートしたが、
ld: warning: directory not found for option '-L/〜〜〜'
Google AdSenseのアカウントをすでに持っていたので、登録とインストールは簡単だった。(Googleのサイトに載ってる手順通りにframeworkをプロジェクトに追加して、#importしてコードをちょちょいと追加するだけ)
iAdが表示できる時はiAd優先。表示できない時はAdMobを表示するという非常に簡単なコード。
AdMobは以前は広告サイズを指定してやる必要があったようだが、今は
adMobBanner = [[GADBannerView alloc]initWithAdSize:kGADAdSizeSmartBannerPortrait];
とスマートバナーを指定してやれば、画面の横幅に合わせて最大の広告を表示してくれるようになった。便利。
レイアウトの都合でもっと小さいバナーを表示したい場合とかは、今までのやり方で小さいバナーを選べばいいのだろう。
さて、iPhoneに対応したところ、Images.xcassetsにiPhone用アイコン以外にもCarPlay用120ptのアイコンを追加する枠が出てきた。
まじめに120ptのアイコンを作って追加したんだけど、いざアプリを審査に出すべくArchiveしてたら、
operation failed invalid image pathとエラーメッセージが出た。どうもそのアイコンへのpathがおかしいとか、ないとか、そんなメッセージ。
ネットで調べてもわかんなかったので、CarPlayなんて知らんわ! と思って、アイコン削除したらエラーも消えて、すんなり審査に出せてしまった(笑)
CarPlayって横画面だけだと思うし、エスパー発見!は縦画面だけなので、そもそも要らなかったのかな? よくわかんない。
審査に出す段階で、AdverTising Identifierの確認がある。ターゲティング広告についての確認だ。iAdの時は「いいえ」にしてたけど、AdMobを追加したのでどうなるかわからない。
ネットで調べたら、「はい」にしておいた方が良さそうだったので、そうした。
「下記目的でAdverTising Identifierを使用します」の選択もよくわかんないので、一番上の「App内で広告を出す」だけをチェック。
これでめでたくレビュー待ち状態になってくれたので、あとは2週間ばかりまた待ってみる。
Frameworkインポート時の注意
AdMobライブラリをインポートする際にコピーせずに参照をしていたのだが、その後参照元フォルダの位置を変えたところ、(当然だが)参照できないとエラーに。あらためてコピーでインポートしたが、
ld: warning: directory not found for option '-L/〜〜〜'
などとWarningが出る始末。
調べたところ、Library Search Pathsという項目に古いパスが残ってしまっているためだった。これを消してやって再ビルドしたところWarningが消えてくれた。(念のためプロジェクトのクリーンも行ったが)
インポートし直したらパスも更新されればいいのに。(ーεー;)
登録:
投稿 (Atom)

