본문으로 건너뛰기

네이티브 심플 광고 옵션

광고 요청 타임아웃 (기본값 60초)

광고요청 이후 지정한 시간(초)경과 까지 광고 응답을 얻지 못하면 기존 요청이 무효화되며, GFPAdLoaderDelegate의 adLoader:didFailWithError:responseInfo: 메소드가 호출됩니다.

self.adLoader?.requestTimeoutInterval = ...

GFPNativeSimpleAdRenderingSetting

AdBadge 렌더링 옵션

Native Simple 광고의 'AD' badge 표시 유무에 관련한 옵션입니다. YES로 설정 시 이미지의 우하단에 위치하며, NO로 설정 시 표시되지 않습니다.

위험

AdBadge 렌더링 옵션은 NAMSDK 4.3.0 부터 deprecate 되었습니다. AD마크는 내부 로직에 의해 렌더링됩니다.

let simpleRenderingSetting = GFPNativeSimpleAdRenderingSetting()
simpleRenderingSetting.renderAdBadge = true

let nativeSimpleOption = GFPAdNativeSimpleOptions()
nativeSimpleOption.simpleAdRenderingSetting = simpleRenderingSetting

스타일 설정

InterfaceStyle 전역 설정과 별개로, 특정 화면에서 UI 모드가 다를 때 개별 설정을 통해 아이콘 스타일을 맞출 수 있습니다. '광고 별 설정 > 전역 설정'의 우선 순위에 따라 적용되며, 광고 별 style 설정이 없을 경우 전역 설정을 따라갑니다.

let simpleRenderingSetting = GFPNativeSimpleAdRenderingSetting()
simpleRenderingSetting.adInterfaceStyle = .light
simpleRenderingSetting.adInterfaceStyle = .dark
simpleRenderingSetting.adInterfaceStyle = .system // 아이폰 설정의 style을 따라갑니다.

let nativeSimpleOption = GFPAdNativeSimpleOptions()
nativeSimpleOption.simpleAdRenderingSetting = simpleRenderingSetting

NS 커스텀 배경 설정

NS 광고 배경 스타일 설정

일반적으로 광고 디자인이 정해져 있는 Native Simple 광고에서 배경 정보가 없는 경우 커스텀 배경 스타일을 설정할 수 있는 옵션입니다.

let light = GFPBackgroundOptionAttributes()
light.color = UIColor(red: 237/255.0, green: 240/255.0, blue: 244/255.0, alpha: 1.0)
light.alpha = 0.74
light.cornerRadius = 8
light.leftMargin = 8
light.rightMargin = 8
light.bottomMargin = 0
light.topMargin = 0
light.maxWidth = 414
let dark = GFPBackgroundOptionAttributes()
dark.color = UIColor(red: 237/255.0, green: 240/255.0, blue: 244/255.0, alpha: 1.0)
dark.alpha = 0.74
dark.cornerRadius = 8
dark.leftMargin = 8
dark.rightMargin = 8
dark.bottomMargin = 0
dark.topMargin = 0
dark.maxWidth = 414
let bgOption = GFPBackgroundOption(light: light, dark: dark)
let renderingSetting = GFPNativeSimpleAdRenderingSetting()
renderingSetting.backgroundOption = bgOption
let nativeSimpleOption = GFPAdNativeSimpleOptions()
nativeSimpleOption.simpleAdRenderingSetting = renderingSetting
let adLoader = GFPAdLoader()
adLoader.setNativeSimpleDelegate(self, nativeSimpleOptions: nativeSimpleOption)

네이티브 심플 광고 Lazy Loading

Lazy Loading 활성화

네이티브 심플 렌더링 옵션에서 lazy loading 을 활성화 시키면 네이티브 광고 뷰 객체가 먼저 GFPAdLoaderDelegate.adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceive nativeSimpleAd: GFPNativeSimpleAd!) 으로 주어지며, 미디어 뷰의 이미지는 비동기로 로딩 됩니다.

self.adLoader = GFPAdLoader(unitID: "UnitId", rootViewController: self, adParam: adParam)

let nativeSimpleOption = GFPAdNativeSimpleOptions()
nativeSimpleOption.renderingSetting.useLazyMediaLoading = true
self.adLoader?.setNativeSimpleDelegate(self, nativeSimpleOptions: nativeSimpleOption)

self.adLoader?.delegate = self
self.adLoader?.loadAd()

플레이스홀더 표시

미디어가 비동기로 로딩 되는 동안 플레이스 홀더를 보여줄 수 있습니다. 플레이스홀더는 광고 뷰 위에 바로 나타나며, 뷰 요소에 크기가 맞도록 자동 조절됩니다.

func adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceive nativeAdSimpleAd: GFPNativeSimpleAd!) {
self.nativeSimpleAdView.nativeAd = nativeSimpleAd

self.nativeSimpleAdView.mediaView?.showPlaceholder { imageView in
imageView.image = UIImage(named: "my_media_placeholder")
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
}

비동기 미디어 로딩 콜백

미디어 뷰, 아이콘 뷰 등 모든 미디어의 비동기 로딩이 완료되면 GFPNativeSimpleAdDelegatenativeSimpleAdDidLoadMedia(_:) 가 호출됩니다.

하나라도 로딩이 실패하는 경우 nativeSimpleAdDidFail(toLoadMedia:) 가 호출됩니다.

// GFPNativeSimpleAdDelegate
func nativeSimpleAdDidLoadMedia(_ nativeSimpleAd: GFPNativeSimpleAd) {
self.nativeSimpleAdView.removePlaceholders() // Optional for safety.
}

func nativeSimpleAdDidFail(toLoadMedia nativeSimpleAd: GFPNativeSimpleAd) {
// Example showing new placeholders on failure.
self.nativeSimpleAdView.mediaView?.showPlaceholder { imageView in
imageView.image = UIImage(named: "my_fallback_media_placeholder")
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
}
}