본문으로 건너뛰기

네이티브 광고 옵션

네이티브 광고에는 추가 맞춤 설정을 수행하고 최상의 광고 경험을 제공할 수 있는 다양한 고급 기능이 있습니다. 이 가이드에서는 네이티브 광고의 고급 기능을 사용하는 방법을 설명합니다.

GfpTheme 설정

NDA 모듈을 통해 제공되는 일부 광고들은 설정된 GfpTheme 값에 따라 밝은 테마와 어두운 테마로 구분지어 렌더링 됩니다.

NdaProviderOptions.Builder().setTheme(GfpTheme) 를 통해 전역적인 GfpTheme 설정이 가능하지만, 단일 광고에만 적용하는 GfpTheme 를 적용하고자 할 경우 GfpNativeAdOptions.Builder().setTheme() 를 호출합니다.

  • 설정하지 않으면 기기에 설정된 DayNight 값에 따라서 렌더링 됩니다.
  • 이 옵션을 설정하면 요청된 대로 GfpTheme 값에 따라서 렌더링 됩니다.

아래 예시는 어두운 테마로 설정하는 방법을 보여줍니다.

val nativeAdOptions = GfpNativeAdOptions.Builder()
.setTheme(ResolvedTheme.DARK)
.build()
val adLoader = GfpAdLoader.Builder(this, adParam)
...
.withNativeAd(nativeAdOptions) { nativeAd ->
...
}
.build()

DFP 광고의 AdChoices 게재위치

DFP 모듈을 통해 제공되는 네이티브 광고는 GfpNativeAdView 레이아웃 구성시 추가되는 GfpAdChoicesView 내에서 렌더링 되는 것이 아니라 DFP SDK 에 의해서 자동으로 렌더링 됩니다.

만약, DFP 네이티브 광고의 AdChoices 게재위치를 변경하고자 한다면 GfpNativeAdOptions.Builder.setAdChoicesPlacement() 를 통해 AdChoices 아이콘을 렌더링할 모서리를 선택할 수 있습니다.

아래 예시는 DFP 네이티브 광고의 AdChoices 아이콘 게재위치를 우하단에 위치하도록 설정하는 방법을 보여줍니다.

val nativeAdOptions = GfpNativeAdOptions.Builder()
.setAdChoicesPlacement(GfpNativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
.build()
val adLoader = GfpAdLoader.Builder(this, adParam)
...
.withNativeAd(nativeAdOptions) { nativeAd ->
...
}
.build()

GfpMediaView 사용여부 설정

GfpMediaView 를 사용하지 않는 형태로 네이티브 광고 레이아웃을 구성할 경우, GfpNativeAdOptions.Builder.setHasMediaView() 를 통해서 GfpMediaView 사용여부를 설정할 수 있습니다.

  • 설정하지 않거나 true 값으로 설정할 경우 네이티브 광고 레이아웃 구성시 GfpMediaView 를 반드시 포함시킨 후 GfpNativeAdView 에 등록해야 합니다.
  • false 로 설정할 경우 GfpMediaView 가 포함되지 않은 레이아웃 구성이 가능하며, GfpNativeAdViewGfpMediaView 를 등록할 필요가 없습니다.
주의

네이티브 광고 레이아웃내 GfpMediaView 구성 및 GfpNativeAdViewGfpMediaView 를 등록한 상태에서 GfpNativeAdOptions.Builder.setHasMediaView() 로 false 를 설정할 경우, Exception 이 발생하게 됩니다.

아래 예시는 GfpMediaView 가 포함되지 않은 레이아웃 구성 후, GfpMediaView 미사용 여부를 설정하는 예시를 보여줍니다.

val nativeAdOptions = GfpNativeAdOptions.Builder()
.setHasMediaView(false)
.build()
val adLoader = GfpAdLoader.Builder(this, adParam)
...
.withNativeAd(nativeAdOptions) { nativeAd ->
...
}
.build()

GfpMediaView 배경 블러 설정

GfpMediaView 내에 여백이 생겼을 때, 여백 부분에 블러 처리된 배경을 추가해서 여백을 꽉 채우고 자연스러운 배경 효과를 추가할 수 있습니다.

GfpNativeAdOptions.Builder.setEnableMediaBackgroundBlur()true 로 설정할 경우, GfpMediaTypeIMAGEVIDEO 인 미디어뷰에 대해서 여백 부분을 블러 처리된 배경으로 처리합니다.

  • IMAGE 타입의 경우, 이미지 자체가 블러 처리되어 배경으로 사용됩니다.
  • VIDEO 타입의 경우, 별도 썸네일 이미지가 존재할 때만 썸네일 이미지가 블러 처리되어 배경으로 사용됩니다. 썸네일 이미지가 없을 경우에는 블러 효과가 적용되지 않습니다.

아래 예시는 미디어 배경 블러를 활성화하는 방법을 보여줍니다.

val nativeAdOptions = GfpNativeAdOptions.Builder()
.setEnableMediaBackgroundBlur(true)
.build()
val adLoader = GfpAdLoader.Builder(this, adParam)
...
.withNativeAd(nativeAdOptions) { nativeAd ->
...
}
.build()

타임아웃 설정

네이티브 광고의 요청 타임아웃 값은 SdkPropertiesBuilder.unifiedAdRequestTimeout 을 통해 전역적으로 설정할 수 있지만, 단일 광고 요청에 대한 타임아웃을 설정하고자 할 경우 아래 예시와 같이 GfpAdLoader 를 빌드하는 과정에서 withTimeoutMillis 메서드를 사용하여 설정할 수 있습니다.

아래 예시는 특정 GfpAdLoader 로 로드되는 단일 광고 요청에 대한 타임아웃값을 10초로 설정하는 예시를 보여줍니다. 단일 광고 요청에 대한 타임아웃 값을 아래와 같이 설정할 경우, 전역으로 설정한 타임아웃 값이 무시됩니다.

정보

SdkPropertiesGfpAdLoader 에 설정된 타임아웃값이 없을 경우 기본값인 60초가 타임아웃값으로 설정됩니다.

val adLoader = GfpAdLoader.Builder(this, adParam)
.withTimeoutMillis(10_000L)
.withNativeAd { nativeAd ->
// Show the native ad.
}
.build()

아이콘 에셋 Preload 사용여부 설정

네이티브 광고가 로드될 때 전달되는 아이콘 에셋은 기본적으로 Preload 되어 Drawable 로 바로 사용할 수 있습니다. 아이콘 에셋을 Preload 하지 않고 직접 이미지를 로드하여 적용하려면, GfpNativeAdOptions.Builder.setEnableImageAssetsPreload() 메서드로 Preload 활성화 여부를 설정할 수 있습니다.

아래 예시는 아이콘 에셋 Preload 를 비활성화하는 방법을 보여줍니다.

주의

아이콘 에셋 Preload 를 비활성화한 경우, 네이티브 광고의 아이콘 에셋을 렌더링할 때 GfpNativeAd.getIcon() 을 통해 전달되는 아이콘 에셋의 GfpNativeAd.getIcon().getDrawable() 을 사용하면 안 됩니다. 대신 GfpNativeAd.getIcon().getUri() 가 전달하는 Uri를 통해 직접 이미지를 로드해야 합니다.

val nativeAdOptions = GfpNativeAdOptions.Builder()
.setEnableImageAssetsPreload(false)
.build()
val adLoader = GfpAdLoader.Builder(this, adParam)
...
.withNativeAd(nativeAdOptions) { nativeAd ->
...
}
.build()