기본 설정
Android SDK 기본 설정을 위한 가이드 입니다.
1. 라이브러리 추가
미디에이션 진행 여부에 따라 라이브러리를 기본/미디에이션 중 선택하여 진행
- 라이브러리(기본) 다운로드
git clone https://[email protected]/mezzomediaadtech/android-v3-studio_version.git

- 라이브러리( 미디에이션 ) 다운로드
build.gradle에 아래와 같이 추가하면 mezzo android sdk 다운로드
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'io.github.mezzo-platform:mezzo-sdk:3.1.1'
}

2. Gradle 설정
- build.gradle
프로젝트 영역
allprojects {
repositories {
mavenCentral()
}
}
프로젝트 영역
dependencies {
implementation files('libs/manlibray.jar')
}
3. 매니페스트 퍼미션 설정
- Permission
네트워크 사용
<!-- 권한 : NetworkInterface 목적 : IP 주소 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 권한 : ConnectivityManager 목적 : 통신 연결이 Mobile or Wifi 여부 파악 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
단말기 정보( TelephonyManager의 망 사업자의 MNC, MCC ) 사용
<!-- 권한 : Telephony DataNetworkType Type SDK version 24 이상 목적 : Mobile network: 2G, 3G, LET, 5G 등 -->
<uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE" />
<!-- 권한 : Telephony Network Type SDK version 23 이하 목적 : Mobile network: 2G, 3G, LET, 5G 등 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
광고 ID
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
- Application
android:configChanges 설정 - 연속된 onCreate 호출로 자원 낭비 방지 값 설정 (테스트앱 기준)
http 트래킹 및 이미지 로드 옵션 - android:usesCleartextTraffic=”true” 삽입
<application
android:usesCleartextTraffic="true"...>
<activity
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"...>
<intent-filter>
<action android:name="android.intent.action.MAIN" />...
</intent-filter>
</activity>
</application>
4. 공통 코드
- 광고 설정의 데이터 구성 클래스
객체 선언
import com.mmc.man.data.AdData;
AdData adData = new AdData();
필수 값 세팅
adData.major(id, apiMode, publisher, media, section, storeUrl, appId, appName, adWidth, adHeight);
parameter
type
contents
etc
id
string
매체에서 사용할 광고 영역의 고유 id
apiMode
string
광고 타입
AdConfig.API_BANNER
AdConfig.API_INTER
AdConfig.API_ENDING
AdConfig.API_MOVIE
publisher
int
퍼블리셔 코드
media
int
미디어 코드
section
int
섹션 코드
storeUrl
string
스토어 url
appId
string
패키지명
appName
string
앱 명
adWidth
int
노출되는 광고 영역 넓이 사이즈
adHeight
int
노출되는 광고 영역 높이 사이즈
앱 사용자 나이 레벨 세팅
adData.setUserAgeLevel(0);
value
type
contents
etc
0
int
어린이 (만13세 미만)
1
int
청소년, 성인 (만13세 이상)
-1
int
알 수 없음
퍼미션 사용 여부 - 매니페스트 파일에 정의한 READ_PHONE_STATE, READ_BASIC_PHONE_STATE의 사용 여부를 코드에 세팅
adData.isPermission(AdConfig.NOT_USED);
value
type
contents
etc
AdConfig.USED
String
사용
AdConfig.NOT_USED
String
미사용
- 광고 요청
광고 요청을 위한 객체 선언
import com.mmc.man.view.AdManView;
AdManView bannerView = new AdManView(context);
import com.mmc.man.view.AdManPage;
AdManPage bannerView = new AdManPage(context);
parameter
type
contents
etc
context
Context
activity Context값 사용
광고 요청 시 세팅한 데이터 및 리스너 등록
import com.mmc.man.AdListener;
bannerView.setData(adData, new AdListener() {
//광고 호출 성공 및 광고 소진 (정상 결과값)
@Override
public void onAdSuccessCode(Object v, String id, final String type, final String status, final String jsonDataString) {
}
//광고 호출 실패 에러
@Override
public void onAdFailCode(Object v, String id, String type, String status, String jsonDataString) {
}
//광고 호출 실패 에러(웹뷰 에러)
@Override
public void onAdErrorCode(Object v, String id, String type, String status, String failingUrl) {
}
//광고에서 발생하는 이벤트
@Override
public void onAdEvent(Object v, String id, String type, String status, String jsonDataString) {
}
// 광고 퍼미션(위치) 설정 요청 이벤트 - 사용자 단말기 설정 페이지에 있는 앱 권한을 받기 위한 이벤트입니다.
@Override
public void onPermissionSetting(Object v, String id) {
}
});
parameter
type
contents
etc
id
string
매체 광고요청 시 사용된 고유id
jsonDataString
string
광고 세부 정보 (미사용)
status
string
성공여부
AdResponseCode.Status.SUCCESS // 성공
type
string
광고 타입
AdResponseCode.Type.HOUSE //무료 광고
AdResponseCode.Type.GUARANTEE //유료 광고
v
object
광고 요청 객체를 리턴
광고 실패 결과
parameter
type
contents
etc
v
object
광고 요청 객체를 리턴
id
string
매체 광고요청 시 사용된 고유id
type
string
광고 에러 타입
//전반적인 에러
AdResponseCode.Type.ERROR
//단말기 네트워크 에러
AdResponseCode.Type.DEVICE_NETWORK_ERROR
//광고 소재 랜더링 에러
AdResponseCode.Type. DEVICE_RENDERING_TIMEOUT
//필수값여부 에러
AdResponseCode.Type. DEVICE_SETTING_ERROR
//앱 백그라운드에서 호출 시 에러
AdResponseCode.Type. APP_LIFECYCLE_BACK
status
string
광고 에러 상세 코드
// 광고소진
AdResponseCode.Status.NOAD
// 네트워크 지연으로 인한 타임아웃
AdResponseCode.Status.TIMEOUT
// 잘못된 소재로 인한 파싱 에러
AdResponseCode.Status.ERROR_PARSING
// 중복 호출 에러
AdResponseCode.Status.DUPLICATIONCALL
// ssl 오류 webview error
AdResponseCode.Status.ERROR_SSL_EXFIRED
// 미지원 브라우져
AdResponseCode.Status.ERROR_NOTSUPPORT_BROWSER
// 미지원 안드로이드 버전
AdResponseCode.Status.ERROR_NOTSUPPORT_ANDROID
AdResponseCode.Status.NEEDSYNC // 요청 싱크에러
// 소재 레더링 지연 에러
AdResponseCode.Status.DEVICE_RENDERING_TIMEOUT
// 매체 광고 데이타 객체 잘못된 세팅
AdResponseCode.Status.DEVICE_SETTING_ERROR
jsonDataString
string
광고 세부 정보 (미사용)
android webview 에러 결과
onAdErrorCode(v, id, type, status, failingUrl)
parameter
type
contents
etc
v
object
광고 요청 객체를 리턴
id
string
매체 광고요청 시 사용된 고유id
type
string
ERROR_* 값에 해당하는 오류 코드입니다.
( WebViewClient 참고 ) onReceivedError error code
status
string
오류를 설명하는 문자열입니다.
( WebViewClient 참고 ) onReceivedError description code
failingUrl
string
로드에 실패한 URL입니다.
( WebViewClient 참고 ) onReceivedError failingUrl code
이벤트 코드
onAdEvent(v, id, type, status, jsonDataString)
parameter
type
contents
etc
v
object
광고 요청 객체를 리턴
id
string
매체 광고요청 시 사용된 고유id
type
string
광고 이벤트 타입
//광고 클릭 이벤트
AdEvent.Type.CLICK
//광고 닫기 이벤트
AdEvent.Type.CLOSE
//동영상 노출 이벤트 AdEvent.Type.IMP
//동영상 스킵 이벤트
AdEvent.Type.SKIP
//동영상 q1 이벤트
AdEvent.Type.START
//동영상 q2 이벤트
AdEvent.Type.FIRSTQ
//동영상 q3 이벤트
AdEvent.Type.MIDQ
//동영상 q4 이벤트
AdEvent.Type.THIRDQ
//동영상 q5 이벤트
AdEvent.Type.COMPLETE
//동영상 종료 이벤트
AdEvent.Type.ENDED
status
string
광고 에러 상세 코드 (미사용)
jsonDataString
string
광고 세부 정보 (미사용)
광고 요청 메서드(최종) - 메인 쓰레드 접근을 위한 핸들러 전달
bannerView.request(new Handler());
5. AdConfig 설명
value
type
contents
etc
AdConfig.SDK_VERSION
String
sdk version
AdConfig.SDK_RELEASEDATE
String
sdk 배포 일자
AdConfig.API_BANNER
String
apiMode 띠배너
AdConfig.API_INTER
String
apiMode 전면배너
AdConfig.API_ENDING
String
apiMode 종료배너
AdConfig.API_MOVIE
String
apiMode 영상
Last updated