통합하기
매체는 NAM의 광고유닛을 호출하여 NAM과 연동된 다양한 광고공급자로부터 광고를 공급받을 수 있습니다.
광고를 게재하고 수익을 올리려면 먼저 NAM SDK 를 앱에 통합해야 합니다.
시작하기 앞서
최신 버전의 Android Studio 사용을 권장 합니다.
Prerequisites
- Android 4.4 (API version 19) 이상
- AndroidX 대응 확인
- (만약 minSdkVersion이 21 미만이라면) 멀티덱스 사용 설정
NAM SDK 적용하기
- 앱 수준의
build.gradle
에 core 모듈 및 사용할 DSP 별 extension 모듈을 추가합니다. (필요 모듈만 추가)
- Kotlin DSL
- Groovy
dependencies {
implementation(platform("com.naver.gfpsdk:nam-bom:8.1.0"))
implementation("com.naver.gfpsdk:nam-core") // NAM SDK core (mandatory)
implementation("com.naver.gfpsdk.mediation:nam-nda") // Naver S2S extension
implementation("com.naver.gfpsdk.mediation:nam-dfp") // DFP extension
implementation("com.naver.gfpsdk.mediation:nam-fan") // FAN extension
implementation("com.naver.gfpsdk.mediation:nam-inmobi") // InMobi extension
implementation("com.naver.gfpsdk.mediation:nam-unity") // Unity extension
implementation("com.naver.gfpsdk.mediation:nam-applovin") // AppLovin(MAX) extension
implementation("com.naver.gfpsdk.mediation:nam-vungle") // Vungle extension
implementation("com.naver.gfpsdk.mediation:nam-dt") // DigitalTurbine(Fyber) extension
implementation("com.naver.gfpsdk.mediation:nam-aps") // AmazonPublisherServices(APS) extension
implementation("com.naver.gfpsdk.mediation:nam-ironsource") // IronSource extension
}
dependencies {
implementation platform('com.naver.gfpsdk:nam-bom:8.1.0')
implementation 'com.naver.gfpsdk:nam-core' // NAM SDK core (mandatory)
implementation 'com.naver.gfpsdk.mediation:nam-nda' // Naver S2S extension
implementation 'com.naver.gfpsdk.mediation:nam-dfp' // DFP extension
implementation 'com.naver.gfpsdk.mediation:nam-fan' // FAN extension
implementation 'com.naver.gfpsdk.mediation:nam-inmobi' // InMobi extension
implementation 'com.naver.gfpsdk.mediation:nam-unity' // Unity extension
implementation 'com.naver.gfpsdk.mediation:nam-applovin' // AppLovin(MAX) extension
implementation 'com.naver.gfpsdk.mediation:nam-vungle' // Vungle extension
implementation 'com.naver.gfpsdk.mediation:nam-dt' // DigitalTurbine(Fyber) extension
implementation 'com.naver.gfpsdk.mediation:nam-aps' // AmazonPublisherServices(APS) extension
implementation 'com.naver.gfpsdk.mediation:nam-ironsource' // IronSource extension
}
- NAM 플랫폼(혹은 NAM 담당자)를 통해 발급 받은 NAM
Publisher Code
를AndroidManifest.xml
파일에 설정합니다.
- 먼저
Publisher Code
의 문자열 처리를 위해string.xml
파일에 발급 받은Publisher Code
를 추가합니다.
<string name="nam_publisher_cd">YOUR_PUBLISHER_CODE</string>
Publisher Code 는 필수 값으로서 해당 값을 추가하지 않을 경우, 앱이 시작되는 시점에 크래시가 발생하게 됩니다.
AndroidManifest.xml
파일application
태그 하위에meta-data
태그를 추가합니다.
이때 name
은 com.naver.gfpsdk.PUBLISHER_CD
를 사용하고, value
는 위에 추가한 문자열 리소스 정보를 사용합니다.
<manifest>
<application>
<!-- Publisher Code 추가 (Required) -->
<meta-data
android:name="com.naver.gfpsdk.PUBLISHER_CD"
android:value="@string/nam_publisher_cd"/>
</application>
</manifest>
몇가지 확인 사항
IronSource 모듈 사용시
IronSource SDK 는 mavenCentral 이 아닌 아래의 repository를 추가해 주셔야 합니다.
- Kotlin DSL
- Java
repositories {
maven {
url = uri("https://android-sdk.is.com/")
}
}
repositories {
maven {
url "https://android-sdk.is.com/"
}
}
AppSetID
AppSetID는 동일한 기기내에서 Publisher 마다의 사용자 추적을 도와줍니다.
NAM SDK 4.4.0 이상 부터는 기본 적용되어 있으니 DFP
모듈을 사용하시거나 play-services / play-services-appset
라이브러리를 사용하고 계신다면 app-set-id 가 광고 요청 파라미터에 포함 됩 니다.
참고로 NAM SDK 는 com.google.android.gms:play-services-appset:16.0.2
로 테스트 되었습니다.
InMobi 모듈 사용시
InMobi 라이브러리에서는 내부적으로 Picasso 라이브러리를 사용하고 있습니다.
관련해서 빌드시 com.android.support
라이브러리를 사용하고 있어 AndroidX 관련 문제가 발생할 수 있습니다.
InMobi 모듈을 사용하시는 경우 gradle.properties
파일에 android.enableJetifier=true
를 설정하여 사용해 주시기 바랍니다.
Google (DFP) 모듈 사용시
구글 Ad Manager를 초기화 하기 위해 App ID가 AndroidManifest.xml
파일에 설정되어 있어야 합니다.
설정 없이 DFP 모듈을 추가하게 되면 앱 실행시 비 정상적으로 종료 됩니다.
<manifest>
<application>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
네이티브 광고의 동영상 유형을 위한 하드웨어 가속화 설정 확인
FAN 모듈 등, 동영상 소재가 포함된 네이티브 광고가 보여질 때 검은 화면이 나타날 수 있습니다.
타겟 API 수준이 14(Ice Cream Sandwich, Android 4.0.1) 이상이면 하드웨어 가속화가 기본적으로 활성화되지만
앱 수준이나 활동 수준에서 명시적으로 이 기능을 활성화할 수도 있습니다.
네트워크 보안 구성 확인
(FAN 모듈을 사용하는 경우) Meta Audience Network SDK에서는 SDK 에서 미디어 파일을 캐싱하는 캐싱 프록시로 127.0.0.1 (localhost)을 사용합니다.
Android P부터 일반 텍스트 트래픽(암호화되지 않은 HTTP)은 기본적으로 차단 되는데, 이로 인해 SDK의 미디어 캐싱 기능이 영향을 받게 되며 사용자 경험과 광고 매출도 영향을 받을 수 있습니다.