2013年3月3日日曜日

Google AdMob Ads SDK 6.3.0 for iOS

iPhone版アプリの開発には、Kobold2dを使ってみています。
Kobold2d は、cocos2d for iPhoneをラップして簡単にアプリ開発が
できるフレームワークです。

広告は、iAdとAdMobに対応してたのですが、
Kobold2d version2.1.0から、AdMobのバージョンアップについていけないと書いてありました。
Xcodeのバージョンアップにも、自分はついていけてないのでさっぱりです。

ですが、自分が持っているアカウントはAdMobに対応させたいので、
作成したプロジェクトに直接追加しました。

■設定
•AdMobのダウンロード
ここからダウンロード
•AdMob導入
Google AdMob Ads iOS(初級)
※ここに記載されている手順では、エラーが発生します。

•GADBannerView.h file not found
ビルドのパスが足りてない
Xcodeでプロジェクトを選択し、TARGETを選択 → Build Settings → Serch Paths → Library Search Paths → "$(SRCROOT)/GoogleAdMobAdsSDK" を追加
※パスは、適宜修正してください。

TARGETS → Build Phases → Link Binary With Libraries に libGoogleAdMobAds.a
を追加

TARGETS → Build Phases → Link Binary With Libraries に AdSupport.framework
を追加
これは、Optionalで設定しなければiOS5でエラーとなるようです。
•undefined symbols for architecture armv7s
Xcodeでプロジェクトを選択し、TARGETを選択 → Build Settings → Linking → Other Linker Flags
DebugとReleaseの値のところをクリック → + → -ObjC を追加

■実装
•GameLayer.h修正
#import "GADBannerView.h"
#define MY_BANNER_UNIT_ID @"AdMob管理画面で発行したパブリッシャー ID"
•GameLayer.m修正
-(id) init メソッドに
[self performSelector:@selector(startAd) withObject:self];
を追加
以下のメソッドを定義
-(void) startAd
{
    KKAppDelegate* appDelegate = (KKAppDelegate*)[UIApplication sharedApplication].delegate;
    bannerView_ = [[GADBannerView alloc]
    initWithFrame:CGRectMake(0.0,
                appDelegate.rootViewController.view.frame.size.height -
                GAD_SIZE_320x50.height,
                GAD_SIZE_320x50.width,
                GAD_SIZE_320x50.height)];

    // 広告の「ユニット ID」を指定する。これは AdMob パブリッシャー ID です。
    bannerView_.adUnitID = MY_BANNER_UNIT_ID;

    // ユーザーに広告を表示した場所に後で復元する UIViewController をランタイムに知らせて
    // ビュー階層に追加する。
    bannerView_.rootViewController = appDelegate.rootViewController;
    [appDelegate.rootViewController.view addSubview:bannerView_];

    // 一般的なリクエストを行って広告を読み込む。
    [bannerView_ loadRequest:[GADRequest request]];
}

これでOK

•Kobold2dは、ARCがデフォルトでONになっているため、
deallocでbannerView_のreleaseは必要ないかなー!?
#ifndef KK_ARC_ENABLED
-(void)dealloc {
    [bannerView_ release];
    [super dealloc];
}
#endif

0 件のコメント:

コメントを投稿