Copy class NativeAdActivity : AppCompatActivity() {
private val vb: ActivityNativeBinding by lazy {
ActivityNativeBinding.inflate(LayoutInflater.from(this))
}
private var nativeAdLoader: NativeAdLoader? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// set layout
setContentView(vb.root)
// set 'NatvieAdLoader'
nativeAdLoader = NativeAdLoader(
context = this@NativeAdActivity,
placementId = "지면코드",
viewAdapter = makeViewAdapter(),
listener = object : NativeAdLoader.NativeListener {
override fun onLoaded(adView: View) {
// 광고 로드 성공 이벤트
vb.nativeAdViewContainer.removeAllViews()
vb.nativeAdViewContainer.addView(adView)
}
override fun onFailed(error: AdError) {
// 광고 로드 실패 이벤트
// AdError.errorCode
// AdError.errorMessage
}
override fun onImpression() {
// 광고 노출 이벤트
}
override fun onClicked() {
// 광고 클릭 이벤트
}
}
)
nativeAdLoader?.requestAd()
}
// NativeViewAdapter
private fun makeViewAdapter(): NativeViewAdapter {
val builder = NativeViewAdapter.Builder()
// biz-board
// https://avatye.gitbook.io/adcash/android/nativead/bizboard
builder.setBizBoardViewAdapter(
viewAdapter = BizBoardNativeViewAdapter.Builder(
nativeAdLayoutId = R.layout.native_ad_unit_adfit_bizboard,
nativeAdViewId = R.id.native_unit_adfit_bizboard_container
).build()
)
// admob
// https://avatye.gitbook.io/adcash/android/nativead/admob-gam
builder.setAdmobViewAdapter(
viewAdapter = AdMobNativeViewAdapter.Builder(
nativeAdLayoutId = R.layout.native_ad_unit_admob,
nativeAdViewId = R.id.native_unit_admob_container
).setBodyViewId(R.id.native_unit_admob_body)
.setMediaViewId(R.id.native_unit_admob_media)
.setAdvertiserViewId(R.id.native_unit_admob_advertiser)
.setCallToActionId(R.id.native_unit_admob_cta)
.setHeadlineViewId(R.id.native_unit_admob_headline)
.setIconViewId(R.id.native_unit_admob_icon)
.setPriceViewId(R.id.native_unit_admob_price)
.setStarRatingViewId(R.id.native_unit_admob_stars)
.setStoreViewId(R.id.native_unit_admob_store)
.build()
)
// gam
// https://avatye.gitbook.io/adcash/android/nativead/admob-gma
builder.setGAMViewAdapter(
viewAdapter = GAMNativeViewAdapter.Builder(
nativeAdLayoutId = R.layout.native_ad_unit_admob_gam,
nativeAdViewId = R.id.native_unit_admob_gam_container
).setBodyViewId(R.id.native_unit_admob_gam_body)
.setMediaViewId(R.id.native_unit_admob_gam_media)
.setAdvertiserViewId(R.id.native_unit_admob_gam_advertiser)
.setCallToActionId(R.id.native_unit_admob_gam_cta)
.setHeadlineViewId(R.id.native_unit_admob_gam_headline)
.setIconViewId(R.id.native_unit_admob_gam_icon)
.setPriceViewId(R.id.native_unit_admob_gam_price)
.setStarRatingViewId(R.id.native_unit_admob_gam_stars)
.setStoreViewId(R.id.native_unit_admob_gam_store)
.build()
)
// adpopcorn
// https://avatye.gitbook.io/adcash/android/nativead/adpopcorn
builder.setAdPopcornViewAdapter(
viewAdapter = AdPopcornNativeViewAdapter.Builder(
nativeAdLayoutId = R.layout.native_ad_unit_adpopcorn,
nativeAdViewId = R.id.native_unit_adpopcorn_container
).setDescViewId(R.id.native_unit_adpopcorn_desc)
.setCallToActionId(R.id.native_unit_adpopcorn_cta)
.setIconImageViewId(R.id.native_unit_adpopcorn_icon_image)
.setMainImageViewId(R.id.native_unit_adpopcorn_main_image)
.setTitleViewId(R.id.native_unit_adpopcorn_title)
.build()
)
// applovin-max
// https://avatye.gitbook.io/adcash/android/nativead/applovin-max
builder.setAppLovinMaxViewAdapter(
viewAdapter = AppLovinMaxNativeViewAdapter.Builder(
nativeAdLayoutId = R.layout.native_ad_unit_applovin_max,
nativeAdViewId = R.id.native_unit_applovin_container
).setBodyViewId(viewId = R.id.native_unit_applovin_body)
.setIconViewId(viewId = R.id.native_unit_applovin_icon)
.setMediaViewId(viewId = R.id.native_unit_applovin_image)
.setCtaViewId(viewId = R.id.native_unit_applovin_cta)
.setTitleViewId(viewId = R.id.native_unit_applovin_title)
.build()
)
// nam
// https://avatye.gitbook.io/adcash/android/nativead/nam
builder.setNamViewAdapter(
viewAdapter = NamNativeViewAdapter.Builder(
nativeAdLayoutId = R.layout.native_ad_unit_nam,
nativeAdViewId = R.id.native_unit_nam_container
).build()
)
// pangle
// https://avatye.gitbook.io/adcash/android/nativead/pangle
builder.setPangleViewAdapter(
viewAdapter = PangleNativeViewAdapter.Builder(
nativeAdLayoutId = R.layout.native_ad_unit_pangle,
nativeAdViewId = R.id.native_unit_pangle_container
).setIconViewId(R.id.native_unit_pangle_icon)
.setTitleViewId(R.id.native_unit_pangle_title)
.setCreativeButtonViewId(R.id.native_unit_pangle_cta)
.setDescriptionViewId(R.id.native_unit_pangle_text)
.setMediaViewId(R.id.native_unit_pangle_media)
.build()
)
return builder.build()
}
override fun onResume() {
super.onResume()
nativeAdLoader?.onResume()
}
override fun onPause() {
super.onPause()
nativeAdLoader?.onPause()
}
override fun onDestroy() {
super.onDestroy()
nativeAdLoader?.onDestroy()
}
}