시작하기
보상형 광고는 전체 화면을 사용하며, 광고 시청자에게 보상을 주는 동영상 광고입니다.
현재는 C2S만 지원하고 있으며, 추후에 S2S가 추가될 예정입니다.
선행 챕터
NAMSDK Import
SDK 모듈을 import 합니다.
- Swift
- Objective-C
import GFPSDK
@import GFPSDK;
C2S 보상형 광고 제공자 초기화
연동할 보상형 광고 제공자의 Pod이 프로젝트에 추가된 상태에서 GFPAdManager를 통해 초기화 합니다. (앱이 구동되는 시점에 한번만 수행)
- GFPRewardedAdProviderOptionDFP : 구글 DFP 보상형 광고
- GFPRewardedAdProviderOptionFAN : 페이스북 FAN 보상형 광고
- Swift
- Objective-C
// DFP, Facebook 보상형 광고를 연동하려는 경우 cocoapods 의존성 추가.
GFPAdManager.setup(withPublisherCd: "publisherCd") { (error : GFPError?) in
print("Setup Eror: \(String(describing: error?.description))")
}
// DFP, NDA, Inmobi, Facebook 배너 광고를 연동하려는 경우 cocoapods 의존성 추가.
[GFPAdManager setupWithPublisherCd:@"publisherCd" completionHandler:^(GFPError * _Nullable error) {
NSLog(@"Setup ERROR: %@", error);
}];
뷰 컨트롤러 작성
뷰 컨트롤러(MyViewController)를 만들고, 헤더파일(MyViewController.h)에 아래 작업을 수행합니다.
(이 예제에서는 뷰 컨트롤러가 매니저를 소유하는 형식으로 구현합니다.)
- 뷰 컨트롤러에 GFPRewardedAdManager *adManager 프로퍼티를 선언합니다.
- 뷰 컨트롤러에 GFPRewardedAdManagerDelegate 프로토콜을 구현합니다.
GFPRewardedAdManagerDelegate 는 보상형 광고의 로드, 실패 여부 및 클릭 여부를 전달합니다.
- Swift
- Objective-C
// MyViewController.h
import GFPSDK
class MyViewController : UIViewController, GFPRewardedAdManagerDelegate {
private var adManager : GFPReweardedAdManager?
}
// MyViewController.h
@import GFPSDK;
@interface MyViewController : UIViewController <GFPRewardedAdManagerDelegate>
@property (nonatomic) GFPRewardedAdManager *adManager;
@end
GFPReweardedAdManager 사용 가이드
GFPReweardedAdManager 생성 및 광고 로드 요청
MyViewController.m의 viewDidLoad 메소드에서 GFPReweardedAdManager의 인스턴스를 생성하고, 광고를 요청합니다.
- 인스턴스를 생성 후에는 delegate를 잊지말고 설정해줍니다.
- GFPReweardedAdManager 인스턴스를 생성할 때, 발급받으신 광고유닛 ID와 함께, GFPAdParam 에서 사용자 정보를 세팅해주세요. GFPAdParam은 광고 효과를 높이기 위한 타게팅에 사용됩니다.
- Swift
- Objective-C
override func viewDidLoad() {
super.viewDidLoad()
let adParam = GFPAdParam()
adParam.yearOfBirth = 1990
adParam.gender = .male
...
//인스턴스 생성
self.adManager = GFPRewardedAdManager(unitID: "UnitID", adParam: adParam)
//Delegate
self.adManager?.delegate = self
//Timeout
self.adManager?.requestTimeoutInterval = 60
//광고 요청
self.adManager?.load()
}
- (void)viewDidLoad {
[super viewDidLoad];
GFPAdParam *adParam = [[GFPAdParam alloc]init];
adParam.yearOfBirth = 1990;
adParam.gender = GFPAdParamGenderTypeMale;
...
//인스턴스 생성
self.adManager = [[GFPRewardedAdManager alloc] initWithUnitID:@"UnitID" adParam:adParam];
//Delegate
self.adManager.delegate = self;
//Timeout
self.adManager.requestTimeoutInterval = 60;
//광고 요청
[self.adManager load];
}
팁
매니저는 한개의 광고를 로드하면 사용성이 다하도록 설계되었습니다. 새로운 광고를 로드할 때는 새로운 매니저를 다시 만들어주세요.
팁
광고 요청 성공 시 GFPRewardedAdManagerDelegate rewardedAdManager:didLoadAd:
메소드가 호출됩니다.
광고 노출 요청
GFPRewardedAdManagerDelegate rewardedAdManager:didLoadAd:
로 성공 응답을 받았다면,
show:(UIViewController *)
메서드로 광고 노출을 요청할 수 있습니다.
- Swift
- Objective-C
self.adManager?.show(self)