> ## Documentation Index
> Fetch the complete documentation index at: https://guide.daro.so/llms.txt
> Use this file to discover all available pages before exploring further.

# 시작하기

> Daro Android SDK를 앱에 통합하는 방법에 대해 안내합니다.

export const androidPlguinLatestVersion = '2.0.0';

export const androidDaroSdkLatestVersion = '2.0.1';

<Note>
  애드유닛은 앱에서 광고를 표시할 지면과 광고 포맷을 설정한 단위입니다. DARO 2.0.1 SDK에는 업데이트된 대시보드의 **Ad Unit Key**를 복사해 입력하세요. 앱 설정에 쓰는 Integration Key와는 다른 값입니다. API 인자 `adUnitId`, `unitId`, `key`와 예제의 `YOUR_AD_UNIT_ID`는 이름을 그대로 사용하지만, 입력할 값은 해당 애드유닛의 Ad Unit Key입니다. 기존 애드유닛 ID를 사용한 연동도 계속 지원합니다. 리포트·콜백의 식별자를 새 연동용 키와 혼동하지 마세요.
</Note>

## 시작하기 전에

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

### 요구사항

* 안드로이드 minSdkVersion : 23

<Check>
  [app-ads.txt 파일 설정(링크)](https://guide.daro.so/ko/app-ads-txt-settings)이 잘 되었는지 다시 한 번 확인해주세요.
</Check>

<Warning>
  minSdk 26 미만일 경우 Desugaring 설정을 필요로 합니다.

  <CodeGroup>
    ```kotlin kotlin {4,5,6,7,8,18} theme={null}
    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")

        ...
    }
    ```

    ```groovy groovy {4,5,6,7,8,18} theme={null}
    android {
        ...

        compileOptions {
            coreLibraryDesugaringEnabled true
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }

        ...
    }

    ...

    dependencies {
        ...

        coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'

        ...
    }
    ```
  </CodeGroup>
</Warning>

***

## 기존 버전에서 업그레이드하는 경우

먼저 [Android 마이그레이션 가이드](/ko/sdk-integration-v2/android/migration-guide)에 따라 대시보드를 업데이트하고 기존 키 파일과 앱 키 설정을 제거하세요. 그다음 아래 순서로 DARO 2.0.1 SDK를 연동하세요.

***

## 앱 설정하기

<Steps>
  <Step title="프로젝트 단위 빌드 설정">
    * 프로젝트 루트의 `settings.gradle.kts`(Kotlin DSL) 또는 `settings.gradle`(Groovy DSL)에 아래 저장소를 추가하세요.
    * 이미 `dependencyResolutionManagement` 블록이 있다면 그 안의 `repositories`에 추가하세요.

    <CodeGroup>
      ```kotlin settings.gradle.kts theme={null}
      dependencyResolutionManagement {
          repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
          repositories {
              google()
              mavenCentral()
              maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
              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://repo.pubmatic.com/artifactory/public-repos") }
              maven { url = uri("https://maven.ogury.co") }
          }
      }
      ```

      ```groovy settings.gradle theme={null}
      dependencyResolutionManagement {
          repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
          repositories {
              google()
              mavenCentral()
              maven { url 'https://artifact.bytedance.com/repository/pangle' }
              maven { url 'https://android-sdk.is.com/' }
              maven { url 'https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea' }
              maven { url 'https://repo.pubmatic.com/artifactory/public-repos' }
              maven { url 'https://maven.ogury.co' }
          }
      }
      ```
    </CodeGroup>
  </Step>

  <Step title="build.gradle(root)에 daro 플러그인 추가">
    `build.gradle(root)` 파일에 daro 플러그인을 추가합니다.

    <Info>
      Latest version

      * daro-plugin : {androidPlguinLatestVersion}
    </Info>

    <CodeGroup>
      ```kotlin kotlin theme={null}
      buildscript {
          repositories {
              google()
              mavenCentral()
              maven { url = uri("https://artifacts.applovin.com/android") }
          }
          dependencies {
              classpath("so.daro:daro-plugin:2.0.0")
          }
      }
      ```

      ```groovy groovy theme={null}
      buildscript {
          repositories {
              google()
              mavenCentral()
              maven { url 'https://artifacts.applovin.com/android' }
          }
          dependencies {
              classpath 'so.daro:daro-plugin:2.0.0'
          }
      }
      ```
    </CodeGroup>
  </Step>

  <Step title="build.gradle(app)에 daro plugin 적용">
    `build.gradle(app)`에 daro plugin을 적용합니다.

    <CodeGroup>
      ```kotlin kotlin theme={null}
      plugins {
          ...
          id("so.daro")
          ...
      }
      ```

      ```groovy groovy theme={null}
      plugins {
          ...
          id 'so.daro'
          ...
      }
      ```
    </CodeGroup>
  </Step>

  <Step title="AndroidManifest.xml에 DARO_INTEGRATION_KEY 선언">
    앱 모듈의 `src/main/AndroidManifest.xml`에서 `<application>` 안에 Integration Key를 선언합니다.

    ```xml theme={null}
    <application
        ...>

        <meta-data
            android:name="DARO_INTEGRATION_KEY"
            android:value="YOUR_INTEGRATION_KEY" />

        ...
    </application>
    ```

    <Note>
      Integration Key는 DARO 대시보드에서 앱 단위로 발급받을 수 있습니다.
    </Note>

    <Note>
      이 예제는 모든 빌드 변형에서 같은 앱을 사용하는 설정입니다. 앱 모듈의 `src/main/AndroidManifest.xml`에 해당 앱의 Integration Key를 실제 값으로 입력하세요. `DARO_INTEGRATION_KEY`를 매니페스트에 설정할 때는 `${...}` 형태의 placeholder 대신 실제 키 값을 입력하세요.
    </Note>
  </Step>

  <Step title="app-ads.txt 업데이트">
    [app-ads.txt 설정 가이드](/ko/app-ads-txt-settings)에 따라 대시보드에서 제공하는 최신 내용을 반영하세요.
  </Step>

  <Step title="DARO SDK 추가">
    DARO SDK를 추가합니다.

    <Info>
      Latest version

      * daro-sdk : {androidDaroSdkLatestVersion}
    </Info>

    <CodeGroup>
      ```kotlin kotlin theme={null}
      dependencies {
          ...
          implementation("so.daro:daro-sdk:2.0.1")
          ...
      }
      ```

      ```groovy groovy theme={null}
      dependencies {
          ...
          implementation 'so.daro:daro-sdk:2.0.1'
          ...
      }
      ```
    </CodeGroup>

    <Note>
      * `daro-sdk`는 `droom.daro.compose` 패키지의 `DaroBanner`, `DaroNative` 등 Compose 컴포넌트를 제공합니다.
      * 처음 연동하는 경우 별도의 `daro-compose-util` 의존성 없이 바로 사용할 수 있습니다. 앱에는 Compose 런타임 1.7.0 이상이 필요합니다.
      * 기존에 `so.daro:daro-compose-util`을 사용했다면 해당 의존성을 제거하고 `daro-sdk`에서 제공하는 Compose 컴포넌트를 사용하세요. 기존 import는 그대로 유지할 수 있습니다.
    </Note>
  </Step>
</Steps>

<Note>
  SDK에 포함된 난독화 규칙은 Gradle 빌드 시 자동으로 적용됩니다. 별도로 복사할 필요가 없습니다.
</Note>

## SDK 초기화하기

<Warning>
  **중요: SDK 초기화 후 광고 로드**

  * 광고를 로드하기 전에 `Daro.init()`를 호출하여 광고 SDK를 초기화합니다.
  * 초기화 전 광고를 요청하면 광고가 정상적으로 표시되지 않을 수 있습니다.
</Warning>

```kotlin theme={null}
import android.app.Application
import droom.daro.SDKConfig
import droom.daro.sdk.Daro

class AppApplication : Application() {

  override fun onCreate() {
    super.onCreate()

    // Daro SDK 초기화
    Daro.init(
      application = this,
      sdkConfig = SDKConfig.Builder()
          .setDebugMode(false) // (디버그 모드, default : false — 운영 빌드에서는 반드시 false)
          .setAppMuted(false) // (앱 음소거 설정, default : false)
          .build()
    )
  }
}
```

<Warning>
  `setDebugMode(true)`는 테스트 빌드에서만 사용하세요. 운영 빌드에서는 반드시 `false`로 설정하세요.
</Warning>

## 앱 음소거 설정

앱 오프닝, 배너, 인터스티셜 광고, 리워드 비디오 광고, 리워드 인터스티셜 광고, 네이티브 광고 포맷의 경우 `setAppMuted(...)` 메서드를 사용하여 앱 볼륨이 음소거되었음을 DARO SDK에 알릴 수 있습니다.

```kotlin theme={null}
// 앱 음소거 설정
Daro.setAppMuted(true)


// 앱 음소거 해제
Daro.setAppMuted(false)
```

<Tip>
  네이티브 광고는 로드 시점의 음소거 상태를 동영상 재생에 적용하므로, 네이티브 광고를 로드하기 전에 `setAppMuted`를 호출하세요.
</Tip>

<Warning>
  **앱 음소거 사용 시 주의사항**

  앱 음소거 설정 시 음소거 상태에서 재생이 불가한 일부 동영상 광고 소재가 요청에서 제외될 수 있어, 광고 풀이 소폭 감소하고 수익에 영향을 줄 수 있습니다.
</Warning>
