배너, 네이티브, 네이티브 심플 결합 광고
NAM SDK 에서는 GFPAdLoader
를 통해서 배너와 네이티브 그리고 네이티브 심플 광고를 동시에 수신할 수 있는 방법을 제공합니다.
하나의 지면에서 여러 유형을 지원해야 하기 때문에 광고 유닛 설정이 필요하니 GFP 담당자와 논의가 필요합니다.
NAMSDK Import
SDK 모듈을 import 합니다.
- Objective-C
- Swift
@import GFPSDK;
import GFPSDK
Dependency 추가 및 초기화
배너 광고 네이티브 광고 설정을 참고해 주시기 바랍니다.
뷰 컨트롤러 작성
뷰 컨트롤러(MyViewController)를 만들고, 헤더파일(MyViewController.h)에 아래 작업을 수행합니다.
- 뷰 컨트롤러에 GFPAdLoader *adLoader 프로퍼티를 선언합니다.
- 뷰 컨트롤러에 GFPAdLoaderDelegate 프로토콜을 구현합니다.
GFPAdLoaderDelegate는 네이티브 광고 로드 관련 이벤트를 전달합니다.
- 뷰 컨트롤러에 GFPBannerView *bannerView 프로퍼티를 선언합니다.
- 뷰 컨트롤러에 GFPBannerViewDelegate 프로토콜을 구현합니다.
GFPBannerViewDelegate는 로드된 배너 객체의 노출, 클릭, 렌더링 에러등의 이벤트를 전달합니다.
- 뷰 컨트롤러에 GFPNativeAd *nativeAd 프로퍼티를 선언합니다.
- 뷰 컨트롤러에 GFPNativeAdDelegate 프로토콜을 구현합니다.
GFPNativeAdDelegate는 로드된 네이티브 객체의 노출, 클릭, 렌더링 에러등의 이벤트를 전달합니다.
- 뷰 컨트롤러에 GFPNativeSimpleAd *nativeSimpleAd 프로퍼티를 선언합니다.
- 뷰 컨트롤러에 GFPNativeSimpleAdDelegate 프로토콜을 구현합니다.
GFPNativeSimpleAdDelegate는 로드된 네이티브 심플 객체의 노출, 클릭, 렌더링 에러등의 이벤트를 전달합니다.
- Objective-C
- Swift
// MyViewController.h
@import GFPSDK;
@interface MyViewController : UIViewController <GFPAdLoaderDelegate,
GFPBannerViewDelegate,
GFPNativeAdDelegate,
GFPNativeSimpleAdDelegate>
@property (nonatomic) GFPAdLoader *adLoader;
@property (nonatomic) GFPBannerView *bannerView;
@property (nonatomic) GFPNativeAd *nativeAd;
@property (nonatomic) GFPNativeAdView *nativeAdView;
@property (nonatomic) GFPNativeSimpleAd *nativeSimpleAd;
@property (nonatomic) GFPNativeSimpleAdView *nativeSimpleAdView;
@end
// MyViewController.h
import GFPSDK
class MyViewController : UIViewController,
GFPAdLoaderDelegate,
GFPBannerViewDelegate,
GFPNativeAdDelegate,
GFPNativeSimpleAdDelegate {
private var adLoader : GFPAdLoader?
private var bannerView : GFPBannerView?
private var nativeSimpleAd : GFPNativeAd?
private var nativeSimpleAdView : GFPNativeAdView?
private var nativeSimpleAd : GFPNativeSimpleAd?
private var nativeSimpleAdView : GFPNativeSimpleAdView?
}
GFPAdLoader 생성 및 광고 요청
MyViewController.m의 viewDidLoad 메소드에서 GFPAdLoader의 인스턴스를 생성하고, 광고를 요청합니다.
-
GFPAdLoader 인스턴스를 생성할 때, 발급받으신 광고유닛 ID와 함께, GFPAdParam 에서 사용자 정보를 세팅해주세요. GFPAdParam은 광고 효과를 높이기 위한 타게팅에 사용됩니다.
-
사용하고자 하는 광고들에 대해 GFPAdLoader에 Option과 Delegate들을 설정해줍니다.
- Objective-C
- Swift
- (void)viewDidLoad {
[super viewDidLoad];
GFPAdParam *adParam = [[GFPAdParam alloc] init];
adParam.yearOfBirth = 1990;
adParam.gender = GFPAdParamGenderTypeMale;
...
self.adLoader = [[GFPAdLoader alloc] initWithUnitID:@"UnitId"
rootViewController:self
adParam:adParam];
//배너 옵션 설정
GFPAdBannerOptions *bannerOptions = [[GFPAdBannerOptions alloc] init];
bannerOptions.layoutType = GFPBannerViewLayoutTypeFluidWidth;
[self.adLoader setBannerDelegate:self bannerOptions:bannerOptions];
//네이티브 일반 설정
GFPAdNativeOptions *nativeOptions = [[GFPAdNativeOptions alloc] init];
nativeOptions.renderingSetting = ...; // 로드될 네이티브 일반형 광고 렌더링 설정
[self.adLoader setNativeDelegate:self nativeOptions:nativeOptions];
//네이티브 심플 설정
GFPAdNativeSimpleOptions *nativeSimpleOptions = [[GFPAdNativeSimpleOptions alloc] init];
nativeSimpleOptions.simpleAdRenderingSetting = ...; // 로드될 네이티브 심플형 광고 렌더링 설정
[self.adLoader setNativeSimpleDelegate:self nativeSimpleOptions:nativeSimpleOptions];
//광고 요청
self.adLoader.delegate = self;
[self.adLoader loadAd];
}
override func viewDidLoad() {
super.viewDidLoad()
let adParam = GFPAdParam()
adParam.yearOfBirth = 1990
adParam.gender = .male
...
self.adLoader = GFPAdLoader(unitID: "UnitId", rootViewController: self, adParam: adParam)
//배너 옵션 설정
let bannerOption = GFPAdBannerOptions()
bannerOption.layoutType = .fluidWidth
self.adLoader?.setBannerDelegate(self, bannerOptions: bannerOption)
//네이티브 일반 설정
let nativeOption = GFPAdNativeOptions()
nativeOption.renderingSetting = ... // 로드될 네이티브 일반형 광고 렌더링 설정
self.adLoader?.setNativeDelegate(self, nativeOptions: nativeOption)
//네이티브 심플 설정
let nativeSimpleOption = GFPAdNativeSimpleOptions()
nativeSimpleOption.renderingSetting = ... // 로드될 네이티브 일반형 광고 렌더링 설정
self.adLoader?.setNativeSimpleDelegate(self, nativeSimpleOptions: nativeSimpleOption)
self.adLoader?.delegate = self
self.adLoader?.loadAd()
}
모펍의 경우 rootViewController가 nil이면, 내부적으로 UIApplication.sharedApplication.delegate.window.rootViewController로 세팅됨
GFPAdLoader 광고 로드 이벤트 수신
- 결합된 광고는 각각의 광고 타입에 연결된 Delegate 이벤트를 수신합니다. 수신하는 이벤트 들의 목록은 아래와 같습니다.
- 배너 광고 응답 성공 시
GFPAdLoaderDelegate
의adLoader:didReceiveBannerAd:
메소드가 호출됩니다.GFPBannerView
는 일반적인 뷰 객체(UIView)이므로, 뷰 계층구조에 포함될 수 있습니다. - 네이티브 일반 광고 응답 성공 시
GFPAdLoaderDelegate
의adLoader:didReceiveNativeAd:
메소드가 호출됩니다. - 네이티브 심플 광고 응답 성공 시
GFPAdLoaderDelegate
의adLoader:didReceiveNativeSimpleAd:
메소드가 호출됩니다. - 광고 응답 실패 시에는
GFPAdLoaderDelegate
의adLoader:didFailWithError:responseInfo:
메소드가 호출됩니다.
- 배너 광고 응답 성공 시
GFPAdLoader 이후 이벤트 수신 및 렌더링 가이드
- 이후의 렌더링과 작업들은 각 광고별 가이드 문서를 참조해주세요.