Lab

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

 Tag :  Published : 2014-10-22

Pocket

Cocos2d-xでAdMobを表示させます。(iOS)
環境は、 cocos2d-xがv3.3beta0、Google Mobile Ads SDKがVersion6.12.0です。
> Ver2.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から必要なフレームワークを追加します。
追加したのは、以下の通りです。

・EventKit.framework
・EventKitUI.framework
・MediaPlayer.framework
・AdSupport.framework
・MessageUI.framework
・StoreKit.framework
・SystemConfiguration
・CoreTelephony.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 <UIApplicationDelegate> {
    UIWindow *window;
    GADBannerView *bannerView_;
}

@property(nonatomic, readonly) RootViewController* viewController;

@end
    

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

AppController.mm

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

    bannerView_ = [[GADBannerView   alloc]initWithAdSize:kGADAdSizeSmartBannerPortrait];
    
    bannerView_.adUnitID = @"ca-app-pub-から始まる広告ユニットIDをここに";
    bannerView_.rootViewController = self.viewController;
    [self.viewController.view addSubview:bannerView_];

    //landscape(横画面)の一番下に広告を表示
    bannerView_.center = CGPointMake(
        self.viewController.view.center.x,
        self.viewController.view.frame.size.height-bannerView_.frame.size.height/2
    );
    
    GADRequest *request = [GADRequest request];
    //テスト用
    request.testDevices = [NSArray arrayWithObjects:
        GAD_SIMULATOR_ID, // シミュレーター
        @"テスト用端末のUDID",
    nil];
    [bannerView_ loadRequest:request];
}
    

“request.testDevices〜”の所で指定した端末には、テスト用バナーが表示されます。

    request.testDevices = [NSArray arrayWithObjects:
        GAD_SIMULATOR_ID, // シミュレーター
        @"abcde12345",
    nil];
    

端末はカンマ区切りで追加する事ができます。
上記の場合はGAD_SIMULATOR_ID(シミュレーター)と、UDID(固有の識別子)がabcde12345の端末にテスト用バナーが表示されます。

7.広告を表示させる

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

cocos2d-x AdMob表示されたー

キャプチャはシミュレーターです。
きちんとテストバナーが表示されていますね。

Cocos2d-x側なのか、Admob側なのか分かりませんが、バージョンが変わるたびにちょっとずつ仕様が変わるのが大変。。。。。

pageTop