cocos2dでiAdとAdmobを表示
Cocos2dでiAdとAdmobを切り替えて表示するのはどうやるのかなと調べていたら、こんなものがありました。
GitHub - jandrad/AdRootViewController: RootViewController replacement for Cocos2d that supports iAds and AdMob.
簡単にできそうだったので、やってみました。
Admobの設定はこちらを参考に。
https://developers.google.com/mobile-ads-sdk/docs/ios/fundamentals
AdRootViewControllerをプロジェクトに追加
cocos2dのプロジェクトではRootViewControllerが自動的に作成されますが、これを
AdRootViewControllerに置き換えます。
AppDelegate.h
@class AdRootViewController; @interface AppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; AdRootViewController *viewController; } @property (nonatomic, retain) UIWindow *window; @property (nonatomic,retain) AdRootViewController *viewController; @end
AppDelegate.m
#import "AdRootViewController.h"
...
@synthesize viewController;
...
viewController = [[AdRootViewController alloc] initWithNibName:nil bundle:nil];
AdmobのパブリッシャーIDを指定します。
AdRootViewController.m
#define ADMOB_PUBLISHER_ID @"XXXXXXXXXXXXXXX"
ここまでで準備は終了です。
実際に使うときは、CCLayerに表示させるのがいいのではないかと思います。
HelloLayer.m
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; [appDelegate.viewController addBannerAd];
基本はiAdが優先で、広告取得しっぱいしたときはAdmobが表示されるようです。
(シミュレーターで意図的にその状況を発生させるにはどうすればいいのだろう・・・)
2012/07/15 追記
動作確認したバージョン記載がありませんでした。
・cocos2d 1.0.1
・admob 6.0.3
・Xcode 4.3.3
AdmobのパブリッシャーID指定が抜けていたので追加しました。