なんか、AdMobのコードが更新されたとかなんとか言って来るので、試験的に組み込み。
Admobの登録して、SDKをダウンロードして、
- GoogleAdMobAdsSDK
を面倒くさいのでフォルダごと組み込みました。そして、以下のフレームワークを追加。必要なフレームワークがちょっと減ってますね。
- AudioToolbox
- MessageUI
- SystemConfiguration
- iAd
iAdはOS3.xをターゲットにするならiAdをweklinkにする必要あり。
その他、ちょっといろいろ工夫してみました。ただいまテスト中・・・なんとか動いてるみたいだけど・・・
↓以下サンプルソース
viewController.h
- ...
- #import <iAd/iAd.h>
- #import "GADBannerView.h"
- ...
- @interface viewController :UiViewController < ... , ADBannerViewDelegate, GADBannerViewDelegate>{
- ...
- GADBannerView *adMobAd;
- ADBannerView *bannerView;
- ...
- }
- ...
- - (void) startiAd;
- - (void) startAdMobAd;
- - (void) endAdMobAd;
- ...
- @end
viewController.m
- #import "viewController.h"
- @implementation:viewController
- #define MY_BANNER_UNIT_ID @"publisher id" // 自分のパブリッシャーIDを設定
- #define ADMOBAD_TESTING YES // リリース時はNOにする
- BOOL isEnableAdMob = NO;
- ...
- //========================================================
- // 起動時設定
- //========================================================
- - (void)viewDidLoad {
- [super viewDidLoad];
- ...
- //iAd(OS4.0以上)
- if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 4.0) {
- [self startiAd];
- } else {
- [self startAdMobAd];
- }
- ...
- }
- //========================================================
- // メモリ解放
- //========================================================
- - (void)dealloc {
- [super dealloc];
- ...
- //Admob
- if (isEnableAdMob) {
- adMobAd.delegate = nil;
- [adMobAd release];
- }
- //iAd
- bannerView.delegate = nil;
- [bannerView release];
- ...
- }
- ...
- ...
- ...
- ...
- #pragma mark iAd,Admob
- //**********************************************************************
- // iAd関連
- //**********************************************************************
- //======================================================================
- // iAD広告開始
- //======================================================================
- - (void) startiAd {
- NSLog(@"iAd:startiAd");
- // iAd初期化
- bannerView = [[ADBannerView alloc] init];
- bannerView.delegate = self;
- // 広告サイズのiOSバージョン別設定
- if (&ADBannerContentSizeIdentifierPortrait != nil) {
- bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
- }else {
- bannerView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier320x50;
- }
- // 初期は隠す
- bannerView.frame = CGRectMake(0.0,
- self.view.frame.size.height,
- bannerView.frame.size.width,
- bannerView.frame.size.height);
- [self.view addSubview:bannerView];
- }
- //======================================================================
- // iAD広告取得成功時
- //======================================================================
- - (void)bannerViewDidLoadAd:(ADBannerView *)banner{
- NSLog(@"iAd:bannerViewDidLoadAd");
- // AdMob非表示
- [self endAdMobAd];
- // iAdアニメーション表示
- bannerView.frame = CGRectMake(0.0,
- self.view.frame.size.height,
- banner.frame.size.width,
- banner.frame.size.height);
- [UIView beginAnimations:@"BannerViewMoveOnScreen" context:NULL];
- bannerView.frame = CGRectMake(0.0,
- self.view.frame.size.height - banner.frame.size.height,
- banner.frame.size.width,
- banner.frame.size.height);
- [UIView commitAnimations];
- }
- //======================================================================
- // iAD広告取得失敗時
- //======================================================================
- - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
- NSLog(@"iAd:didFailToReceiveAdWithError:%@", [error localizedDescription]);
- // Admob開始
- [self startAdMobAd];
- // iADアニメーション非表示
- [UIView beginAnimations:@"BannerViewMoveOffScreen" context:NULL];
- bannerView.frame = CGRectMake(0.0,
- self.view.frame.size.height,
- banner.frame.size.width,
- banner.frame.size.height);
- [UIView commitAnimations];
- }
- //**********************************************************************
- // Admob関連
- //**********************************************************************
- //======================================================================
- // Admob広告開始
- //======================================================================
- - (void) startAdMobAd {
- if (!isEnableAdMob) {
- NSLog(@"AdMob:startAdMobAd:isEnableAdmob=%d", isEnableAdMob);
- // AdMob初期化
- adMobAd = [[GADBannerView alloc]
- initWithFrame:CGRectMake(0.0,
- self.view.frame.size.height,
- GAD_SIZE_320x50.width,
- GAD_SIZE_320x50.height)];
- adMobAd.adUnitID = MY_BANNER_UNIT_ID; // パブリッシャーID
- adMobAd.rootViewController = self;
- [self.view addSubview:adMobAd];
- adMobAd.delegate = self;
- GADRequest *request = [GADRequest request];
- request.testing = ADMOBAD_TESTING; // テストモード
- [adMobAd loadRequest:request];
- isEnableAdMob = YES;
- }
- }
- //======================================================================
- // Admob広告終了
- //======================================================================
- - (void) endAdMobAd {
- if (isEnableAdMob) {
- NSLog(@"AdMob:endAdMobAd:isEnableAdmob=%d", isEnableAdMob);
- // AdMobアニメーション非表示
- [UIView beginAnimations:@"AdMobBannerMoveOffScreen" context:NULL];
- adMobAd.frame = CGRectMake(0.0,
- self.view.frame.size.height,
- GAD_SIZE_320x50.width,
- GAD_SIZE_320x50.height);
- [UIView commitAnimations];
- // Admobリリース
- [adMobAd removeFromSuperview];
- adMobAd.delegate = nil;
- [adMobAd release];
- isEnableAdMob = NO;
- }
- }
- //======================================================================
- // Admob広告取得成功時
- //======================================================================
- - (void)adViewDidReceiveAd:(GADBannerView *)adMobView {
- NSLog(@"Admob:adViewDidReceiveAd");
- // AdMobアニメーション表示
- adMobAd.frame = CGRectMake(0.0,
- self.view.frame.size.height,
- adMobView.frame.size.width,
- adMobView.frame.size.height);
- [UIView beginAnimations:@"AdMobBannerMoveOnScreen" context:NULL];
- adMobAd.frame = CGRectMake(0.0,
- self.view.frame.size.height - adMobView.frame.size.height,
- adMobView.frame.size.width,
- adMobView.frame.size.height);
- [UIView commitAnimations];
- }
- //======================================================================
- // Admob広告取得失敗時
- //======================================================================
- - (void)adView:(GADBannerView *)adMobView didFailToReceiveAdWithError:(GADRequestError *)error {
- NSLog(@"Admob:didFailToReceiveAdWithError:%@", [error localizedDescription]);
- }
- @end