네이티브 렌더링 옵션
GFPNativeAdRenderingSetting(NN)과 GFPNativeSimpleAdRenderingSetting(NS)의 모든 옵션을 정리한 레퍼런스입니다.
클래스 계층
GFPNativeBaseRenderingSetting ← NN / NS 공통 옵션
├── GFPNativeAdRenderingSetting (NN 전용 옵션 추가)
└── GFPNativeSimpleAdRenderingSetting (NS 전용 옵션 추가)
공통 옵션 (GFPNativeBaseRenderingSetting)
NN(GFPAdNativeOptions.renderingSetting)과 NS(GFPAdNativeSimpleOptions.simpleAdRenderingSetting) 모두에서 사용 가능합니다.
preferredAdChoicesViewPosition
DFP adChoicesView가 오버레이로 삽입될 위치를 설정합니다. 기본값은 우측 상단입니다.
| 값 | 위치 |
|---|---|
topRightCorner | 우측 상단 (기본값) |
topLeftCorner | 좌측 상단 |
bottomRightCorner | 우측 하단 |
bottomLeftCorner | 좌측 하단 |
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.preferredAdChoicesViewPosition = .topRightCorner
let nativeOption = GFPAdNativeOptions()
nativeOption.renderingSetting = renderingSetting
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.preferredAdChoicesViewPosition = GFPAdChoicesViewPositionTopRightCorner;
GFPAdNativeOptions *nativeOptions = [[GFPAdNativeOptions alloc] init];
nativeOptions.renderingSetting = renderingSetting;
구글 문서에는 adChoiceView를 직접 등록하면 오버레이 형식이 아닌 직접 등록한 뷰에 그려진다고 되어있으나, 현재 정상 동작하지 않습니다. 우상단이 아닌 위치에 adChoicesView가 렌더링되기를 원하는 경우 이 설정이 필요합니다.
커스텀 AdChoices 구현은 커스텀 AdChoices를 참고해 주세요.
adAssetsPositionInFullAdView
adChoicesView 등 광고 에셋의 위치 기준을 미디어 영역이 아닌 전체 광고 뷰로 설정합니다. s2s 광고에만 적용됩니다. 기본값은 NO입니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeSimpleAdRenderingSetting()
renderingSetting.adAssetsPositionInFullAdView = true
GFPNativeSimpleAdRenderingSetting *renderingSetting = [[GFPNativeSimpleAdRenderingSetting alloc] init];
renderingSetting.adAssetsPositionInFullAdView = YES;
adChoicesPositionInFullAdView는 deprecated입니다. adAssetsPositionInFullAdView를 사용해 주세요.
adInterfaceStyle
adChoicesView 색상, 리치미디어 배경색 등 광고 UI 스타일을 설정합니다. 네이버 광고에 한해 동작합니다. 전역 설정(GFPAdConfiguration.adInterfaceStyle)보다 우선 적용됩니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.adInterfaceStyle = .light
renderingSetting.adInterfaceStyle = .dark
renderingSetting.adInterfaceStyle = .system // 기기 설정을 따라갑니다
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.adInterfaceStyle = GFPAdInterfaceStyleLight;
renderingSetting.adInterfaceStyle = GFPAdInterfaceStyleDark;
renderingSetting.adInterfaceStyle = GFPAdInterfaceStyleSystem;
enableCustomAdChoices
커스텀 adChoicesView를 직접 구현할 경우 SDK의 기본 adChoicesView 렌더링을 비활성화합니다. s2s 광고에만 적용됩니다. 기본값은 NO입니다.
자세한 내용은 커스텀 AdChoices를 참고해 주세요.
richMediaInsets
캐러셀 광고 UICollectionView의 좌우 여백을 설정합니다. 기본값은 UIEdgeInsetsZero입니다.
자세한 내용은 네이티브 캐러셀 광고를 참고해 주세요.
mediaRegularFont / mediaBoldFont
캐러셀 광고 MediaView 내부에서 사용할 폰트를 커스텀합니다. 기본값은 nil(시스템 폰트)입니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.mediaRegularFont = UIFont.systemFont(ofSize: 14, weight: .regular)
renderingSetting.mediaBoldFont = UIFont.systemFont(ofSize: 14, weight: .bold)
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.mediaRegularFont = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular];
renderingSetting.mediaBoldFont = [UIFont systemFontOfSize:14 weight:UIFontWeightBold];
slotLoadingColor / slotLoadingDarkColor
캐러셀 슬롯 로딩 중 표시되는 배경 색상입니다. 기본값은 nil입니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.slotLoadingColor = UIColor(white: 0.9, alpha: 1.0)
renderingSetting.slotLoadingDarkColor = UIColor(white: 0.2, alpha: 1.0)
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.slotLoadingColor = [UIColor colorWithWhite:0.9 alpha:1.0];
renderingSetting.slotLoadingDarkColor = [UIColor colorWithWhite:0.2 alpha:1.0];
slotPlaceHolderImage / slotPlaceHolderDarkImage
캐러셀 슬롯 이미지 로딩 전 표시할 플레이스홀더 이미지입니다. 기본값은 nil입니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.slotPlaceHolderImage = UIImage(named: "placeholder")
renderingSetting.slotPlaceHolderDarkImage = UIImage(named: "placeholder_dark")
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.slotPlaceHolderImage = [UIImage imageNamed:@"placeholder"];
renderingSetting.slotPlaceHolderDarkImage = [UIImage imageNamed:@"placeholder_dark"];
useMediaDimmed
광고 MediaView에 딤(Dimmed) 처리를 적용합니다. 활성화 시 일반 광고에는 2%, 아웃스트림 동영상에는 8%의 딤이 적용됩니다. 기본값은 NO입니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.useMediaDimmed = true
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.useMediaDimmed = YES;
omFriendlyObstructions
OMSDK 측정 시 friendlyObstruction으로 등록할 뷰 목록을 설정합니다. s2s 광고에서 측정 정확도를 높이기 위해 광고 위에 올라가는 서비스 UI(예: 재생 버튼, 레이블)를 등록합니다. c2s는 미적용(LAN은 view만 전달)입니다.
- Swift
- Objective-C
let obstruction = GFPOMFriendlyObstruction(view: myOverlayView,
purpose: .notVisible,
detailedReason: "service overlay")
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.omFriendlyObstructions = [obstruction]
GFPOMFriendlyObstruction *obstruction =
[[GFPOMFriendlyObstruction alloc] initWithView:myOverlayView
purpose:GFPOMFriendlyObstructionPurposeNotVisible
detailedReason:@"service overlay"];
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.omFriendlyObstructions = @[obstruction];
useLazyMediaLoading
미디어(이미지, 아이콘 등)를 비동기로 지연 로딩합니다. 기본값은 NO입니다.
자세한 내용은 네이티브 광고 옵션 또는 네이티브 심플 광고 옵션을 참고해 주세요.
isImageSizePreferred
이미지 사이즈를 광고 영역보다 우선하여 배치합니다. 활성화 시 설정된 광고 영역보다 이미지 사이즈가 우선되며 하단에 배치됩니다. 기본값은 NO입니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeSimpleAdRenderingSetting()
renderingSetting.isImageSizePreferred = true
GFPNativeSimpleAdRenderingSetting *renderingSetting = [[GFPNativeSimpleAdRenderingSetting alloc] init];
renderingSetting.isImageSizePreferred = YES;
viewWidth
가로 해상도 기준으로 셀 크기가 결정되는 광고 타입(예: 캐러셀)에서 광고가 그려질 뷰의 너비를 명시적으로 전달합니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.viewWidth = NSNumber(value: UIScreen.main.bounds.width)
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.viewWidth = @(UIScreen.mainScreen.bounds.size.width);
NN 전용 옵션 (GFPNativeAdRenderingSetting)
GFPAdNativeOptions.renderingSetting에 설정합니다.
hasMediaView
네이티브 뷰에 미디어뷰 포함 여부를 설정합니다. 기본값은 YES입니다.
네이티브 뷰의 미디어뷰 존재 여부와 이 값이 일치하지 않으면 렌더링 오류가 발생합니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.hasMediaView = false
let nativeOption = GFPAdNativeOptions()
nativeOption.renderingSetting = renderingSetting
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.hasMediaView = NO;
GFPAdNativeOptions *nativeOptions = [[GFPAdNativeOptions alloc] init];
nativeOptions.renderingSetting = renderingSetting;
enableMediaBackgroundBlur
네이티브 광고 미디어뷰 여백에 블러 처리를 적용합니다. 기본값은 NO입니다.
자세한 내용은 네이티브 동영상 광고를 참고해 주세요.
useInternalCache
네이티브 광고 렌더링 성능 향상을 위해 내부 캐시를 사용합니다. 기본값은 NO입니다.
광고 캐싱 기능(NAMSDK 8.17.0)과는 별개로 동작하는 렌더링 전용 캐시입니다. 광고 객체 캐싱은 광고 캐시를 참고해 주세요.
- Swift
- Objective-C
let renderingSetting = GFPNativeAdRenderingSetting()
renderingSetting.useInternalCache = true
let nativeOption = GFPAdNativeOptions()
nativeOption.renderingSetting = renderingSetting
GFPNativeAdRenderingSetting *renderingSetting = [[GFPNativeAdRenderingSetting alloc] init];
renderingSetting.useInternalCache = YES;
GFPAdNativeOptions *nativeOption = [[GFPAdNativeOptions alloc] init];
nativeOption.renderingSetting = renderingSetting;
NS 전용 옵션 (GFPNativeSimpleAdRenderingSetting)
GFPAdNativeSimpleOptions.simpleAdRenderingSetting에 설정합니다.
videoEventDelegate
NS 리치형 광고의 비디오 플레이어 이벤트를 수신하는 델리게이트입니다.
- Swift
- Objective-C
let renderingSetting = GFPNativeSimpleAdRenderingSetting()
renderingSetting.videoEventDelegate = self // GFPNativeVideoEventDelegate 구현 필요
GFPNativeSimpleAdRenderingSetting *renderingSetting = [[GFPNativeSimpleAdRenderingSetting alloc] init];
renderingSetting.videoEventDelegate = self; // GFPNativeVideoEventDelegate 구현 필요
maxExtendingHeight
확장형 리치 광고의 최대 확장 높이를 제한합니다. 광고 로드 후에도 동적으로 변경할 수 있습니다.
0이하: 높이 제한 없음 (기본값:-1)0초과: 해당 값으로 높이 제한
자세한 내용은 네이티브 심플 리치 광고를 참고해 주세요.
backgroundOption
광고 응답에 배경 정보가 없을 때 적용할 커스텀 배경 스타일을 설정합니다.
자세한 내용은 네이티브 심플 광고 옵션을 참고해 주세요.
전체 옵션 빠른 참조
| 옵션 | 적용 범위 | 기본값 | 비고 |
|---|---|---|---|
preferredAdChoicesViewPosition | 공통 | topRightCorner | |
adAssetsPositionInFullAdView | 공통 | NO | s2s 전용 |
adInterfaceStyle | 공통 | system | 네이버 광고 전용 |
enableCustomAdChoices | 공통 | NO | s2s 전용 |
richMediaInsets | 공통 | UIEdgeInsetsZero | 캐러셀 전용 |
mediaRegularFont | 공통 | nil | 캐러셀 전용 |
mediaBoldFont | 공통 | nil | 캐러셀 전용 |
slotLoadingColor | 공통 | nil | 캐러셀 전용 |
slotLoadingDarkColor | 공통 | nil | 캐러셀 전용 |
slotPlaceHolderImage | 공통 | nil | 캐러셀 전용 |
slotPlaceHolderDarkImage | 공통 | nil | 캐러셀 전용 |
useMediaDimmed | 공통 | NO | |
omFriendlyObstructions | 공통 | nil | s2s: 전체 적용 / LAN: view만 전달 |
useLazyMediaLoading | 공통 | NO | |
isImageSizePreferred | 공통 | NO | |
viewWidth | 공통 | nil | 캐러셀 등 가로 기준 광고 전용 |
hasMediaView | NN 전용 | YES | |
enableMediaBackgroundBlur | NN 전용 | NO | |
useInternalCache | NN 전용 | NO | |
videoEventDelegate | NS 전용 | - | |
maxExtendingHeight | NS 전용 | -1 | |
backgroundOption | NS 전용 | nil | |
adChoicesPositionInFullAdView | 공통 | NO | deprecated → adAssetsPositionInFullAdView |