Android SDK Guide
현재 버젼은 108 입니다.
Sample Project
Android Studio Version |
---|
Bitbucket |
git clone https://mezzomedia_adtech@bitbucket.org/mezzomediaadtech/android-studio_version.git
Eclipse Version |
---|
Bitbucket |
git clone https://mezzomedia_adtech@bitbucket.org/mezzomediaadtech/android-eclipse_version.git
Intro
광고의 구성
구분 | 샘플 | 설명 |
---|---|---|
띠 배너 | 일반적인 바(Bar) 형태의 배너입니다. 대부분 하단에 위치하지만, 퍼블리셔의 조정에 따라 상단 또는 중간에도 게재할 수 있습니다. |
|
전면 배너 | 앱 실행 시, 전면에 광고가 게시되며, 퍼블리셔의 조정에 따라 노출 영역을 조정할 수 있습니다. | |
전면동영상 배너 | 앱 실행 시, 전면동영상 광고가 게시됩니다. | |
종료(엔딩) 배너 | 앱 종료 시, 전면에 광고가 게시되며, 광고물 하단에 앱 종료 유/무 확인 Dialog를 보여줍니다. | |
동영상 | 동영상 콘텐츠 재생 전 Pre-Roll 형태로 재생되는 동영상 광고입니다. | |
전면확장 | 앱 실행 시, 전면광고가 게시되고, 남은 영역에는 좌측상단 1pixel기준의 색상이 채워집니다. |
공통 세팅
SDK 라이브러리 적용
안드로이드 개발에 필요한 환경 설정 등은 지면상 생략합니다.
개발하고자 하는 Android Project를 생성합니다.
libs폴더를 생성하여 제공된 mplus_sdk.jar를 추가합니다.
모든 context는 activity context를 사용합니다.
AndroidManifest.xml 설정
com.mapps.android.view.InterstitialView 를 Activity로 등록 합니다.
android.permission는 광고 SDK 광고 삽입을 위해 필요한 권한 설정입니다.
광고를 삽입할 해당 Activity의 속성에 android:configChanges=”orientation|keyboard”를 삽입해야 합니다.
(연속된 OnCreate 호출로 인한 네트웍 자원 낭비 방지용)
android9(API 28)부터 강화된 네트워크 보안정책으로 인해 application에 값(android:usesCleartextTraffic=”true”)을 삽입합니다.
광고 이미지url load, 트래킹요소, resource가 http 구성될 수 있으므로 해당옵션을 삽입합니다.
android8(API 27)에서 Translucent나 Floating activity를 사용하고자 할 때
android:screenOrientation=”portrait”를 activity style에 설정하면 오류가 납니다. 스타일을 버전별로 만들어서 적용하고 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mplus.sdk.sample.release " android:versionCode="1" android:versionName="1.0">
<!--광고 이미지url load, 트래킹요소, resource가 http 구성될 수 있으므로 해당옵션을 삽입(android:usesCleartextTraffic="true") -->
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true" android:usesCleartextTraffic="true">
<activity android:name=". MainActivity" android:label="@string/app_name" android:configChanges="orientation|keyboard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.mapps.android.view.InterstitialView" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" android:screenOrientation="portrait" />
</application>
<!--네트워크 사용 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--위치값 사용 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--단말기 정보( TelephonyManager의 망 사업자의 MNC, MCC ) 사용 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
</manifest>
Res/attrs.xml 파일 생성 및 설정
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<declare-styleable name="com.mapps.android.view.AdView">
<attr name="locationType" format="integer" />
<attr name="backgroundStretch" format="integer" />
<attr name="publisherCode" format="string" />
<attr name="mediaCode" format="string" />
<attr name="sectionCode" format="string" />
<attr name="mediaType" format="string" />
<attr name="storeurl" format="string" />
</declare-styleable>
<declare-styleable name="com.mapps.android.view.EndingAdView">
<attr name="pCode" format="string" />
<attr name="mCode" format="string" />
<attr name="sCode" format="string" />
<attr name="media_Type" format="string" />
<attr name="store_url" format="string" />
</declare-styleable>
</resources>
배너광고에 사용되는 resource입니다.
declare-styleable의 name을 com.mapps.android.view.AdView로 설정 합니다.
attr atribute를 설정 합니다.
이름 | 설명 |
---|---|
publisherCode | 퍼블리셔 코드로 메조미디어 사업부에서 발급 받으실 수 있습니다. |
mediaCode | 미디어 코드로 메조미디어 사업부에서 발급 받으실 수 있습니다. |
sectionCode | 섹션 코드로 메조미디어 사업부에서 발급 받으실 수 있습니다. |
backgroundStretch | 광고 영역의 Background영역을 해당 광고 색으로 모두 Paint 되는 형태입니다. |
locationType | 광고영역의 위치를 선택하는 기능입니다. |
mediaType | 광고 타입을 선택하는 기능입니다. ( 0번 : Html형 노출 형태 1번 : Image형 노출 형태 ) |
storeurl | app store url |
종료배너광고에 사용되는 resource입니다.
declare-styleable의 name을 com.mapps.android.view.EndingAdView로 설정 합니다.
attr atribute를 설정 합니다.
이름 | 설명 |
---|---|
pCode | 퍼블리셔 코드로 메조미디어 사업부에서 발급 받으실 수 있습니다. |
mCode | 미디어 코드로 메조미디어 사업부에서 발급 받으실 수 있습니다. |
sCode | 섹션 코드로 메조미디어 사업부에서 발급 받으실 수 있습니다. |
media_Type | 광고 타입을 선택하는 기능입니다. ( 0번 : Html형 노출 형태 1번 : Image형 노출 형태 ) |
store_url | app store url |
SDK guide
띠배너
Layout 에서 세팅한 방식
이름 | 설명 |
---|---|
xmlns:app | 프로젝트 해당 패키지 이름을 설정 합니다. |
android:id | 반드시 설정 하여야 하며 unique한 id값으로 설정 합니다. |
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/background_light" android:orientation="vertical">
<LinearLayout android:id="@+id/layout_gallery" android:layout_width="fill_parent" android:layout_height="50dp" android:orientation="vertical" />
<com.mapps.android.view.AdView xmlns:app="http://schemas.android.com/apk/res/com.mplus.sdk.sample.release" android:id="@+id/ad" android:layout_width="match_parent" android:layout_height="20dp" app:backgroundStretch="0" app:locationType="0" app:mediaCode="201" app:mediaType="1" app:publisherCode="101" app:sectionCode="308" />
<SurfaceView android:layout_width="0px" android:layout_height="0px" />
</RelativeLayout>
광고 삽입을 한 해당 Activity에 com.mapps.android.view를 import 합니다.
Acitivity의 OnPause,OnResume을 override 합니다.
설정한 android:id값을 근거로 AdView의 object를 얻어온 이후에 OnPause와 OnResume에 StopService와 StartService함수를 호출 합니다.
여러 개의 광고를 삽입 하였을 경우 각각의 id에 맞게 설정 하여야 합니다.
package com.mplus.sdk.sample.release;
import com.mapps.android.view.AdView;
import com.mz.common.listener.AdListener;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.LinearLayout;
public class BannerSample extends Activity implements AdListener {
private AdView m_adView = null;
private LinearLayout bLayout = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_banner);
createBannerXMLMode();
}
private void createBannerXMLMode() {
m_adView = (AdView) findViewById(R.id.ad);
m_adView.setUserAge("1");
m_adView.setUserGender("3");
m_adView.setEmail("few.com");
m_adView.setAccount("id");
m_adView.setUserAgeLevel("0");
m_adView.setStoreurl("http://store.url");
m_adView.setKeyword("");
m_adView.setExternal("");
m_adView.setLoaction(false);
m_adView.setAdListener(this);
}
@Override
protected void onResume() {
super.onResume();
if (m_adView != null)
m_adView.StartService();
}
@Override
protected void onPause() {
super.onPause();
if (m_adView != null)
m_adView.StopService();
}
@Override
protected void onDestroy() {
m_adView = null;
if (bLayout != null)
bLayout.removeAllViews();
super.onDestroy();
}
public void onInterClose(View v) {
}
public void onAdClick(View v) {
}
public void onChargeableBannerType(View v, boolean bcharge) {
Utils.onChargeableBannerType(bcharge);
}
public void onFailedToReceive(View v, int errorCode) {
// 광고 수신 성공한 경우 호출됨.수신값 0은 성공을 의미함
Utils.customErrorMsg(errorCode, new Handler() {
@Override
public void dispatchMessage(Message msg) {
String log = String.valueOf(msg.obj);
Utils.log(log);
}
});
}
}
유저의 정보를 입력 받아, 해당 목적에 맞는 데이터를 수집할 수 있습니다.(Option)
User info를 참고하십시오.
m_adView.setUserAge("1");
m_adView.setUserGender("3");
m_adView.setEmail("few.com");
m_adView.setAccount("id");
m_adView.setLoaction(false);
m_adView.setUserAgeLevel("0");
m_adView.setStoreurl("http://store.url");
m_adView.setKeyword("");
m_adView.setExternal("");
Java 에서 세팅한 방식
public class BannerSample extends Activity implements AdListener {
AdView m_adView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_banner);
String p = "100";
String m = "200";
String s = "300";
createBannerJavaCodeView(p, m, s, AdInfoKey.TYPE_HTML);
}
public void createBannerJavaCodeView(String p, String m, String s, int type) {
if (m_adView == null) {
try {
m_adView = new AdView(BannerSample.this, 0, 0, type);//context값은 activity context를 적용합니다.
m_adView.setAdViewCode(p, m, s);
m_adView.setUserAge("1");
m_adView.setUserGender("3");
m_adView.setEmail("few.com");
m_adView.setAccount("id");
m_adView.setUserAgeLevel("0");
m_adView.setStoreurl("http://store.url");
m_adView.setKeyword("");
m_adView.setExternal("");
m_adView.setLoaction(false);
m_adView.setAdListener(this); // 리스너 등록
bLayout = (LinearLayout) findViewById(R.id.layout_gallery);
bLayout.addView(m_adView);
} catch (Exception e) {
m_adView = null;
e.printStackTrace();
}
}
}
@Override
protected void onResume() {
super.onResume();
if (m_adView != null)
m_adView.StartService();
}
@Override
protected void onPause() {
super.onPause();
if (m_adView != null)
m_adView.StopService();
}
@Override
protected void onDestroy() {
m_adView = null;
if (bLayout != null) {
bLayout.removeAllViews();
}
super.onDestroy();
}
public void onChargeableBannerType(View v, boolean bcharge) {
// 수신된 광고가 무료 광고인 경우 bcharge 값이 false 임.
if (m_adView == v) {
if (bcharge) {
Log.v("ADSDK", "-------> chargeable advertise !!!");
} else {
Log.v("ADSDK", "-------> Non chargeable advertise !!");
}
}
}
public void onFailedToReceive(View v, int errorCode) {
// 광고 수신 성공한 경우 호출됨.수신값 0은 성공을 의미함
if (m_adView == v) {
Log.e("ADSDK", "-------> errorCode=" + errorCode);
final int errcode = errorCode;
handler.post(new Runnable() {
public void run() {
showErrorMsg(errcode);
}
});
}
}
private void showErrorMsg(int errorCode) {
String log;
switch (errorCode) {
case AdInfoKey.AD_SUCCESS:
log = "[ " + errorCode + " ] " + "광고 성공";
break;
case AdInfoKey.AD_ID_NO_AD:
log = "[ " + errorCode + " ] " + "광고 소진";
break;
case AdInfoKey.NETWORK_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)네트워크";
break;
case AdInfoKey.AD_SERVER_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)서버";
break;
case AdInfoKey.AD_API_TYPE_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)API 형식 오류";
break;
case AdInfoKey.AD_APP_ID_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)ID 오류";
break;
case AdInfoKey.AD_WINDOW_ID_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)ID 오류";
break;
case AdInfoKey.AD_ID_BAD:
log = "[ " + errorCode + " ] " + "(ERROR)ID 오류";
break;
case AdInfoKey.AD_CREATIVE_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)광고 생성 불가";
break;
case AdInfoKey.AD_ETC_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)예외 오류";
break;
case AdInfoKey.CREATIVE_FILE_ERROR:
log = "[ " + errorCode + " ] " + "(ERROR)파일 형식";
break;
case AdInfoKey.AD_INTERVAL:
log = "[ " + errorCode + " ] " + "광고 요청 어뷰징";
break;
case AdInfoKey.AD_TIMEOUT:
log = "[ " + errorCode + " ] " + "광고 API TIME OUT";
break;
case AdInfoKey.AD_ADCLICK:
log = "[ " + errorCode + " ] " + "광고 클릭";
break;
case AdInfoKey.AD_BACKGROUND_CALL
// 백그라운드에서 잘못된 호출
break;
default:
log = "[ " + errorCode + " ] " + "etc";
break;
}
debug(log );
}
private void debug(String msg) {
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
}
public void onInterClose(View v) {
// 전면 close
}
public void onAdClick (View v) {
//광고 클릭
}
}
Method
메서드 | 설명 |
---|---|
AdView (Context context, int backstrech, int locationType,int media_type) | 띠배너 생성자 adview를 참고하십시오. |
setAdViewCode (String publisher, String media, String section) | 발급 받은 코드 MANPLUS광고 코드를 참고하십시오. |
StartService() | 광고로직 시작 |
StopService() | 광고로직 정지 |
setAdListener(AdListener listener) | 광고상태 이벤트 |
AdView
인자 | 설명 |
---|---|
context | activity Context값을 적용합니다. |
backstretch | 광고 영역의 Background영역을 해당 광고 색으로 모두 Paint 되는 형태입니다. ( 0번 : 투명으로 처리 1번 : BackgroundStretch 되는 형태 ) |
locationType | 광고영역의 위치를 선택하는 기능입니다. ( 0번 : center 1번 : left 2번 : right ) |
media_type | 광고 타입을 선택하는 기능입니다. ( 0번 : Html형 노출 형태 1번 : Image형 노출 형태 ) |
전면배너
Java 에서 세팅한 방식
Method
메서드 | 설명 |
---|---|
setAdViewCode (String publisher, String media, String section) | 발급 받은 코드 MANPLUS광고 코드를 참고하십시오. |
setViewStyle(int viewStyle) | setViewStyle를 참고하십시오. |
ShowInterstitialView() | 전면광고를 구동하는 메서드 |
onDestroy() | 전면광고를 정지하는 메서드 |
setViewStyle
이름 | 설명 |
---|---|
VIEWSTYLE.RESIZE | 팝업형태 |
VIEWSTYLE.NONE | 전체 화면 확장형태 default값 |
종료배너
Java 에서 세팅한 방식
Method
메서드 | 설명 |
---|---|
setAdViewCode (String publisher, String media, String section) | 발급 받은 코드 MANPLUS광고 코드를 참고하십시오. |
setBannerSize(int w, int h) | 배너 영역의 사이즈 |
startEndingAdView() | 종료배너 구동 메서드 |
onDestroy() | 종료배너 정지하는 메서드 |
동영상
Java 에서 세팅한 방식
<FrameLayout android:id="@+id/layout_player" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="#000000">
<VideoView android:id="@+id/videoViewExample" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="invisible" android:layout_gravity="center" />
<com.mapps.android.main.AdVideoPlayer android:id="@+id/ad_player" android:layout_width="match_parent" android:layout_height="match_parent"/>
</FrameLayout>
플레이어를 갖고 있는 액티비티 라이프 사이클에 따라 AdVideoPlayer 클래스의 onPause,onResume등을 호출 해주시면 됩니다
본 플레이어 영상 재생은 onAdPlayerReceive 에서 실행 하시면 됩니다.
메서드
메서드 | 설명 |
---|---|
setAdViewCode (String publisher, String media, String section) | 발급 받은 코드 MANPLUS광고 코드를 참고하십시오. |
setEmail(String str) | 유저의 이메일을 설정합니다. |
setLoaction(Boolean is) | GPS를 선택 하는 기능입니다.(GPS_USE는 위치정보 사용 여부를 말하며 false으로 설정시 GPS를 사용하지 않습니다) |
setVideoMode(int mode) | ScreenMode를 참고하십시오. |
setCateContent(String cate, String content) | 카테고리 이름과 카테고리 값을 설정 |
setAdVideoPlayerErrorListner (AdVideoPlayerErrorListener listener) | VideoView의 Error Event |
showAd(); | 광고 시작 함수 |
getVideoCurrentDuration() | 광고 재생중 호출시 현재 재생시간을 리턴. 재생시간 sec = millisec /1000 |
onResume() | activity에서 resume이벤트 시 호출 |
onPause() | activity에서 onPause이벤트 시 호출 |
onBackPressed() | activity에서 onBackPressed이벤트 시 호출 |
공통 사항
User info
띠배너, 전면배너, 종료배너, 동영상배너에는 다음과 같은 공통 함수들이 있습니다.
다음 함수들은 타겟팅을 위한 정보를 서버로 전송하는 함수로써 필수사항은 아니며 필요에 따라 세팅 해주시면 됩니다.
메서드 | 설명 |
---|---|
setUserAge(String str) | 유저의 나이를 설정합니다. |
setUserGender(String str) | 유저의 성별을 설정합니다. ( 1 : 남자, 2 : 여자 ) |
setAccount(String str) | 유저의 계정을 설정합니다. |
setEmail(String str) | 유저의 이메일을 설정합니다. |
setLoaction(Boolean is) | GPS를 선택 하는 기능입니다. ( GPS_USE는 위치정보 사용 여부를 말하며 false으로 설정시 GPS를 사용하지 않습니다 ) |
setUserAgeLevel(String str) | 유저의 나이 레벨 ( 0 : 어린이(만13세 미만), 1 : 청소년/성인(만13세 이상), -1 : 알수없음 ) |
setStoreurl(String str) | store url |
setKeyword(String str) | 키워드값을 전달 구분자는 ^로 사용 keyword값은 인코딩 |
setExternal(String str) | 확장 파라미터 사용시 ( 추가적인 파라미터 사용 시 가이드 받으셔야 합니다. ) |
광고 코드
광고 삽입되는 메서드에 공통된 사항입니다.
인자 | 설명 |
---|---|
publisher | 퍼블리셔 코드 |
media | 미디어 코드 |
section | 섹션 코드 |
Screen Mode
동영상 광고 화면 모드입니다..
화면모드 | 설명 |
---|---|
AdVideoPlayer.MODE_NORMAL | 4:3화면 |
AdVideoPlayer.MODE_WIDE | 16:9 화면 |
AdVideoPlayer.MODE_STRETCH | 부모View 크기에 맞춤 |
AdVideoPlayer.MODE_ORIGNAL | 영상 실제 사이즈 |
AdListener 활용 방법
package com.mezzo.samplesdk;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import com.mapps.android.view.AdView;
import com.mapps.android.listner.AdListner;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class BannerSample extends Activity implements AdListener {
private AdView m_adlayout = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_banner);
m_adlayout= (AdView)findViewById(R.id.ad);
m_adlayout.setAdListener(this);
}
@Override
protected void onPause() {
super.onPause();
if(m_adlayout !=null)
m_adlayout.StopService();
}
@Override
protected void onResume() {
super.onResume();
if(m_adlayout !=null)
m_adlayout.StartService();
}
public void onChargeableBannerType(View v, boolean bcharge) {
/*
* (value값이 bcharge 값이 true이면 상업용 광고 false면 무료광고입니다)
*/
if(m_adlayout == v) {
if(bcharge) {
Log.v("ADSDK", "-------> chargeable advertise !!!");
} else {
Log.v("ADSDK", "-------> Non chargeable advertise !!");
}
}
}
public void onFailedToReceive(View v, int errorCode) {
if(m_adlayout == v) {
switch(errorCode) {
case AdInfoKey.AD_SUCCESS:
// 광고 성공
break;
case AdInfoKey. AD_ID_NO_AD:
// 광고 소진
break;
case AdInfoKey. NETWORK_ERROR:
// (ERROR)네트워크
break;
case AdInfoKey. AD_SERVER_ERROR:
// (ERROR)서버
break;
case AdInfoKey. AD_API_TYPE_ERROR:
// (ERROR)API 형식 오류
break;
case AdInfoKey. AD_APP_ID_ERROR:
//(ERROR)ID 오류
break;
case AdInfoKey. AD_WINDOW_ID_ERROR:
//(ERROR)ID 오류
break;
case AdInfoKey. AD_ID_BAD:
//(ERROR)ID 오류
break;
case AdInfoKey. AD_CREATIVE_ERROR:
//(ERROR)광고 생성 불가
break;
case AdInfoKey. AD_ETC_ERROR:
//(ERROR)예외 오류
break;
case AdInfoKey. CREATIVE_FILE_ERROR:
//(ERROR)파일 형식
break;
case AdInfoKey. AD_INTERVAL:
// 광고 요청 어뷰징
break;
case AdInfoKey. AD_TIMEOUT:
// 광고 API TIME OUT
break;
case AdInfoKey. AD_ADCLICK:
// 광고 클릭
break;
case AdInfoKey.AD_BACKGROUND_CALL
// 백그라운드에서 잘못된 호출
break;
default:
break;
}
}
}
public void onAdClick (boolean b) {
//광고 클릭
}
public void onInterClose (View view) {
//전면상품 닫기 이벤트
}
}
implements로 AdListner를 추가합니다.
setAdListner를 등록합니다.
AdListener 설명
메서드 | 설명 |
---|---|
onChargeableBannerType(View v, boolean bcharge) | 리스너를 등록 했을 경우 넘어오는 이벤트 이며 bcharge가 true면 상업용 광고 false면 무료 광고입니다. |
onFailedToReceive(View v, int errorCode) | 에러 발생시 발생 되는 이벤트입니다. Listener Code를 참고하십시오. |
onInterClose (View v) | 전면광고 close 이벤트 |
onAdClick(View v) | 배너 광고 click 이벤트 |
Listener Code
Code | 설명 |
---|---|
0 | 성공 |
3 | 광고 클릭 |
-100 | Network 에러 |
-200 | 광고 서버 에러 |
-300 | API 타입 오류 |
-400 | App ID 값 오류 |
-500 | Window ID 값 오류 |
-600 | 해당 ID 값이 정상적이지 않음 |
-700 | 해당 ID의 광고가 존재하지 않음 |
-800 | 예기치 못한 예외 발생 |
-900 | 해당 광고소재 오류 |
-1000 | 설정된 interval시간에 걸려서 광고 호출 제외 |
-2000 | 타임아웃 |
-3000 | 광고물예외 발생 |
-8000 | 백그라운드에서의 잘못된 호출 |
Help
Q&A
광고 노출 여부 확인
No | 설명 |
---|---|
1 | Q. SDK 적용 후 광고가 노출이 안 되는 경우 및 확인 절차 A. SDK는 XML 및 Java코드로 구현 할 수 있기 때문에 구현된 방식에 정확한 코드가 설정 되어 있는지 확인 해주시면 됩니다. |
2 | Q. 상용 물량 세팅 이후에 광고가 안 보이거나 하우스 광고만 노출 될 경우 A. 대부분의 광고 세팅 후에 광고가 노출되지 않는 현상은 코드를 잘못 설정하거나 테스트 코드로 세팅 할 경우 발생되기 때문에 설정방식을 확인 하시기 바랍니다. 이후에도 상용 물량이 안 나올 경우 문의사항 연락 주시기 바랍니다. |
No ad 처리 방법(패스백)
No | 설명 |
---|---|
1 | Q. No ad 처리 방법에 대한 문의 A. MANPLUS SDK 해당 ID의 광고가 존재하지 않거나 물량을 소진했을 경우 또는 타켓팅에 의해 시간, 앱 종류, 카테고리, 날짜에 따라서도 노출 가능한 광고의 수가 달라질 수 있습니다. 각 등록한 리스너에 광고의 NO AD같은경우 “-700”으로 콜백을 호출 해주고 있습니다. 일정 시간 후 다시 광고 요청을 하거나 콜백 받은 부분에서 이후 진행 로직을 진행해 주시면 됩니다. |
2 | Q. No ad 캠페인 세팅 후 리포트 수치가 잡히는 이유 A. No ad 캠페인 세팅을 해도 리포트 수치 발생은 정상이며, 이는 실제 노출이 아닌 인벤토리 체크를 위한 호출 수치 입니다. |
문의처
구분 | 부서 | 이름 | 이메일 | 전화번호 |
---|---|---|---|---|
제휴 문의 | 모바일 영업팀 | 김정혁 차장 | jeonghyeok.kim@cj.net | 02-6484-3856 |
ID발급 및 광고 세팅 문의 | 모바일 영업팀 | 이선민 차장 | sunmin.lee1@cj.net | 02-6484-3461 |