본문으로 건너뛰기

배너 광고 옵션

광고 렌더링 타입 (기본값 GFPDisplayAgentTypeInApp)

deprecated

displayAgent는 deprecated되었습니다. S2S Click Handler 또는 기본 인앱 브라우저를 사용하세요.

광고 클릭 시, Safari로 이동, In-App 이동, Scheme을 통한 이동을 지원하는 설정입니다.
광고 Banner, Native, Video 옵션 설정 후 세팅해 주시면 됩니다.

Scheme Type 설정 후 아래 AppScheme 해당하는 String 값을 설정해 주시면 됩니다.

// Safari로 이동 옵션.
let displayAgent = GFPRenderDisplayAgent(type: .displayAgentTypeNativeSafari)
GFPAdManager.adConfiguration().displayAgent = displayAgent

// 별도의 App scheme 설정 옵션.
let displayAgent = GFPRenderDisplayAgent(type: .displayAgentTypeScheme, scheme: "AppScheme")
GFPAdManager.adConfiguration().displayAgent = displayAgent

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

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

self.adLoader?.requestTimeoutInterval = ...

네이티브 광고 동시 로드

배너 광고를 로드할때, 배너 또는 네이티브 광고 중 하나를 응답받을 수 있도록 설정할 수 있습니다.

let nativeOption = GFPAdNativeOptions()
nativeOption.renderingSetting = ... // 로드될 네이티브 일반형 광고 렌더링 설정
self.adLoader?.setNativeDelegate(self, nativeOptions: nativeOption)

let nativeSimpleOption = GFPAdNativeSimpleOptions()
nativeSimpleOption.simpleAdRenderingSetting = ... // 로드될 네이티브 심플형 광고 렌더링 설정
self.adLoader?.setNativeSimpleDelegate(self, nativeSimpleOptions: nativeSimpleOption)

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

네이티브 일반형 광고가 로드된 경우, GFPAdLoaderDelegate의 adLoader:didReceiveNativeAd: 메서드가 호출됩니다. 네이티브 심플형 광고가 로드된 경우, GFPAdLoaderDelegate의 adLoader:didReceiveNativeSimpleAd: 메서드가 호출됩니다.

배너 레이아웃 타입 설정

레이아웃을 설정하지 않은 경우 기본 값은 고정형(GFPBannerViewLayoutTypeFixed) 입니다.

  • GFPBannerView.adSize 를 통해 광고 소재의 사이즈 정보를 얻으실 수 있습니다.
  • 고정형을 제외한 레이아웃 타입(=확장형)을 설정할 경우, 가로 확장형 레이아웃 설정을 권장합니다.

고정형 레이아웃 설정 (Fixed)

  • 서비스에서 설정한 광고 컨테이너 크기에 관계 없이 광고 영역의 크기가 고정된 형태입니다.
let bannerOption = GFPAdBannerOptions()
bannerOption.layoutType = GFPBannerViewLayoutType(rawValue: 0)

가로 확장형 레이아웃 설정 (FluidWidth)

  • 배너광고의 가로 폭을 직접 설정할 수 있습니다.
let bannerOption = GFPAdBannerOptions()
bannerOption.layoutType = .fluidWidth
  • 가로 확장형으로 레이아웃 타입을 설정하여 광고를 요청하고, 광고 요청 성공 시 응답으로 받은 GFPBannerView의 가로 크기를 원하는 크기로 조절합니다.
self.bannerView?.translatesAutoresizingMaskIntoConstraints = false
self.bannerView?.widthAnchor.constraint(equalToConstant: SUPERVIEW_SIZE.width).isActive = true
/*
원하는 가로 크기만큼 bannerView frame 세팅.
*/
let frame = CGRect(x: /*원하는 X 좌표*/, y: /*원하는 Y 좌표*/, width: /*원하는 가로 크기*/, height: /*원하는 세로 크기*/)
self.bannerView?.frame = frame
  • 가로 확장이 지원되는 광고가 로드된 경우 지정하신 GFPBannerView의 가로 크기에 맞게 꽉 채워지도록 광고가 그려지고, 고정형 광고가 로드된 경우 가로 양쪽에 남는 크기는 여백으로(가운데 정렬됨) 그려집니다.

세로 확장형 레이아웃 설정 (FluidHeight)

  • 세로 확장형으로 레이아웃 타입을 설정하여, 배너 광고의 세로 폭을 직접 설정할 수 있습니다.
let bannerOption = GFPAdBannerOptions()
bannerOption.layoutType = .fluidHeight

확장형 레이아웃 설정 (Fluid)

  • 확장형으로 레이아웃 타입을 설정하여, 배너 광고의 가로/세로 폭을 직접 설정할 수 있습니다.
let bannerOption = GFPAdBannerOptions()
bannerOption.layoutType = .fluid

광고 전달 데이터 설정

hostMeta(매채와 광고간의 약속된 데이터)를 설정하여 광고 소재에 필요한 데이터를 전달합니다. hostMeta의 Key/Value는 모두 문자열 타입입니다.

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

//example
let bannerOption = GFPAdBannerOptions()
bannerOption.hostMeta = ["light":"theme"]
bannerOption.hostMeta = ["dark":"theme"]
bannerOption.hostMeta = ["system":"theme"] // 아이폰 설정의 style을 따라갑니다.

MRAID 기능 지원 설정

MRAID 광고 소재에서 사용할 수 있는 추가 기능을 NS_OPTIONS 형태로 지정합니다. 기본값은 GFPMraidSupportNone(0) 입니다.

설명
GFPMraidSupportNone추가 기능 없음 (기본값)
GFPMraidSupportSMSSMS 전송
GFPMraidSupportTel전화 연결
GFPMraidSupportCalendar캘린더 이벤트 추가
GFPMraidSupportInlineVideo인라인 비디오 재생
GFPMraidSupportPicture사진 저장
GFPMraidSupportLocation위치 정보 접근
GFPMraidSupportVPAIDVPAID 지원
GFPMraidSupportDefault기본 제공 기능 세트
let bannerOption = GFPAdBannerOptions()
bannerOption.mraidSupportType = [.sms, .tel, .calendar]

웹뷰 옵션 설정

배너 웹뷰의 스크롤 인셋 및 초기 오프셋을 GFPAdBannerWebViewOptions로 설정합니다.

프로퍼티타입설명
contentInsetAdjustmentBehaviorUIScrollViewContentInsetAdjustmentBehavior스크롤뷰 인셋 조정 방식
defaultContentOffsetCGPoint초기 콘텐츠 오프셋
let webViewOption = GFPAdBannerWebViewOptions()
webViewOption.contentInsetAdjustmentBehavior = .never
webViewOption.defaultContentOffset = .zero

let bannerOption = GFPAdBannerOptions()
bannerOption.webViewOption = webViewOption

OMSDK FriendlyObstruction 설정

광고 영역과 겹치지만 광고 노출을 방해하지 않는 뷰(닫기 버튼, 미디어 컨트롤 등)를 omFriendlyObstructions로 등록합니다. OMSDK는 이 목록에 포함된 뷰를 측정 대상에서 제외합니다.

목적 타입설명
GFPFriendlyObstructionTypeMediaControls미디어 컨트롤
GFPFriendlyObstructionTypeCloseAd닫기 버튼
GFPFriendlyObstructionTypeNotVisible화면에 보이지 않는 뷰
GFPFriendlyObstructionTypeOther기타
let obstruction = GFPOMFriendlyObstruction(with: closeButton, purpose: .closeAd, reason: "close button")

let bannerOption = GFPAdBannerOptions()
bannerOption.omFriendlyObstructions = [obstruction]