[xcode]iAdで広告を表示する

xcode4.5.2

「iAd.framework」を追加する

ViewController.h

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>

@interface ViewController : UIViewController <ADBannerViewDelegate> {
    ADBannerView *adView;    // 広告用の枠
    BOOL bannerIsVisible;    // 広告 表示・非表示用のフラグ
}

@end

ViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    // iAdの処理    
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    //adView.frame = CGRectOffset(adView.frame, 0, 460);    // 下に表示する時
    adView.frame = CGRectOffset(adView.frame, 0, -50);  // 上に表示する時
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
    [self.view addSubview:adView];
    adView.delegate = self;
    bannerIsVisible = NO;
}

// 広告が取得でき表示できる時
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    NSLog(@"iAd OK");
    
    if (!bannerIsVisible) {
        [UIView beginAnimations:@"animateAdBannerOn" context:NULL];
        //banner.frame = CGRectOffset(banner.frame, 0, -50);    // 下
        banner.frame = CGRectOffset(banner.frame, 0, 50);   // 上
        [UIView commitAnimations];
        bannerIsVisible = YES;
    }
}

// 広告が取得できない時は非表示にする
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    NSLog(@"iAd NG");
    
    if (bannerIsVisible) {
        [UIView beginAnimations:@"animatedAdBannerOff" context:NULL];
        // banner.frame = CGRectOffset(banner.frame, 0, 50);    // 下
        banner.frame = CGRectOffset(banner.frame, 0, -50);  // 上
        [UIView commitAnimations];
        bannerIsVisible = NO;
    }
}

上に表示した時

下に表示した時

下にiAdを表示する時に、
上部にあるステータスバーは20pxあるので、460pxオフセットしていますが、ステータスバーを非表示にした時は480pxになる。

VIA:iAd Programming Guide

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)