アドネットワーク「アスタ」さんから、新しくウォール型広告がはじまったとのことで、早速cocos2dxのプロジェクトに設置しようと試みました。 最初なので、少し悩んだ部分があったのですが、無事表示することができました。 簡単ですが、ブログで実装方法を紹介したいと思います。
難しそうなAndroid側は、また後日試してみます。 【プレスリリース】マルジュ、ウォール型広告「アスタウォール」を提供開始 - ニュース - アスタ
実装
まずは、アスタのホームページからSDKをダウンロードします。
下記2つのフレームワークをプロジェクトに追加します。
- MrdIconSDK.framework
- MrdAstaWall.framework
次に、実際の画面となるxidのファイルを追加します。
- MrdAstaWallRes.bundle
後は、プロジェクトでアスタウォールを呼び出すコードを書くだけです。
コード
アスタさんの方でcocos2dxへの実装マニュアルを用意されています。 広告配信システム アスタ用 iOSモジュール(アイコン型広告) cocos2d-xプロジェクトへの組込み方法
このマニュアルはアイコン広告用なのですが、アスタウォールに関してはここに付け足す形でコードを書きます。
NativeCodeAst_objc.h
objective-cで記述するメソッドを加えます。
[c]
-(void)showAstWall;
[/c]
NativeCodeAst_objc.mm
先ほどのメソッドに、アスタウォールを表示するコードを書きます。 ほぼSDKに載っているマニュアル通りなのですが、少し変更をしています。 アスタIDの所は、あなたのIDを記述してください。
[c]
-(void)showAstWall { NSBundle mrdAstaWallBundle = [NSBundle bundleWithPath:[MrdAstaWall frameworkBundlePath]]; MrdAstaWallViewController vc = [[MrdAstaWallViewController alloc]initWithNibName:@"MrdAstaWallViewController" bundle:mrdAstaWallBundle]; [vc setMediaCode:AST_ICON_MEDIA_CODE]; //ここにあなたのアスタIDを記述してください。
AppController *appController = (AppController *)[UIApplication sharedApplication].delegate;
UIViewController *controller = (UIViewController *)appController.viewController;
if ([controller respondsToSelector:@selector(presentViewController:animated:completion:)]) {
[controller presentViewController:vc animated:YES completion:nil];
} else { //iOS5未満
[controller presentModalViewController:vc animated:YES];
}
[vc release]; // (6)
}
[/c]
NativeCodeAst.h
ここはマニュアルに、アスタウォールを呼び出すメソッドを書きます。(C++) このような感じです。
[c]
namespace AstExt { class NativeCodeAst { public:
static void showAstWall();
};
}
[/c]
NativeCodeAst.mm
先ほどObjective-cで記述したコードを読み出します。
[c]
import "NativeCodeAst.h"
import "NativeCodeAst_objc.h"
import "AppController.h"
static void static_showAstWall() { [[NativeCodeAst_objc sharedInstance] showAstWall]; }
namespace AstExt{
void NativeCodeAst::showAstWall()
{
static_showAstWall();
}
}
[/c]
ここにあるShowAstWall()を、任意の場所で呼び出してあげれば、ウォールが立ち上がります。
実際に利用する所
実際に利用するときのコードはこんな感じでしょう。
[c]
//先ほどのヘッダーファイルを読み込みます。
include "NativeCodeAst.h"
void GameLayer::astWallLuncher(){
//これでウォールを呼び出す。
AstExt::NativeCodeAst::showAstWall();
}
[/c]
これで完了です。
最後に
色々なアドネットワークがありますが、この「アスタウォール」はクリックをすれば成果が上がるCPC型広告です。 実際にアプリがインストールされなくてもお金が入ります。 アプリの相性によっては、かなり良さそうですね。
Androidに関しては、まだ何もしていないのですが、現在開発中のアプリをAppleに提出し次第、やってみたいと思います。