시작하기
네이티브 심플 광고는 복잡한 설정 및 추가 작업 없이 배너 광고와 유사하게 네이티브 포맷의 광고 콘텐츠를 간단하게 렌더링할 수 있는 네이티브 광고의 일종입니다.
시작하기 앞서
- 광고 호출을 위해 Ad Unit ID 가 필요합니다.
- NAM Admin 을 통해 광고 공급자 설정, Inventory 설정, 광고 유닛 등록 등의 과정을 마무리하여 주시기 바랍니다.
- 관련 내용은 NAM 관리자에게 문의 부탁드립니다.
- 광고를 오버레이로 덮는 다른 View 가 있을 경우, 경우에 따라서 노출 측정이 제대로 되지 않아 성과 지표 측정에 불이익이 있을 수 있습니다.
[Step 1] NAM SDK 적용 완료
시작하기를 참고해 주세요.
이하 내용은 NAM SDK 적용이 완료된 상태를 가정하고 진행합니다.
[Step 2] GfpNativeSimpleAdView 정의
먼저, 네이티브 심플 광고가 렌더링 될 GfpNativeSimpleAdView 를 레이아웃 XML 파일에 추가해야 합니다.
GfpNativeSimpleAdView 를 레이아웃에 추가할 때, 너비는 WRAP_CONTENT 또는 MATCH_PARENT 로, 높이는 WRAP_CONTENT 로 설정해야 가변적인 크기에 대응할 수 있습니다.
너비를 WRAP_CONTENT 로 설정하면 GfpNativeSimpleAdView 의 너비가 광고 소재 너비에 맞춰 자동으로 조정됩니다. 반면, 너비를 MATCH_PARENT 로 설정하면 소재 너비와 관계없이 MATCH_PARENT 에 맞게 너비가 설정됩니다.
<com.naver.gfpsdk.GfpNativeSimpleAdView
android:id="@+id/native_simple_ad_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
[Step 3] GfpAdLoader 빌드
네이티브 심플 광고는 GfpAdLoader 클래스를 통해 로드되며 GfpAdLoader 는 생성 과정 중에 다양한 맞춤 설정이 가능한 GfpAdLoader.Builder 클래스를 통해 생성할 수 있습니다. GfpAdLoader 를 빌드할 때 네이티브 심플 광고를 로드하겠다는 선언으로 간주되는 withNativeSimpleAd() 메서드를 설정함으로서 네이티브 심플 광고를 로드할 수 있습니다.
GfpAdLoader 를 빌드할 때는 광고 요청을 위한 필수 정보에 해당되는 Ad Unit ID 를 비롯하여, 단일 광고 요청에 대한 런타임 정보(예: 타겟팅 정보) 가 포함된 AdParam 객체를 생성 후 매개변수로 전달해야만 합니다. AdParam 에 대한 자세한 설명은 광고 요청 정보를 참고해 주시기 바랍니다.
- Kotlin
- Java
// Create a new ad parameter.
val adParam = AdParam.Builder()
.setAdUnitId("YOUR_AD_UNIT_ID")
...
.build()
// Create a new ad loader.
val adLoader = GfpAdLoader.Builder(this, adParam)
.withNativeSimpleAd { nativeAd ->
// Show the native simple ad.
}
.withAdListener(object: AdEventListener() {
...
})
.build()
// Create a new ad parameter.
AdParam adParam = new AdParam.Builder()
.setAdUnitId("YOUR_AD_UNIT_ID")
...
.build();
// Create a new ad loader.
GfpAdLoader adLoader = new GfpAdLoader.Builder(this, adParam)
.withNativeSimpleAd(new GfpNativeSimpleAd.OnNativeSimpleAdLoadedListener() {
@Override
public void onNativeSimpleAdLoaded(GfpNativeSimpleAd nativeSimpleAd) {
// Show the native simple ad.
}
})
.withAdListener(new AdEventListener() {
...
})
.build();
위 예시와 같이, withNativeSimpleAd() 메서드를 통해 네이티브 심플 광고를 수신할 수 있는 GfpAdLoader 를 생성할 수 있습니다. 네이티브 심플 광고가 성공적으로 로드되면 매개변수로 선언된 GfpNativeSimpleAd.OnNativeSimpleAdLoadedListener() 의 onNativeSimpleAdLoaded() 메서드가 호출됩니다.
[Step 4] 광고 이벤트 수신 설정
GfpAdLoader.Builder 가 제공하는 withAdListener() 메서드를 통해 광고의 생명 주기에 해당되는 다양한 이벤트들을 수신할 수 있습니다.
수신하고자 하는 이벤트들이 있을 경우, AdEventListener 가 제공하는 메서드들을 선택적으로 오버라이드해서 구현하면 됩니다.
- Kotlin
- Java
val adLoader = GfpAdLoader.Builder(this, adParam)
...
.withAdListener(object : AdEventListener() {
override fun onAdClicked(ad: GfpAd) {
// Called when an ad is clicked.
}
override fun onAdRendered(ad: GfpAd) {
// Called when an ad is rendered.
}
override fun onAdImpression(ad: GfpAd) {
// Called when an impression is recorded for an ad.
}
override fun onAdMuted(ad: GfpAd) {
// Called when an ad is muted.
}
override fun onError(ad: GfpAd?, error: GfpError?, responseInfo: GfpResponseInfo?) {
// Called when an error happened while the banner ad is
// attempting to load or rendering an ad.
}
})
.build()
GfpAdLoader adLoader = new GfpAdLoader.Builder(this, adParam)
...
.withAdListener(new AdEventListener() {
@Override
public void onAdClicked(@NonNull GfpAd ad) {
// Called when an ad is clicked.
}
@Override
public void onAdRendered(@NonNull GfpAd ad) {
// Called when an ad is rendered.
}
@Override
public void onAdImpression(@NonNull GfpAd ad) {
// Called when an impression is recorded for an ad.
}
@Override
public void onAdMuted(@NonNull GfpAd ad) {
// Called when an ad is muted.
}
@Override
public void onError(GfpAd ad, GfpError error, GfpResponseInfo responseInfo) {
// Called when an error happened while the banner ad is
// attempting to load or rendering an ad.
}
})
.build();