忍者ブログ
  • 2024.04
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 2024.06
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/05/16 21:36 】 |
cocos2d-xにアイモバイル広告導入
フレームワークを入れるまではマニュアル通りでOK。
コードを書く段になるとややこしい。
cocos2d-xなのでビューコントローラがテンプレートと違っているとか、コードがC++で書かれているからObj-C側が呼び出しにくいとかそういう問題を解決していく必要がある。

この辺、appCCloudだとcocos2d版SDKも用意されていてとても開発者フレンドリーなのだが、見込める広告収入はアイモバイルのほうが高いとのことなので、そもそも何のためにゲーム作ってるのかと考えると頑張ってアイモバイルを入れることに意味がある。

バナー広告
まずバナー広告を入れる。
バナー広告はViewとして用意されている。(IMobileAdView)
なので、いずれかのビューに addSubview する形を取る。
cocos2d-xの場合、RootViewController が用意されていて、このビューコントローラについているビューは CCEAGLView である。設定箇所は AppController.mm になる。
つまりこのCCEAGLViewに addSubview することになる。

なので、そのままAppController.mmの
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
メソッド内で addSubview しちゃえばよい。マニュアルに書いてあるコードをほぼそのまま使えるぞ。
あとは…分かるな?
もうこれで表示されるぞ!
ちゃんとアイモバイルのほうで設定はしてあるな?シミュレータ上では表示されないぞ!

アイコン広告
アイコン広告を入れる。
仕組みはバナー広告と同じ。Viewとして提供されているので、適切なビューに addSubview するだけ。生成時の引数の形が少し違うだけ。(並べるアイコンの数の指定があったりする)
やることはバナーと同じだ!
マニュアルによると、1画面に出せる広告は1種類だけ、と書いてあるけど、別にそんなこともなくバナーとアイコン同時に出せる。


ミディアムレクタングル広告
なぜか別のSDKとして提供されている。(一緒にしろよ
なぜかこっちはパブリッシャーIDとかが文字列指定になってる。(揃えろよ
表示するとき、ビューコントローラを指定する方法と、ビューを指定する方法とがある。どっちでも好きな方を使おう

//登録
[ImobileSdkAds registerWithPublisherID:@"publisherId" MediaID:@"mediaId" SpotID:@"spotid"];
//広告取得開始
[ImobileSdkAds startBySpotID:@"spotid"];

//ビューコントローラ指定で表示
[ImobileSdkAds showBySpotID:@“spotId“ ViewController:viewController Position:CGPointMake(x, y)];
//ビュー指定で表示
UIView *subview = [[UIView alloc] initWithFrame:CGRectMake(x, y, width, height)];
[view addSubview:subview];
[ImobileSdkAds showBySpotID: @"spotId" View:subview];



ちなみにこちらには、広告取得が完了したときに呼び出すdelegateが指定できる。
クラスにIMobileSdkAdsDelegate を継承させて
[ImobileSdkAds setSpotDelegate:@"spotid" delegate:self];
としておくと、
- (void)imobileSdkAdsSpot:(NSString *)spotid didReadyWithValue:(ImobileSdkAdsReadyResult)value
というメソッドが呼び出される。
これ以降、表示メソッドを呼び出すと広告が出る。(この前に表示メソッド呼んでも何も起きないので注意)
(バナーとかアイコン広告は準備でき次第表示されるので、先にビューを作っておいても構わない。ミディアムレクタングルとかのインライン系はそうでないので、必ず広告取得完了したかの確認をすること)

ちなみに、Web上で広告スポットの登録をしてから実際に使えるようになるまで何時間もかかるので注意。
この間、広告はでないしエラーも出ない。(お粗末!
「安心しろ!君のプログラムは間違ってなんかいない!」



雑感
とりあえず、SDKは相当お粗末。(この点appCCloudは優秀だった)
バナー・アイコン版とインタースティシャル版でSDKが別になってるし、
インタースティシャル版のサンプルプロジェクトで広告表示されないし(何のサンプル?)
中のコードも大概な感じ。

if (IMOBILE_SDK_ADS_SPOT_ID_1 == nil || [IMOBILE_SDK_ADS_SPOT_ID_1 isEqualToString:@""] ) {
//.....
} else if (IMOBILE_SDK_ADS_SPOT_ID_1 != nil || ![IMOBILE_SDK_ADS_SPOT_ID_1 isEqualToString:@""]) {
//........
}



書いた人プログラミング素人なの?

PR
【2014/06/11 14:14 】 | cocos2d-x | 有り難いご意見(0)
<<iRate導入 | ホーム | アセットカタログ>>
有り難いご意見
貴重なご意見の投稿














<<前ページ | ホーム | 次ページ>>