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 () {
}
});
}
6) 네이티브 광고 종료
네이티브 광고 인스턴스를 더 이상 사용하지 않을 경우, destroy
API를 호출하여 줍니다.
Copy adPopcornSSPNativeAd.destroy();
7) RecyclerView 샘플 앱
RecyclerView 샘플 앱
추가로 궁금하신 사항은 monetize@adpopcorn.com 으로 문의 주시기 바랍니다.
Last updated 9 months ago