본문으로 건너뛰기

배너, 네이티브, 네이티브 심플 결합 광고

NAM SDK 에서는 GFPAdLoader 를 통해서 배너와 네이티브 그리고 네이티브 심플 광고를 동시에 수신할 수 있는 방법을 제공합니다.
하나의 지면에서 여러 유형을 지원해야 하기 때문에 광고 유닛 설정이 필요하니 GFP 담당자와 논의가 필요합니다.

NAMSDK Import

SDK 모듈을 import 합니다.

@import GFPSDK;

Dependency 추가 및 초기화

배너 광고 네이티브 광고 설정을 참고해 주시기 바랍니다.

뷰 컨트롤러 작성

뷰 컨트롤러(MyViewController)를 만들고, 헤더파일(MyViewController.h)에 아래 작업을 수행합니다.

  1. 뷰 컨트롤러에 GFPAdLoader *adLoader 프로퍼티를 선언합니다.
  2. 뷰 컨트롤러에 GFPAdLoaderDelegate 프로토콜을 구현합니다.
정보

GFPAdLoaderDelegate는 네이티브 광고 로드 관련 이벤트를 전달합니다.

  1. 뷰 컨트롤러에 GFPBannerView *bannerView 프로퍼티를 선언합니다.
  2. 뷰 컨트롤러에 GFPBannerViewDelegate 프로토콜을 구현합니다.
정보

GFPBannerViewDelegate는 로드된 배너 객체의 노출, 클릭, 렌더링 에러등의 이벤트를 전달합니다.

  1. 뷰 컨트롤러에 GFPNativeAd *nativeAd 프로퍼티를 선언합니다.
  2. 뷰 컨트롤러에 GFPNativeAdDelegate 프로토콜을 구현합니다.
정보

GFPNativeAdDelegate는 로드된 네이티브 객체의 노출, 클릭, 렌더링 에러등의 이벤트를 전달합니다.

  1. 뷰 컨트롤러에 GFPNativeSimpleAd *nativeSimpleAd 프로퍼티를 선언합니다.
  2. 뷰 컨트롤러에 GFPNativeSimpleAdDelegate 프로토콜을 구현합니다.
정보

GFPNativeSimpleAdDelegate는 로드된 네이티브 심플 객체의 노출, 클릭, 렌더링 에러등의 이벤트를 전달합니다.

// 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

GFPAdLoader 생성 및 광고 요청

MyViewController.m의 viewDidLoad 메소드에서 GFPAdLoader의 인스턴스를 생성하고, 광고를 요청합니다.

  • GFPAdLoader 인스턴스를 생성할 때, 발급받으신 광고유닛 ID와 함께, GFPAdParam 에서 사용자 정보를 세팅해주세요. GFPAdParam은 광고 효과를 높이기 위한 타게팅에 사용됩니다.

  • 사용하고자 하는 광고들에 대해 GFPAdLoader에 Option과 Delegate들을 설정해줍니다.

- (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];
}
정보

모펍의 경우 rootViewController가 nil이면, 내부적으로 UIApplication.sharedApplication.delegate.window.rootViewController로 세팅됨

GFPAdLoader 광고 로드 이벤트 수신

  • 결합된 광고는 각각의 광고 타입에 연결된 Delegate 이벤트를 수신합니다. 수신하는 이벤트 들의 목록은 아래와 같습니다.
    • 배너 광고 응답 성공 시 GFPAdLoaderDelegateadLoader:didReceiveBannerAd: 메소드가 호출됩니다. GFPBannerView는 일반적인 뷰 객체(UIView)이므로, 뷰 계층구조에 포함될 수 있습니다.
    • 네이티브 일반 광고 응답 성공 시 GFPAdLoaderDelegateadLoader:didReceiveNativeAd: 메소드가 호출됩니다.
    • 네이티브 심플 광고 응답 성공 시 GFPAdLoaderDelegateadLoader:didReceiveNativeSimpleAd: 메소드가 호출됩니다.
    • 광고 응답 실패 시에는 GFPAdLoaderDelegateadLoader:didFailWithError:responseInfo: 메소드가 호출됩니다.

GFPAdLoader 이후 이벤트 수신 및 렌더링 가이드