Ad Mute
Ad Mute Event
NAM SDK는 Banner, Native Simple 타입에 대해 광고 숨기기(ad mute) 기능을 제공합니다.
숨김 처리가 됐을 경우, 기존에 이벤트 콜백을 전달해주는 리스너에서 Ad Mute 이벤트를 전달해 줍니다.
- GfpBannerAdView 를 통해 배너 광고를 호출하는 경우 BannerAdListener 에 정의된 onAdMuted() 를 통해 콜백 전달
- Kotlin
- Java
bannerAdView.setAdListner(object : BannerAdListener() {
/* onAdLoaded(), onAdClicked() 등 */
override fun onAdMuted(ad: GfpBannerAd) {
/* ... */
}
})
bannerAdView.setAdListener(new BannerAdListener() {
/* onAdLoaded(), onAdClicked() 등 */
@Override
public void onAdMuted(GfpBannerAd ad) {
/* ... */
}
});
- GfpAdLoader 를 통해 배너 및 네이티브 광고를 호출하는 경우 AdEventListener 에 정의된 onAdMuted() 를 통해 콜백 전달
- Kotlin
- Java
val adLoader = GfpAdLoader.Builder(activity, adParam)
.withAdListener(object: AdEventListener() {
/* onAdClicked(), onAdImpression(), 등 */
override fun onAdMuted() {
/* ... */
}
})
.withNativeSimpleAd(nativeSimpleAdOptions) { nativeSimpleAd ->
/* ... */
}
.build()
GfpAdLoader adLoader = new GfpAdLoader.Builder(activity, adParam)
.withAdListener(new AdEventListener() {
/* onAdClicked(), onAdImpression() 등 */
@Override
public void onAdMuted() {
/* ... */
}
})
.withNativeSimpleAd(nativeSimpleAdOptions, nativeSimpleAd -> {
/* ... */
})
.build();
Dark Theme
Ad Mute 아이콘에 대해 다크모드 / 라이트모드 설정도 지원하고 있습니다.
설정 가능한 타입은 3가지로, 시스템 설정을 따라가는 SYSTEM
, 라이트 모드인 LIGHT
, 다크 모드인 DARK
를 제공하고 있습니다.
테마 설정 방식으로는 NdaProviderOptions
를 통한 전역 설정 방법과 GfpNativeSimpleAdOptions
를 통한 개별 설정 방식이 있습니다.
1. 전역 설정 방식
SdkProperties
를 통해NdaProviderOptions
를 설정
- Kotlin
- Java
GfpSdk.setSdkProperties(GfpSdk.getSdkProperties().buildUpon()
.addProviderOptions(NdaProviderOptions.Builder()
.setTheme(ResolvedTheme.SYSTEM)
.build())
.build())
GfpSdk.setSdkProperties(GfpSdk.getSdkProperties().buildUpon()
.addProviderOptions(new NdaProviderOptions.Builder()
.setTheme(ResolvedTheme.SYSTEM).build())
.build());
- 전역 설정을 할 경우 별도의 개별 설정을 하지 않은 모든 S2S 배너 광고 및 NativeSimple 광고에 일괄 적용됩니다.
- 아무런 설정을 하지 않을 경우 기본값은
LIGHT
입니다.
2. 개별 설정 방식
GfpAdLoader
를 통해 광고를 요청할 때 함께 전달하는GfpNativeSimpleAdOptions
객체를 통해 설정
- Kotlin
- Java
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()
GfpNativeSimpleAdOptions nativeSimpleAdOptions = new GfpNativeSimpleAdOptions.Builder()
.setTheme(ResolvedTheme.DARK)
.build();
GfpAdLoader adLoader = new GfpAdLoader.Builder(activity, adParam)
.withAdListener(new AdEventListener() {
/* onAdClicked(), onAdImpression() 등 */
@Override
public void onAdMuted() {
/* ... */
}
})
.withNativeSimpleAd(nativeSimpleAdOptions, nativeSimpleAd -> {
/* ... */
})
.build();
전역 설정보다 개별 설정이 우선 순위가 높습니다. 따라서 전역 설정과 개별 설정이 모두 설정된 경우에는 개별 설정된 값이 적용됩니다.
3. LazyTheme
6.1.1 버전 부터, LazyTheme를 지원합니다.
다크모드 설정과 같은 테마 설정이 동적으로 변경되는 화면에서, 테마 적용이 되지 않는 케이스가 확인되는 경우
아래의 LazyTheme를 적용해 보시길 바랍니다.
아래 예시는 네이티브 광고 기준의 예시입니다.
- Kotlin
- Java
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()
GfpNativeAdOptions nativeAdOptions = new GfpNativeAdOptions.Builder()
.setHasMediaView(true)
.setTheme(new LazyTheme(() -> {
if (caseSystem) {
return ResolvedTheme.SYSTEM;
} else if (caseDark) {
return ResolvedTheme.DARK;
} else {
return ResolvedTheme.LIGHT;
}
}))
.build();
GfpAdLoader adLoader = new GfpAdLoader.Builder(requireActivity(), adParam)
.withNativeAd(
nativeAdOptions,
nativeAd -> {
inflateAd(nativeAd);
})
.build()