Android 네이티브 광고
1. xml 으로 네이티브 광고 레이아웃 만들기
네이티브 광고에서는 다음과 같은 view의 종류들이 포함될 수 있습니다.
아이콘
광고 게시자
헤드라인
바디
미디어
CTA 버튼
예를 들어, 소셜 피드 형식의 네이티브 광고를 구성한다면 다음과 같은 레이아웃을 만들 수 있습니다.
AdropNativeAdView - parent view
⌞ Logo (ImageView)
⌞ Name (TextView)
⌞ Media (AdropMediaView)
⌞ Headline (TextView) ⌞ Body (TextView)
제목, 내용, 소재 이미지는 컴포넌트를 제공하지만 자유롭게 사용하실 수 있도록 필드 데이터를 제공합니다.

<io.adrop.ads.nativeAd.AdropNativeAdView
android:id="@+id/adrop_native_ad_view"
...>
<LinearLayout
android:orientation="horizontal"
... >
<ImageView
android:id="@+id/ad_icon"
... />
<TextView
android:id="@+id/ad_advertiser"
... />
</LinearLayout>
<io.adrop.ads.nativeAd.AdropMediaView
android:id="@+id/ad_media"
... />
<TextView
android:id="@+id/ad_headline"
... />
<TextView
android:id="@+id/ad_body"
... />
</LinearLayout>
2. 네이티브 광고 불러오기
Ad type
Ad unit ID
Native
PUBLIC_TEST_UNIT_ID_NATIVE
val nativeAd = AdropNativeAd(context, "YOUR_UNIT_ID OR TEST_UNIT_ID")
nativeAd.listener = object: AdropNativeAdListener {
override fun onAdReceived(ad: AdropNativeAd) {
Log.d("adrop", "AdropNativeAd receive ${ad.creativeId}")
populateNativeAdView(ad)
}
override fun onAdFailedToReceive(ad: AdropNativeAd, errorCode: AdropErrorCode) {
Log.d("adrop", "AdropNativeAd failed to receive $errorCode")
}
override fun onAdClicked(ad: AdropNativeAd) {
Log.d("adrop", "AdropNativeAd clicked")
}
}
nativeAd.load()
3. 네이티브 광고 연결 후 조회하기
AdropNativeAdView 의 예시와 이것을 populate한 AdropNativeAd 의 예시를 보여드립니다.
val adView: AdropNativeAdView = findViewById(R.id.adrop_native_ad_view)
fun populateNativeAdView(ad; AdropNativeAd) {
val imageVIew = findViewById<ImageView>(R.id.ad_icon)
// set ad.profile.displayLogo into imageView
adView.setProfileLogoView(imageVIew)
val nameView = findViewById<TextView>(R.id.ad_advertiser)
nameView.text = ad.profile.displayName
adView.setProfileNameView(nameView)
val bodyView = findViewById<TextView>(R.id.ad_body)
bodyView.text = ad.body
adView.setBodyView(bodyView)
val headlineView = findViewById<TextView>(R.id.ad_headline)
headlineView.text = ad.headline
adView.setHeadlineView(headlineView)
adView.setMediaView(findViewById(R.id.ad_media))
...
// AdropNativeAdView의 setNativeAd 메소드를 호출하여 AdropNativeAd를 등록합니다.
adView.setNativeAd(ad)
...
}
4. 커스텀 필드 데이터 추가 및 자유로운 이미지 소재 사용하기

예를 들어, t1, t2, t3 라는 커스텀 필드가 추가 되었을 경우에 대해 알아보겠습니다. * 텍스트 라벨은 광고주 콘솔에 입력되는 라벨입니다.
findViewById<TextView>(R.id.t1).text = ad.extra.optString("t1")
findViewById<TextView>(R.id.t2).text = ad.extra.optString("t2")
findViewById<TextView>(R.id.t3).text = ad.extra.optString("t3")
네이티브 광고 Destroy
AdropNativeAd 노출을 종료한다면, 네이티브 광고가 garbage collection 되도록 다음과 같이 destroy해야합니다.
nativeAd.destroy()
adView.destroy()
console에서 발급받은 unitId가 한 번이라도 request 가 들어가면 성공적으로 연결됩니다.

Last updated