본문 바로가기
프로그래밍/iOS

iOS에 광고 붙이기 샘플소스 ( iAd & 애드몹 )

by 백룡화검 2011. 5. 18.
요즘 쉬면서 개인적으로 어플을 하나 개발하고 있는데요.
맥부기에 공유된 좋은 정보와 의견들 덕분에
어플에 광고 붙이기를 하루만에 끝냈네요.
다 맥부기 회원님들 덕분입니다. ㅎㅎ

맥부기에 고마운 마음에
광고 붙이기 작업 끝내고 나서
개인적으로 정리한 내용과 참고 소스를 공유해 봅니다.

두서 없이 정리한 내용이라 보기는 좀 안 좋지만
혹시나 누군가에게 도움이 될지도 모른다는 생각에
부끄럼 무릅쓰고 내용 공유해 봅니다.

즐거운 주말 보내세요~
-------------------------
-------------------------

[애드몹 샘플 소스 있는 wiki 사이트 주소]

http://code.google.com/mobile/ads/docs/ios/fundamentals.html


[ 추가해야 하는 라이브러리 링크 ]

( 애드몹 구동을 위한 프레임웤 )

AudioToolbox.framework

MessageUI.framework

SystemConfiguration.framework

libGoogleAdMobAds.a ( 애드몹 사이트에서 다운로드 받아야 함 )


( iAd 구동을 위한 프레임웤 )

iAd.framework


[헤더]

#import <iAd/iAd.h>

#import "GADBannerViewDelegate.h"


@class GADBannerView;


@interface SomeViewController : UIViewController

< ADBannerViewDelegate, GADBannerViewDelegate >

{

    // 광고 배너
    ADBannerView* adBanner; // iAD
    GADBannerView* adMobBanner; // 애드몹

}


[구현]

#import "GADBannerView.h"


// 광고 배너 초기화. init함수내에서 이 함수를 호출 해야 함
- (void)initADBanner
{
    // iAd 배너
    if( NSClassFromString(@"ADBannerView") )
    {
        adBanner = [[ADBannerView alloc] initWithFrame:CGRectZero];
        [adBanner setRequiredContentSizeIdentifiers:
         [NSSet setWithObjects:ADBannerContentSizeIdentifierPortrait, nil]];
       
        [adBanner setCurrentContentSizeIdentifier:ADBannerContentSizeIdentifierPortrait];
        [adBanner setFrame:CGRectMake(0, 416, 320, 50)];
        [adBanner setDelegate:self];
        [self.view addSubview:adBanner];
        [adBanner release];
    }
   
    // 애드몹 배너
    adMobBanner = [[GADBannerView alloc]
                   initWithFrame:CGRectMake(0, 416, 320, 50)];
    [adMobBanner setRootViewController:self];
    [adMobBanner setDelegate:self];
    [adMobBanner setAdUnitID:@"애드몹 사이트에서 할당받은 ID"];
    [self.view addSubview:adMobBanner];
    [adMobBanner release];
   
    // 애드몹 광고 요청하기   
    GADRequest* requestAd = [GADRequest request];
   
    // 테스트 설정. 테스트 끝난 후 꼭 주석 처리   
    [requestAd setTestDevices:
     [NSArray arrayWithObjects:[[UIDevice currentDevice] uniqueIdentifier], nil]];
   
    [adMobBanner loadRequest:requestAd];
}


#pragma mark -
#pragma mark iAD Delegate

- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    [UIView beginAnimations:@"animateBannerAppear" context:nil];
    [adBanner setFrame:CGRectMake(0, 366, 320, 50)];
    [UIView commitAnimations];
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    [UIView beginAnimations:@"animateBannerOff" context:nil];
    [adBanner setFrame:CGRectMake(0, 416, 320, 50)];
    [UIView commitAnimations];
}

#pragma mark -
#pragma mark adMob Delegate

- (void)adViewDidReceiveAd:(GADBannerView *)bannerView
{
    [UIView beginAnimations:@"BannerSlide" context:nil];
    [adMobBanner setFrame:CGRectMake(0, 366, 320, 50)];
    [UIView commitAnimations];
}

- (void)
adView:(GADBannerView *)bannerView
didFailToReceiveAdWithError:(GADRequestError *)error
{
    [UIView beginAnimations:@"BannerSlide" context:nil];
    [adMobBanner setFrame:CGRectMake(0, 416, 320, 50)];
    [UIView commitAnimations];
}

출처 : http://cafe.naver.com/mcbugi