Skip to main content

네이티브 광고 형태 소개

  • 광고 뷰를 미디에이션 SDK가 구현해주는 타 광고 형태와 달리 네이티브 광고 형태는 구성 요소들을 전달받아 앱에서 직접 광고 뷰를 구현합니다.
  • UI/UX 기반으로 레이아웃을 직접 구현하므로써 위화감을 적게 만들 수 있다는 것이 가장 큰 특징입니다. 단, 유저가 광고가 아닌 컨텐츠로써 착각하는 경우를 방지하기 위해 광고 표시와 함께 최소한의 차별성은 부여해야합니다.
네이티브 광고 예시

광고 연동하기

  • Xml
  • Compose
1

adBinder 생성

  • native 광고를 render하는데 필요한 adBinder를 생성합니다.
  • Manual implementation(xml)
  • Use Template
val adBinder = DaroNativeAdBinder.Builder(context, ${layoutId})
  .setIconViewId(${iconViewId})
  .setBodyTextViewId(${bodyViewId})
  .setCallToActionViewId(${callToActionViewId})
  .setMediaViewGroupId(${mediaViewGroupId})
  .setTitleViewId(${titleViewId})
  .build()
2

adUnit 생성

  val adUnit = DaroNativeAdUnit(
    key = ${AdUnitId},
    placement = ${placement}, //로그 상 보여질 이름입니다. 공백을 보내도 무관합니다.
  )
3

adView 생성 및 뷰에 추가

val adView = DaroNativeAdView(
  context = context,
  adUnit = adUnit
)

binding.adViewContainer.addView(adView)
4

adView 뷰에 adBinder 설정

adView.setAdBinder(adBinder)
5

리스너 설정

adView.setListener(object : DaroAdViewListener {
  override fun onAdImpression(adInfo: DaroAdInfo) {}
  override fun onAdClicked(adInfo: DaroAdInfo) {}
  override fun onAdLoadSuccess(ad: DaroViewAd, adInfo: DaroAdInfo) {}
  override fun onAdLoadFail(err: DaroAdLoadError) {}
})
6

광고 로드

adView.loadAd()
loadAd() 호출 전에 반드시 adBinder를 설정해야 합니다.
  • 뷰를 선언하면 자체적으로 화면에 맞는 라이프사이클을 찾아 동작을 관리합니다. 따로 resume, pause, destroy를 호출하지 않아도 됩니다.
  • autoDetectLifecycle 값을 false(default: true)로 설정하는 경우, resume, pause, destroy를 직접 호출해주셔야 합니다.
DaroNativeAdView.requestPreload() 메서드를 통해서 광고 뷰를 생성하지 않고도 광고를 미리 로드할 수 있습니다.
DaroNativeAdView.requestPreload(
  this,
  DaroNativeAdUnit(
    key = ${AdUnitId},
    placement = ${placement},
  )
)
이 때, 뷰에 사용하는 DaroNativeAdUnit의 AdUnitId, placement 모두 일치해야 미리 로드한 광고를 바로 사용할 수 있습니다.

Template

  • Daro SDK에서는 다음과 같은 template을 제공합니다.
I