NestAdsNativeCustomtAd 클래스는 미디어 스펙 ID를 파라미터로 사용하는 getText, getImage 등의 메서드를 제공합니다. NestAdsNativeCustomtAd와 함께 사용하는 전용 광고 뷰 클래스는 없습니다. 따라서 사용자 환경에 적합한 모든 레이아웃을 자유롭게 사용할 수 있습니다.
다음은 NestAdsNativeCustomtAd를 표시하는 함수의 예입니다.
동영상 미디어 스펙
소재 스펙을 만들 때 동영상을 추가할 수 있습니다.
NestAdsOnCustomAdLoadedListener를 통해 nativeCustomAd 가 들어오면 nativeCustomAd.mediaContent 를 사용하여 미디어 콘텐츠를 가져올 수 있습니다.
그런 다음 NestAdsMediaView를 생성하고, mediaContent에 그 값을 설정합니다. 응답 받은 광고에 동영상이 없는 경우엔 그에 대처하여 코드를 작성해야 합니다.
public fun displayAd (parent: ViewGroup, nativeCustomAd: NestAdsNativeCustomAd) {
val adView = layoutInflater.inflate(R.layout.ad_simple_custom, null)
// TEXT 타입의 "AdText"란 미디어 스펙 ID 가져와서 세팅
val myAdTextView = adView.findViewById<TextView>(R.id.adtext)
myAdTextView.setText(nativeCustomAd.getText("AdText"))
// IMAGE 타입의 "PreviewImage" 란 미디어 스펙 ID 가져와서 세팅
val myMainBannerView = adView.findViewById(R.id.main_image)
myMainBannerView.setImageDrawable(nativeCustomAd.getImage("PreviewImage")?.drawable)
...
}
NestAdsNativeCustomAd.OnCustomAdLoadedListener { ad ->
val mediaContent = nativeCustomAd.mediaContent
if (mediaContent != null && mediaContent.hasVideoContent()) {
val mediaView = NestAdsMediaView(this)
mediaView.mediaContent = mediaContent
val videoController = mediaContent.videoController
if (videoController != null) {
videoController.videoLifecycleCallbacks =
object : NestAdsVideoController.VideoLifecycleCallbacks() {
override fun onVideoEnd() {
super.onVideoEnd()
}
}
}
binding.customMediaPlaceholder.addView(mediaView)
} else {
// 동영상 없을시 대체 이미지
}
}
nativeCustomAd.recordImpression();
public fun displayAd (parent: ViewGroup, nativeCustomAd: NestAdsNativeCustomAd) {
...
// IMAGE 타입의 "PreviewImage" 란 미디어 스펙 ID 가져와서 세팅
val myMainBannerView = adView.findViewById(R.id.main_image)
myMainBannerView.setImageDrawable(nativeCustomAd.getImage("PreviewImage").drawable)
//Mainimage의 클릭 리스너에서 .performClick 수행
myMainBannerView.setOnClickListener {
nativeCustomAd.performClick("PreviewImage")
}
...
}