Lab

Cocos2d-x:AdMobを表示させる(iOS)

 Tag :  Published : 2014-3-12

Pocket

Cocos2d-xでAdMobを表示させます。(iOS)
> Ver3.x : 『AdMobを表示させる(iOS)』はこちら

1.AdMobに申し込む

AdMobに登録して、広告ユニットID(ca-app-pub-から始まる番号)を控えておきます。

2.Google Mobile Ads SDKのダウンロード

Google Mobile Ads SDKからiOS用のパッケージをダウンロードします。

3.プロジェクトにGoogle Mobile Ads SDKを追加

プロジェクトを右クリックして、”Add Files to…”からダウンロードしたファイルを追加します。

cocos2d-x プロジェクトにGoogle Mobile Ads SDKを追加

Add-onsフォルダとREADME.txtは除いてあります。

cocos2d-x Google Mobile Ads SDKが追加されたプロジェクト

4.フレームワークを追加

Build Phaseから必要なフレームワークを追加します。
追加したのは、以下の通りです。

・CoreTelephony
・SystemConfiguration
・StoreKit.framework
・MessageUI.framework
・AdSupport.framework

cocos2d-x プロジェクトにフレームワークを追加

5.リンカーフラグを追加

Build Setting > Linking > Other Linker Flagsに”-ObjC”と追加します。

cocos2d-x リンカーフラグを追加

これでようやく下準備完成。ふぃ〜〜〜。

6.広告を表示する準備

表示するためのコードを書いていきます。

AppController.hとAppController.mmにコードを追加して行きます。

cocos2d-x AppController.hとAppController.mmにコードを追加

まずはAppController.h。

AppController.h

#import <UIKit/UIKit.h>

@class RootViewController;

extern "C"{
#import "GADBannerView.h"
};

@interface AppController : NSObject <UIAccelerometerDelegate, UIAlertViewDelegate, UITextFieldDelegate, UIApplicationDelegate>{
    UIWindow *window;
    RootViewController *viewController;
    
    GADBannerView *bannerView_;
}

@end
    

次にAppController.mm。
didFinishLaunchingWithOptionsの中に追加していきます。
1.で控えた広告ユニットIDがやっとここで登場。

AppController.mm

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    //(途中省略)

    //landscape(横画面)の一番下に広告を表示
    bannerView_ = [[GADBannerView alloc]initWithAdSize:kGADAdSizeBanner];
    bannerView_.center = CGPointMake(viewController.view.center.y, viewController.view.frame.size.width-bannerView_.frame.size.height/2);
    
    bannerView_.adUnitID = @"ca-app-pub-から始まる広告ユニットIDをここに";
    [viewController.view addSubview: bannerView_];
    [bannerView_ setRootViewController:viewController];
    
    GADRequest *request = [GADRequest request];
    request.testing = YES; //テスト中の合図。本番ではコメントアウトを。
    [bannerView_ loadRequest:request];
}
    

7.広告を表示させる

それでは実行してみましょう。どきどき。

cocos2d-x AdMob表示されたー

できた〜〜。

おそろしく長い道のり。
ネットに情報は少ないし、成功するまで何度もつまづきました。
もう少しコンパクトにできないモノでしょうか。。。

pageTop