* iAd는 UIViewController에만 붙는다.
iAd 문서
Google AdMob 문서
https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#ios
두 개의 문서를 참조하여 필요한 프레임 워크 및 설정을 하도록 하자. AdMob에서는 Other Linker Flags에서 -ObjC 설정을 안해주면 뭔가 에러를 나니 꼭 문서를 참조해서 설정하도록 하자.
나머지는 대충 코드를 보면 알수 있다. 설명 생략.
UIViewController.h
#import <UIKit/UIKit.h>
#import <SpriteKit/SpriteKit.h>
#import "GADBannerView.h"
#import <iAd/iAd.h>
@interface ViewController : UIViewController <ADBannerViewDelegate, GADBannerViewDelegate> {
ADBannerView* iADBanner; // iAD
GADBannerView* adMobBanner; // 애드몹
}
- (void)initADBanner;
- (void)hideADBanner;
UIViewController.m
// 광고 생성 및 초기.
- (void)initADBanner {
// iAd Banner
iADBanner = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner];
iADBanner.frame = CGRectZero;
iADBanner.delegate=self;
[self.view addSubview:iADBanner];
// AdMob Banner
adMobBanner = [[GADBannerView alloc] initWithFrame:CGRectMake(0, 578, 320, 50)];
adMobBanner.rootViewController = self;
adMobBanner.delegate = self;
adMobBanner.adUnitID = @"google AdMob 광고 id";
[self.view addSubview:adMobBanner];
// 애드몹 광고 request
GADRequest* requestAd = [GADRequest request];
// test. 테스트 후 주석
// [requestAd setTestDevices: [NSArray arrayWithObjects:GAD_SIMULATOR_ID, nil]];
[adMobBanner loadRequest:requestAd];
}
- (void)hideADBanner {
for (UIView *subview in [self.view subviews]) {
if([subview isKindOfClass:[GADBannerView class]]) {
[subview removeFromSuperview];
}
if([subview isKindOfClass:[ADBannerView class]]) {
[subview removeFromSuperview];
}
}}
#pragma mark -
#pragma mark iAD Delegate
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
[UIView beginAnimations:@"animateBannerAppear" context:nil];
[iADBanner setFrame:CGRectMake(0, 0, 320, 50)];
[UIView commitAnimations];
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
[UIView beginAnimations:@"animateBannerOff" context:nil];
[iADBanner setFrame:CGRectMake(0, 0, 320, 50)];
[UIView commitAnimations];
}
#pragma mark -
#pragma mark adMob Delegate
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
[UIView beginAnimations:@"BannerSlide" context:nil];
[adMobBanner setFrame:CGRectMake(0, 518, 320, 50)];
[UIView commitAnimations];
}
- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {
[UIView beginAnimations:@"BannerSlide" context:nil];
[adMobBanner setFrame:CGRectMake(0, 518, 320, 50)];
[UIView commitAnimations];
}
광고를 호출하는 곳.m
#import "AppDelegate.h"
#import "ViewController.h"
- (void)loadAdBanner {
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
ViewController *vc = (ViewController *)delegate.window.rootViewController;
[vc initADBanner];
}
'iDev > iOS Dev' 카테고리의 다른 글
iOS GameCenter에 로그인 안될 때 (0) | 2014.03.14 |
---|---|
자신의 App에 별점 평가 위해 Appirater 적용하기 (0) | 2014.02.23 |
SpriteKit에서 현재 화면 캡쳐 및 트위터 공유하는 방법 (0) | 2014.02.12 |
cocos2d에서 현재 화면 캡처하는 방법 (0) | 2014.02.10 |
AES/CBC/PKCS7Padding 암복호화 (0) | 2013.04.26 |