본문으로 건너뛰기

Ad Mute

Ad Mute Event

NAM SDK는 Banner, Native Simple 타입에 대해 광고 숨기기(ad mute) 기능을 제공합니다.

숨김 처리가 됐을 경우, 기존에 이벤트 콜백을 전달해주는 리스너에서 Ad Mute 이벤트를 전달해 줍니다.

  1. GfpBannerAdView 를 통해 배너 광고를 호출하는 경우 BannerAdListener 에 정의된 onAdMuted() 를 통해 콜백 전달
bannerAdView.setAdListner(object : BannerAdListener() {

/* onAdLoaded(), onAdClicked() 등 */

override fun onAdMuted(ad: GfpBannerAd) {
/* ... */
}
})
  1. GfpAdLoader 를 통해 배너 및 네이티브 광고를 호출하는 경우 AdEventListener 에 정의된 onAdMuted() 를 통해 콜백 전달
val adLoader = GfpAdLoader.Builder(activity, adParam)
.withAdListener(object: AdEventListener() {

/* onAdClicked(), onAdImpression(), 등 */

override fun onAdMuted() {
/* ... */
}
})
.withNativeSimpleAd(nativeSimpleAdOptions) { nativeSimpleAd ->
/* ... */
}
.build()


Dark Theme

Ad Mute 아이콘에 대해 다크모드 / 라이트모드 설정도 지원하고 있습니다.

설정 가능한 타입은 3가지로, 시스템 설정을 따라가는 SYSTEM, 라이트 모드인 LIGHT, 다크 모드인 DARK 를 제공하고 있습니다.

테마 설정 방식으로는 NdaProviderOptions 를 통한 전역 설정 방법과 GfpNativeSimpleAdOptions 를 통한 개별 설정 방식이 있습니다.

1. 전역 설정 방식

  • SdkProperties 를 통해 NdaProviderOptions 를 설정
GfpSdk.setSdkProperties(GfpSdk.getSdkProperties().buildUpon()
.addProviderOptions(NdaProviderOptions.Builder()
.setTheme(ResolvedTheme.SYSTEM)
.build())
.build())
  • 전역 설정을 할 경우 별도의 개별 설정을 하지 않은 모든 S2S 배너 광고 및 NativeSimple 광고에 일괄 적용됩니다.
  • 아무런 설정을 하지 않을 경우 기본값은 LIGHT 입니다.

2. 개별 설정 방식

  • GfpAdLoader 를 통해 광고를 요청할 때 함께 전달하는 GfpNativeSimpleAdOptions 객체를 통해 설정
val nativeSimpleAdOptions = GfpNativeSimpleAdOptions.Builder()
.setTheme(ResolvedTheme.DARK)
.build()

val adLoader = GfpAdLoader.Builder(activity, adParam)
.withAdListener(object: AdEventListener {
/* onAdClicked(), onAdImpression(), 등 */

override fun onAdMuted() {
/* ... */
}
})
.withNativeSimpleAd(nativeSimpleAdOptions) { nativeSimpleAd ->
/* ... */
}
.build()

전역 설정보다 개별 설정이 우선 순위가 높습니다. 따라서 전역 설정과 개별 설정이 모두 설정된 경우에는 개별 설정된 값이 적용됩니다.

3. LazyTheme

6.1.1 버전 부터, LazyTheme를 지원합니다.

다크모드 설정과 같은 테마 설정이 동적으로 변경되는 화면에서, 테마 적용이 되지 않는 케이스가 확인되는 경우

아래의 LazyTheme를 적용해 보시길 바랍니다.

아래 예시는 네이티브 광고 기준의 예시입니다.

val nativeAdOptions = GfpNativeAdOptions.Builder()
.setHasMediaView(true)
.setTheme(LazyTheme {
when {
caseSystem -> ResolvedTheme.SYSTEM
caseDark -> ResolvedTheme.DARK
else -> ResolvedTheme.LIGHT
}
})
.build()

val adLoader = GfpAdLoader.Builder(requireActivity(), adParam)
.withNativeAd(nativeAdOptions) { nativeAd ->
inflateAd(nativeAd)
}
.build()