메인 콘텐츠로 건너뛰기

시작하기 전에

프로젝트에 Daro SDK를 통합하기 전에 필요한 사항들을 확인하세요.

요구사항

  • 안드로이드 minSdkVersion : 23
app-ads.txt 파일 설정(링크)이 잘 되었는지 다시 한 번 확인해주세요.
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")

    ...
}

앱 설정하기

1

프로젝트 단위 빌드 설정

  1. 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") }
    }
}
2

build.gradle(root)에 daro 플러그인 추가

  1. build.gradle(root) 파일에 daro 관련 플러그인을 추가합니다.
Latest version
  • daro-plugin :
buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("so.daro:daro-plugin:1.0.13")
    }
}
3

Daro SDK 추가

  1. 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")
    }
    ...
}
4

android-daro-key.txt 파일 추가

  1. android-daro-key.txt 파일을 추가합니다.
app/
└── android-daro-key.txt
android-daro-key.txt는 DARO 대시보드에서 다운받을 수 있습니다.
5

daroAppKey 설정

  1. daroAppKey 를 설정합니다.
daroAppKey는 DARO 대시보드에서 확인할 수 있습니다.daroAppKey
6

build.gradle(app)에 daro plugin 적용

  1. build.gradle(app)에 daro plugin을 적용합니다.
plugins {
    ...
    id("so.daro.a")
    ...
}
7

필요시 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

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를 활용해야 합니다.