Android Adfit Bizboard 연동 가이드 Adfit Bizboard 네이티브 연동만을 사용하고자 할 경우, 아래의 순서대로 연동을 진행하시면 됩니다.
1. AdPopcornSSP / Adfit SDK 다운로드
1) SDK gradle 설치
gradle을 이용하여 SDK 설정이 가능합니다.
프로젝트 수준 build.gradle 예시 앱 수준 build.gradle 예시
Copy allprojects {
repositories {
mavenCentral()
google()
jcenter()
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
}
}
Copy dependencies {
implementation 'com.igaworks.ssp:IgawAdPopcornSSP:3.1.0'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10'
implementation 'com.kakao.adfit:ads-base:3.12.7'
}
2. 매니페스트 설정
애드팝콘 SSP를 이용하기 위한 내용을 AndroidManifest.xml
파일에 추가합니다.
1) 앱키 추가
애드팝콘 SSP 콘솔페이지에 서 앱 등록 후 발급받은 앱 키를 <application></application>
태그 안에 추가합니다.
Copy < application >
...
< meta-data android : name = "adpopcorn_ssp_app_key" android : value = "이곳에_앱키를_입력하세요" />
...
</ application >
2) 퍼미션 추가
<manifest></manifest>
태그 안에 필수 퍼미션을 추가합니다.
Copy < manifest >
...
< uses-permission android : name = "android.permission.INTERNET" />
< uses-permission android : name = "android.permission.ACCESS_NETWORK_STATE" />
...
</ manifest >
3) 안드로이드 9.0 HTTP 통신 대응
Android P 부터 일반 텍스트 트래픽(암호화 되지 않은 HTTP)은 기본적으로 차단 됩니다.
SSP에서 취급하는 광고는 기본적으로 HTTPS를 사용하고 있으나 미디에이션 광고에서는 HTTPS 사용 여부를 확신할 수 없기 때문에 AndroidManifest.xml
파일에 아래 설정을 추가 부탁 드립니다.
Copy < manifest >
< application android : networkSecurityConfig = "@xml/network_security_config" >
...
</ application >
</ manifest >
4) 네트워크 보안 구성 파일 추가
네트워크 보안 구성 기능은 res/xml/network_security_config.xml
파일에 아래 설정을 추가 부탁 드립니다.
Copy <? xml version = "1.0" encoding = "utf-8" ?>
< network-security-config > < base-config cleartextTrafficPermitted = "true" />
</ network-security-config >
3. 필수 코드 연동
1) SSP SDK 초기화
init
API를 어플리케이션 실행 후 최초로 로드되는 activity 혹은 SSP 광고를 노출하고자 하는 activity에서 호출하여 SDK를 초기화합니다.
단, init 중복 호출 시, 그 사이에 세팅된 광고가 초기화 됨으로 중복 호출을 방지하고자 할 때에는 isInitialized
API를 통해 초기화 작업이 완료된 상태인지 체크하시기 바랍니다.
Copy if ( AdPopcornSSP . isInitialized ( MyDisplayAdSampleActivity . this ){
// Already SSP SDK initialized
}
else {
AdPopcornSSP . init ( MyDisplayAdSampleActivity . this );
}
InAppBidding을 사용하는 매체의 경우 아래 init
API를 사용해, 초기화를 진행해 주어야 합니다.
그렇지 않을 경우, InAppBidding을 사용하는 placement 지면에 대한 업데이트가 이루어지지 않아, inAppBidding이 동작하지 않습니다.
Copy if ( AdPopcornSSP . isInitialized ( MyDisplayAdSampleActivity . this ){
// Already SSP SDK initialized
}
else {
AdPopcornSSP . init ( MyDisplayAdSampleActivity . this , new SdkInitListener() {
@ Override
public void onInitializationFinished () {
// init 작업이 완료 된 뒤, 광고 로드 작업을 진행해 주시기 바랍니다.
}
});
}
2) 리소스 해제
destroy
API를 이용하여 어플리케이션이 종료될 때 메모리에 할당된 SSP 관련 리소스(View,Memory)를 해제합니다.
앱이 종료될 때 호출되는 activity의 onDestroy()
에서 호출합니다.
Copy @ Override
protected void onDestroy() {
// TODO Auto-generated method stub
super . onDestroy ();
AdPopcornSSP . destroy ();
}
4. 네이티브 BizBoard 연동
1) 네이티브 XML 레이아웃(native_ad_mediation_layout.xml) 설정
AdPopcornSSPNativeAd View 안에 사용하고자 하는 Adfit Bizboard 영역을 지정한 뒤 해당 레이아웃을 원하는 화면(main layout)의 레이아웃에 포함시켜 줍니다.
Copy <? xml version = "1.0" encoding = "utf-8" ?>
< com.igaworks.ssp.part.nativead.AdPopcornSSPNativeAd
xmlns : android = "http://schemas.android.com/apk/res/android"
android : id = "@+id/adpopcorn_native_ad"
android : layout_width = "match_parent"
android : layout_height = "wrap_content" >
<!-- AdFit BizBoard -->
< com.kakao.adfit.ads.na.AdFitBizBoardAdTemplateLayout
android : id = "@+id/adFitNativeAdView"
android : layout_width = "match_parent"
android : layout_height = "wrap_content" />
</ com.igaworks.ssp.part.nativead.AdPopcornSSPNativeAd >
2) Placement ID 설정
XML로 생성한(native_ad_mediation_layout.xml) AdPopcornSSPNativeAd에 placement ID 설정
Copy @ Override
protected void onCreate( Bundle savedInstanceState) {
super . onCreate (savedInstanceState);
setContentView( R . layout . activity_main ) ;
adPopcornSSPNativeAd = (AdPopcornSSPNativeAd) findViewById( R . id . adpopcorn_native_ad ) ;
adPopcornSSPNativeAd . setPlacementId ( "8n12virz5gmkwqr" );
}
3) setAdFitViewBinder API 호출
native_ad_mediation_layout.xml
에서 생성한 Adfit Bizboard 영역 정보를 AdPopcornSSP SDK에 설정해 줍니다.
Copy @ Override
protected void onCreate( Bundle savedInstanceState) {
super . onCreate (savedInstanceState);
setContentView( R . layout . activity_main ) ;
adPopcornSSPNativeAd = (AdPopcornSSPNativeAd) findViewById( R . id . adpopcorn_native_ad ) ;
adPopcornSSPNativeAd . setPlacementId ( "8n12virz5gmkwqr" );
AdFitViewBinder adFitViewBinder = new AdFitViewBinder . Builder ( R . id . adFitNativeAdView )
. bizBoardAd ( true )
. build ();
adPopcornSSPNativeAd . setAdFitViewBinder (adFitViewBinder);
}
AdFitViewBinder Builder 생성 시, view id(R.id.adFitNativeAdView)
는 필수로 넘겨주어야 하며, bizBoardAd(true)
를 반드시 설정해야 합니다.
4) 광고 요청
loadAd
API를 통해 광고를 요청합니다.
Copy @ Override
protected void onCreate( Bundle savedInstanceState) {
super . onCreate (savedInstanceState);
setContentView( R . layout . activity_main ) ;
adPopcornSSPNativeAd = (AdPopcornSSPNativeAd) findViewById( R . id . adpopcorn_native_ad ) ;
adPopcornSSPNativeAd . setPlacementId ( "8n12virz5gmkwqr" );
AdFitViewBinder adFitViewBinder = new AdFitViewBinder . Builder ( R . id . adFitNativeAdView )
. bizBoardAd ( true )
. build ();
adPopcornSSPNativeAd . setAdFitViewBinder (adFitViewBinder);
adPopcornSSPNativeAd . loadAd ();
}
5) 광고 이벤트 리스너
네이티브 광고에서 발생하는 이벤트를 받고자 할 경우 , 이벤트 리스너를 생성하여 전달해 줍니다. 이벤트 리스너를 통해 들어오는 이벤트들을 아래와 같습니다.
Copy @ Override
protected void onCreate( Bundle savedInstanceState) {
super . onCreate (savedInstanceState);
setContentView( R . layout . activity_main ) ;
adPopcornSSPNativeAd = (AdPopcornSSPNativeAd) findViewById( R . id . adpopcorn_native_ad ) ;
adPopcornSSPNativeAd . setPlacementId ( "8n12virz5gmkwqr" );
AdFitViewBinder adFitViewBinder = new AdFitViewBinder . Builder ( R . id . adFitNativeAdView )
. bizBoardAd ( true )
. build ();
adPopcornSSPNativeAd . setAdFitViewBinder (adFitViewBinder);
adPopcornSSPNativeAd . loadAd ();
adPopcornSSPNativeAd . setNativeAdEventCallbackListener ( new INativeAdEventCallbackListener () {
@ Override
public void onNativeAdLoadSuccess () {
}
@ Override
public void onNativeAdLoadFailed ( SSPErrorCode errorCode) {
}
@ Override
public void onImpression () {
}
@ Override
public void onClicked () {
}
});
}
Adfit의 경우 onImpression, onClicked 이벤트가 지원되지 않아 발생하지 않습니다.
6) 네이티브 광고 종료
네이티브 광고 인스턴스를 더 이상 사용하지 않을 경우, destroy
API를 호출하여 줍니다.
Copy adPopcornSSPNativeAd . destroy ();
7) RecyclerView 샘플 앱
추가로 궁금하신 사항은 monetize@adpopcorn.com 으로 문의 주시기 바랍니다.
Last updated 7 months ago