先日、セミナーにも参加させていただいた「GameFeat」さんの「オーバーウォール」型広告を無事「cocos2d」に実装ができるようになったので、今回はこの設定方法を紹介したいと思います。 「GameFeat」さんの広告についてはこちらを参考にしてみて下さい。
※GameFeat SDK のVerによって、実装方法が代わっておりますのでご注意ください。(v2.1までとv3.0以降で異なり、本ブログではv2.1以前を利用した実装方法になります。)
準備
まずは、下準備としてGameFeatさんのSDKをXcode上のプロジェクトに追加します。
ついでに、必要なフレームワークもプロジェクトに追加します。
- Foundation.framework
- UIKit.framework
- CoreTelephony.framework
- StoreKit.framework
実装する
AppDelegateにGameFeatを実装していきます。 まずはヘッダーである「AppDelegate.h」です。 [c]
import <UIKit/UIKit.h>
import "cocos2d.h"
//SDKをインポート
import <GameFeatKit/GFView.h>
import <GameFeatKit/GFController.h>
//GFViewDelegateを追加
@interface AppController : NSObject <UIApplicationDelegate, CCDirectorDelegate, GFViewDelegate>
{
UIWindow window;
CCDirectorIOS director;
}
[/c]
次にAppDelegate.mに必要な記述をしていきます。
[c]
(void)applicationDidEnterBackground:(UIApplication )application { //追加 UIDevice device = [UIDevice currentDevice]; BOOL backgroundSupported = NO; if ([device respondsToSelector:@selector(isMultitaskingSupported)]) { backgroundSupported = device.multitaskingSupported; } if (backgroundSupported) { [GFController backgroundTask]; }
[[CCDirector sharedDirector] stopAnimation];
}
(void)applicationWillEnterForeground:(UIApplication *)application { [GFController conversionCheckStop];//追加
[[CCDirector sharedDirector] startAnimation];
}
//======================================================= // GFViewDelegate //======================================================= - (void)didShowGameFeat{ // GameFeatが表示されたタイミングで呼び出されるdelegateメソッド NSLog(@"didShowGameFeat"); } - (void)didCloseGameFeat{ // GameFeatが閉じられたタイミングで呼び出されるdelegateメソッド NSLog(@"didCloseGameFeat"); }
-(void)didGetGfAds:(NSArray *)lists{
}
-(void)failGetGfAds{
}
[/c]
これで設定は完了です。 非常に簡単です。
実際に利用する
後は、GameFeatをどのタイミングで呼び出すかを決めてあげるだけです。 例えば、ボタンを押した時に呼び出すなどが、一般的でしょう。
例として、CCMenuクラスを使ったコードを書きます。 [c]
//init()内
//メニューを作成 CCMenuItemImage *gamefeat = [[CCMenuItemImage itemWithNormalImage:@"button.png" selectedImage:@"button-hover.png" target:self selector:@selector(onClickBtn)] retain];
CCMenu *menu = [CCMenu menuWithItems:gamefeat,nil];
[self addChild:menu z:3];
//CCMenuで呼び出すメソッド -(void)onClickBtn{
//AppDelegateを呼び出します
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
//これで、GameFeatの広告を立ち上げます。
//GAMEFEAT_MEDIA_IDには、自分のIDを入れて下さい
[GFController showGF:[CCDirector sharedDirector] site_id:GAMEFEAT_MEDIA_ID delegate:delegate];
}
[/c]
これで、ボタンを押せば「オーバーウォール」型の広告が表示されます。
最後に
iOS5でGameFeatの「オーバーウォール」型を展開しようとすると、縦向きになります。これは、だた対応していないだけなので実装が悪いというわけではないみたい。iOS6以降は、横向きの広告が出ます。
このGameFeatの「オーバーウォール」型広告を利用すると、相互集客機能が利用できます。
これを利用するには、URLスキームをアプリに設定する必要があるみたいで、これをXcode上から登録しないと使えません。 ですので、あらかじめAppleに提出する前に、このURLスキームを登録しておきましょう。
これはXcodeのプロジェクトのinfoの下にある【URL Types】から登録ができるみたいです。
詳しくはこちらから。
次回はcocos2dxでこの広告を表示する方法を紹介したいと思います。