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