NativeAdViewBinder viewBinder = new NativeAdViewBinder.Builder(R.layout.adpie_native_ad) // Layout ID
.setIconImageId(R.id.native_ad_icon) // Icon ID
.setTitleId(R.id.native_ad_title) // Title ID
.setDescriptionId(R.id.native_ad_description) // Description ID
.setMainId(R.id.native_ad_main) // Main ID
.setCallToActionId(R.id.native_ad_cta) // Call-To-Action ID
.setOptOutId(R.id.native_optout) // Opt-out ID
.build();
4 : 광고 요청과 표출
사이트에서 발급받은 Slot ID와 앞서 생성한 NativeAdViewBinder 객체를 인자값으로 넣어 NativeAd 객체를 생성한다.
private NativeAd nativeAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// SDK 초기화로 앱실행 1회만 호출한다. (Main Activity 에 필수로 입력한다.)
AdPieSDK.getInstance().initialize(getApplicationContext(), "AdPie-Media-ID");
...
NativeAdViewBinder viewBinder = new NativeAdViewBinder.Builder(R.layout.adpie_native_ad) // Layout ID
.setIconImageId(R.id.native_ad_icon) // Icon ID
.setTitleId(R.id.native_ad_title) // Title ID
.setDescriptionId(R.id.native_ad_description) // Description ID
.setMainId(R.id.native_ad_main) // Main ID
.setCallToActionId(R.id.native_ad_cta) // Call-To-Action ID
.setOptOutId(R.id.native_optout) // Opt-out I
.build();
// 광고 연동을 위한 슬롯 ID를 필수로 입력한다.
nativeAd = new NativeAd(this, "AdPie-Slot-ID", viewBinder);
// 광고 호출
nativeAd.loadAd();
}
5 : 광고 타겟팅
타겟팅 적용으로 보다 높은 수익을 얻을 수 있다.
형태 : 성별, 위치, 나이 또는 출생일(YYYY)
TargetingData targetingData = new TargetingData.Builder()
.setGender(TargetingData.Gender.MALE)
.setAge(30)
.setYearOfBirthday(1970)
.build();
// 광고 요청시 타겟팅 정보를 넣어준다.
nativeAd.loadAd(targetingData);
6 : 광고 리스너 사용
광고 요청에 대한 이벤트를 수신할 수 있다.
광고 성공 또는 실패 이벤트를 전혀 못받는 경우 페이지 하단의 이미지 직접 핸들링을 확인하여 적용한다.
nativeAd.setAdListener(new com.gomfactory.adpie.sdk.NativeAd.AdListener() {
@Override
public void onAdLoaded(final NativeAdView nativeAdView) {
// 광고 로딩 완료 후 이벤트 발생
// 광고 요청 후 즉시 노출하고자 할 경우 아래의 코드를 추가한다.
ViewGroup adContainer = (ViewGroup)findViewById(R.id.ad_container);
adContainer.removeAllViews();
adContainer.addView(nativeAdView);
}
@Override
public void onAdFailedToLoad(int errorCode) {
// 광고 요청 또는 표출 실패 후 이벤트 발생
// error message -> AdPieError.getMessage(errorCode)
}
@Override
public void onAdShown() {
// 광고 표출 후 이벤트 발생
}
@Override
public void onAdClicked() {
// 광고 클릭 후 이벤트 발생
}
});
7 : 이미지 직접 핸들링
SDK를 통해 이미지 다운로드를 바로 진행하는 것은 기본 설정이다.
만약 직접 핸들링하고자 한다면, Step 4에서 NativeAd 객체 생성 후 setSkipDownload(true) 를 호출한다.
setSkipDownload(true) 호출시 이미지 모듈의 우선순위는 무시되고, 이미지 다운로드를 건너뛴다.
광고 리스너를 통해 onAdLoaded() 받으면, 이미지를 직접 호출 및 설정해야 한다.
// 광고 연동을 위한 슬롯 ID를 필수로 입력한다.
nativeAd = new NativeAd(this, "AdPie-Slot-ID", viewBinder);
// SDK에서 리소스 다운로드를 하지 않기 위한 설정
nativeAd.setSkipDownload(true);
// 광고 리스너 사용
nativeAd.setAdListener(new com.gomfactory.adpie.sdk.NativeAd.AdListener() {
@Override
public void onAdLoaded(final NativeAdView nativeAdView) {
// 이미지 다운로드 및 설정이 필요
NativeAdData nativeAdData = nativeAdView.getNativeAdData();
String iconImageUrl = nativeAdData.getIconImageUrl();
ImageView iconImageView = nativeAdView.getIconImageView();
String mainImageUrl = nativeAdData.getMainImageUrl();
ImageView mainImageView = nativeAdView.getMainImageView();
}
});
// 광고 호출
nativeAd.loadAd();
네이티브 샘플
네이티브 유형
네이티브 광고 템플릿 파일인 를 참고하여 원하는 형태로 레이아웃을 구성한다.
SDK 초기화를 하지 않았다면, 에서 발급받은 Media ID를 입력하여 초기화를 해준다.