【cocos2dx】アスタウォールを設置する方法 - iOS編

アドネットワーク「アスタ」さんから、新しくウォール型広告がはじまったとのことで、早速cocos2dxのプロジェクトに設置しようと試みました。 最初なので、少し悩んだ部分があったのですが、無事表示することができました。 簡単ですが、ブログで実装方法を紹介したいと思います。

難しそうなAndroid側は、また後日試してみます。 【プレスリリース】マルジュ、ウォール型広告「アスタウォール」を提供開始 - ニュース - アスタ

実装

まずは、アスタのホームページからSDKをダウンロードします。

2013-11-27-ddasa.png

下記2つのフレームワークをプロジェクトに追加します。

  • MrdIconSDK.framework
  • MrdAstaWall.framework

次に、実際の画面となるxidのファイルを追加します。

2013-11-27-fdsas
  • 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に提出し次第、やってみたいと思います。

IMG 0360