시작하기 전에
프로젝트에 Daro SDK를 통합하기 전에 필요한 사항들을 확인하세요.
요구사항
minSdk 26 미만일 경우 Desugaring 설정을 필요로 합니다. android {
.. .
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
.. .
}
.. .
dependencies {
.. .
coreLibraryDesugaring ( "com.android.tools:desugar_jdk_libs:2.0.4" )
.. .
}
앱 설정하기
프로젝트 단위 빌드 설정
settings.gradle 파일에 maven repository 들을 추가합니다.
dependencyResolutionManagement {
repositoriesMode. set (RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
.. .
maven { url = uri ( "https://artifact.bytedance.com/repository/pangle" ) }
maven { url = uri ( "https://verve.jfrog.io/artifactory/verve-gradle-release" ) }
maven { url = uri ( "https://cboost.jfrog.io/artifactory/chartboost-ads/" ) }
maven { url = uri ( "https://repo.premiumads.net/artifactory/mobile-ads-sdk/" ) }
maven { url = uri ( "https://repo.pubmatic.com/artifactory/public-repos" ) }
maven { url = uri ( "https://s3.amazonaws.com/smaato-sdk-releases/" ) }
maven { url = uri ( "https://android-sdk.is.com/" ) }
maven { url = uri ( "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" ) }
}
}
dependencyResolutionManagement {
repositoriesMode. set (RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
.. .
maven { url = uri ( "https://android-sdk.is.com" ) }
maven { url = uri ( "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" ) }
maven { url = uri ( "https://maven.ogury.co" ) }
maven { url = uri ( "https://artifact.bytedance.com/repository/pangle" ) }
maven { url = uri ( "https://s3.amazonaws.com/smaato-sdk-releases/" ) }
maven { url = uri ( "https://verve.jfrog.io/artifactory/verve-gradle-release" ) }
maven { url = uri ( "https://cboost.jfrog.io/artifactory/chartboost-ads/" ) }
maven { url = uri ( "https://artifacts.applovin.com/android" ) }
}
}
build.gradle(root)에 daro 플러그인 추가
build.gradle(root) 파일에 daro 관련 플러그인을 추가합니다.
buildscript {
repositories {
google ()
mavenCentral ()
}
dependencies {
classpath ( "so.daro:daro-plugin:1.0.13" )
}
}
buildscript {
repositories {
google ()
mavenCentral ()
maven { url = uri ( "https://artifacts.applovin.com/android" ) }
}
dependencies {
classpath ( "so.daro:daro-plugin:1.0.13" )
classpath ( "com.applovin.quality:AppLovinQualityServiceGradlePlugin:5.5.2" )
}
}
Daro SDK 추가
Daro SDK를 추가합니다.
Latest version
daro-a :
daro-compose-util :
dependencies {
.. .
implementation ( "so.daro:daro-a:1.4.3" )
implementation ( "so.daro:daro-compose-util:1.3.1" ) {
// daro-a 1.4.0 이상 사용시 - 중복 클래스 문제를 피하기 위해 exclude 설정 필요.
exclude (group = "so.daro" , module = "daro-core" )
}
.. .
}
Latest version
daro-m :
daro-compose-util :
dependencies {
.. .
implementation ( "so.daro:daro-core:1.3.8" )
implementation ( "so.daro:daro-m:1.3.3" )
implementation ( "so.daro:daro-compose-util:1.3.1" ) // Compose-Only
.. .
}
android-daro-key.txt 파일 추가
android-daro-key.txt 파일을 추가합니다.
app/
└── android-daro-key.txt
app/
└── src/
├── EnvA/
│ └── android-daro-key.txt
└── EnvB/
└── android-daro-key.txt
android-daro-key.txt는 DARO 대시보드에서 다운받을 수 있습니다.
daroAppKey 설정
daroAppKey 를 설정합니다.
표시 gradle.properties 에 설정하기
android.useAndroidX =true
android.enableJetifier =true
daroAppKey ={APP_KEY}
표시 app 모듈 gradle에 직접 설정하기
app 모듈 build.gradle에 아래와 같이 설정합니다. buildscript {
extra[ "daroAppKey" ] = "APP_KEY"
}
표시 gradle.properties 에 설정하기
android.useAndroidX =true
android.enableJetifier =true
daroAppKey.EnvA ={APP_KEY}
daroAppKey.EnvB ={APP_KEY}
표시 app 모듈 gradle에 직접 설정하기
app 모듈 build.gradle에 아래와 같이 설정합니다. buildscript {
extra[ "daroAppKey.EnvA" ] = "APP_KEY"
extra[ "daroAppKey.EnvB" ] = "APP_KEY"
}
Flavor 첫 글자를 반드시 대문자로 입력해주세요
daroAppKey는 DARO 대시보드에서 확인할 수 있습니다.
build.gradle(app)에 daro plugin 적용
build.gradle(app)에 daro plugin을 적용합니다.
plugins {
.. .
id ( "so.daro.a" )
.. .
}
plugins {
.. .
id ( "so.daro.m" )
.. .
}
필요시 proguard 규칙 적용하기
daro sdk에는 아래 난독화 규칙이 consumer-rules.pro에 포함되어 있으며, Gradle로 AAR을 추가하면, 앱 빌드시 자동으로 병합됩니다.
만약, 난독화 규칙을 변경하고 싶다면, 아래 내용들을 참고하여 proguard-rules.pro 파일에 적용하시길 바랍니다.
# Pangle (ByteDance)
-keep class com.bytedance.sdk.** { *; }
# Verve (PubNative)
-keepattributes Signature
-keep class net.pubnative.** { *; }
-keep class com.iab.omid.library.pubnativenet.** { *; }
# Amazon APS
-keep class com.amazon.** { *; }
-keep public class com.google.android.gms.ads.** { public *; }
-keep class com.iabtcf.** { *; }
# IronSource
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class com.ironsource.adapters.** { *; }
-dontwarn com.ironsource.**
-dontwarn com.ironsource.adapters.**
-keepclassmembers class com.ironsource.** { public *; }
-keep public class com.ironsource.**
-keep class com.ironsource.adapters.** { *; }
# IronSource - AppLovin integration
-keepclassmembers class com.applovin.sdk.AppLovinSdk { static *; }
-keep public interface com.applovin.sdk.** { *; }
-keep public interface com.applovin.adview.** { *; }
-keep public interface com.applovin.mediation.** { *; }
-keep public interface com.applovin.communicator.** { *; }
# IronSource - AndroidX
-keep class androidx.localbroadcastmanager.content.LocalBroadcastManager { *; }
-keep class androidx.recyclerview.widget.RecyclerView { *; }
-keep class androidx.recyclerview.widget.RecyclerView$OnScrollListener { *; }
# IronSource - Android
-keep class * extends android.app.Activity
# Retrofit
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
-keep,allowobfuscation,allowshrinking class retrofit2.Response
# Gson
-keepattributes Signature
-keepattributes *Annotation*
-dontwarn sun.misc.**
-keep class com.google.gson.** { *; }
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
# Kotlin Coroutines
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
Reward App의 경우 별도로 proguard를 설정하지 않아도 됩니다.
SDK 초기화하기
중요: SDK 초기화 후 광고 로드
광고를 로드하기 전에 Daro.init()를 호출하여 광고 SDK를 초기화합니다.
초기화 전 광고를 요청하면 광고가 정상적으로 표시되지 않을 수 있습니다.
class AppApplication : Application () {
override fun onCreate () {
.. .
// Daro SDK 초기화
Daro. init (
application = application,
sdkConfig = Daro.SDKConfig. Builder ()
. setDebugMode ( .. .) // (Daro 로그 노출 여부, default : false)
. setAppMuted ( .. .) // (앱 음소거 설정, default : false)
. build ()
)
}
}
앱 음소거 설정
앱 오프닝, 배너, 전면 광고, 보상형, 보상형 전면 광고 형식의 경우 setAppMuted(...) 메서드를 사용하여 앱 볼륨이 음소거되었음을 Daro SDK에 알릴 수 있습니다.
// 앱 음소거 설정
Daro. setAppMuted ( true )
// 앱 음소거 해제
Daro. setAppMuted ( false )
앱 음소거 사용 시 주의사항 앱을 음소거하면 동영상 광고 적합성이 저하되어 앱의 광고 수익이 감소할 수 있습니다. 앱이 사용자에게 맞춤 음소거 컨트롤을 제공하고 사용자의 음소거 결정이 API에 제대로 반영되는 경우에만 이 API를 활용해야 합니다.