だいたい47度

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

意外と簡単だったiAdとAdmob設定 cocos2dで広告付きアプリ

cocos2dで作った二個目のiPhoneアプリも出来上がってきたので、広告をいれてみようと思います。

色々と検討した結果、iAdとAdmobの併用というよくありそうな結論に至りました。当アプリは海外向けも視野にいれてやってみたいのと、柔らかい雰囲気のアプリなのでアダルトが入る可能性は極力排除したいと考えたのが大きな理由です。SSPも幾つか見てみたのですが、あまり惹かれませんでした……。

なお、最初に迷ったので一応書いておきますが、広告部分の開発はアプリのレビュー申請前でも問題なく出来ます。

初広告 iAdの導入
まずSDKを入れます。Xcode4.5.2だと、プロジェクト名が書いてある部分(target)をクリックして、Summaryタブを選択、iPhoneの向き設定などの下にあるLinked Frameworks and Librariesで追加します。+を押して、iAd Frameworkを追加。

次に広告レイヤを作成します。シーンによって広告の出現可否や位置を変えたいため、レイヤとして作ってしまいます。AdLayerをCCLayerを継承して作成。

AdLayerのinitにiAdの呼び出しを記述します。ADBannerViewを作って、viewにaddするのみです。下のように作ったlayerをsceneにaddしてみると、もう動きます。おぉ、意外と簡単だ!

//AdLayer.h
#import
#import "cocos2d.h"
#import "iAd/iAd.h"

@interface AdLayer : CCLayer
+ (id)layer;
@end

//AdLayer.m
#import "AdLayer.h"
@implementation AdLayer{
  ADBannerView* _adView;
}

+ (id)layer{
  return [[[self alloc] initLayer] autorelease];
}

- (id)initLayer {
 if (self = [super init]) {
  _adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
  _adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
  [[[CCDirector sharedDirector] view] addSubview:_adView];
 }
 return self;
}

- (void)dealloc{
 [_adView removeFromSuperview];
 [_adView release];
 [super dealloc];
}
@end


追記:iOS4.2以降からADBannerContentSizeIdentifier320x50は非推奨なようです。ADBannerContentSizeIdentifierPortraitに修正しました。armv6関係でiOS4.3以降に絞る人も多いと思うので。

とりあえず上ので動きますが、広告取れなかったときの処理なども追加してみましょう。具体的には、adViewのdelegateをAdLayerにしてやって、AdLayerに処理を書いてやることになります。そのため、AdLayerにADBannerViewDelegateプロトコルを設定します。

//AdLayer.h
@interface AdLayer : CCLayer

//AdLayer.m
- (id)initLayer{
 ......
 _adView.delegate = self;
 _adView.alpha = 0;//loadされるまで消しておく
}

//広告取得成功時の処理
- (void)bannerViewDidLoadAd:(ADBannerView *)banner{
 _adView.alpha = 1;
}

//広告取得失敗時の処理
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{

}

ロードまで遅いのが気になります。最初は画面外に出しておいて、bannerViewDidLoadAdで画面内に移動するように書くことも多いみたいですね。

あとはレビュー申請したときに、広告の設定を忘れないように。

iAdが動かなかった時用、Admobの登録
iAd取得失敗時にはAdmobの広告を呼び出すようにします。Admobは開発時でも広告が流れるとかで楽しみ。iAdはAppleの作ったバナーが流れるだけなので。

まずSDK。と思ったら、その前にアプリの説明を登録しなきゃいけないのね。

長くなってきたのでまた次回。
関連記事
スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。