기본 설정

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

  • 네트워크 사용

Network 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 permission
<!-- 권한 : 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
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

- Application

  • android:configChanges 설정 - 연속된 onCreate 호출로 자원 낭비 방지 값 설정 (테스트앱 기준)

  • http 트래킹 및 이미지 로드 옵션 - android:usesCleartextTraffic=”true” 삽입

application
<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 에러 결과

Webveiw 에러
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