> ## 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.

# 마이그레이션 가이드

> 2.0.0 미만의 레거시 Android SDK에서 DARO 2.0.1 SDK로 전환하는 순서를 안내합니다.

**1.x.x → 2.0.1으로 업데이트**

* 대시보드와 앱 설정을 먼저 전환한 뒤 SDK 의존성과 코드를 변경하세요.
* 전체 전환 순서는 [DARO 2.0 SDK 마이그레이션 가이드](/ko/new-daro-sdk/migration-guide), 지원 기간은 [2.0.0 미만의 레거시 SDK 지원 안내](/ko/new-daro-sdk/legacy-support)에서 확인할 수 있습니다.

<Warning>
  기존 애드유닛 ID는 DARO 2.0.1 SDK에서도 계속 사용할 수 있으며 다시 발급할 필요가 없습니다. 새로 연동하거나 값을 복사할 때는 업데이트된 대시보드의 Ad Unit Key를 사용하세요. 2.0.0 미만의 레거시 SDK를 사용하는 앱 버전에는 기존 애드유닛 ID를 유지하고, 새로 생성한 애드유닛의 키를 전달하지 마세요.
</Warning>

## 1. 대시보드 업데이트

* DARO 대시보드에서 전환할 앱을 확인하고 업데이트를 완료하세요.
* 해당 앱의 **Integration Key**와 Ad Unit Key를 확인하세요.

## 2. 기존 키 파일과 설정 제거

* 프로젝트의 `daro-key.txt`와 `android-daro-key.txt`를 삭제하세요.
* `gradle.properties`와 빌드 스크립트에서 기존 `daroAppKey` 설정을 제거하세요.
* 앱에서 직접 선언한 기존 `DARO_APP_KEY` 메타데이터와 수동 앱 키 설정을 제거하세요.

## 3. DARO 연동 도구 설정

* [시작하기의 앱 설정](/ko/sdk-integration-v2/android/get-started#앱-설정하기)에 따라 저장소와 DARO 플러그인을 설정하세요.
* 앱 모듈의 기존 `so.daro.a` 또는 `so.daro.m` 플러그인 ID를 `so.daro`로 교체하고, 루트 `build.gradle`의 `so.daro:daro-plugin` classpath도 해당 문서에 적힌 버전으로 올리세요.

```kotlin theme={null}
plugins {
    id("com.android.application")
    id("so.daro")
}
```

## 4. Integration Key 및 앱 설정

* 앱 모듈의 `src/main/AndroidManifest.xml`에서 `<application>` 안에 대시보드에서 복사한 Integration Key를 입력하세요.

```xml theme={null}
<meta-data
    android:name="DARO_INTEGRATION_KEY"
    android:value="YOUR_INTEGRATION_KEY" />
```

* `DARO_INTEGRATION_KEY`를 매니페스트에 설정할 때는 `${...}` 형태의 placeholder 대신 실제 키 값을 입력하세요.

## 5. app-ads.txt 업데이트

* [app-ads.txt 설정 가이드](/ko/app-ads-txt-settings)에 따라 대시보드에서 제공하는 최신 내용을 게시하세요.
* 대시보드에 등록한 웹사이트에서 파일에 접근할 수 있는지 확인하세요.

## 6. SDK 의존성과 코드 변경

* [시작하기](/ko/sdk-integration-v2/android/get-started)에 안내된 `so.daro:daro-sdk` 의존성을 추가하세요.
* 기존 `so.daro:daro-a`(Non-Reward) 또는 `so.daro:daro-m`(Reward) 의존성을 제거하세요. 두 아티팩트는 DARO 2.0.1 SDK에서 `so.daro:daro-sdk` 하나로 통합되었습니다.
* 2.0.0 미만의 레거시 SDK와 DARO 2.0.1 SDK를 함께 추가하지 마세요.

### 초기화와 import

* 초기화에 사용하는 import를 `droom.daro.sdk.Daro`로 변경하세요.
* 초기화 설정은 `droom.daro.SDKConfig`를 사용합니다.

```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.init(
            application = this,
            sdkConfig = SDKConfig.Builder()
                .setDebugMode(false)
                .setAppMuted(false)
                .build()
        )
    }
}
```

* 광고를 요청하기 전에 SDK를 초기화하세요.
* 아동 대상 설정을 사용하는 앱은 [개인정보 보호 설정](/ko/sdk-integration-v2/android/control-privacy)에 따라 `setCoppa`를 초기화 전에 호출하세요.

### 광고 포맷별 확인

* 애드유닛 생성자의 `placement` 인자를 제거하세요.
* 대시보드에서 복사한 Ad Unit Key를 `key`에 지정합니다.
* 아래 포맷 가이드에서 로드·표시·종료 처리를 함께 확인하세요.

| 광고 포맷 | 확인할 내용 |
| - | - |
| [배너 / MREC](/ko/sdk-integration-v2/android/ad-formats/banner) | `DaroBannerAdUnit(key, bannerSize)`를 사용하고, 직접 라이프사이클을 관리한다면 `resume`, `pause`, `destroy` 호출을 유지하세요. |
| [네이티브](/ko/sdk-integration-v2/android/ad-formats/native) | `DaroNativeAdUnit(key)`와 바인더 설정을 확인하세요. |
| [인터스티셜 광고](/ko/sdk-integration-v2/android/ad-formats/interstitial) | 로드 성공 후 표시하고 종료 시 `destroy()`를 호출하세요. |
| [리워드 비디오 광고](/ko/sdk-integration-v2/android/ad-formats/rewarded) | `DaroRewardedAdUnit`을 사용하고 `onEarnedReward`에서 보상을 처리하세요. |
| [앱 오프닝](/ko/sdk-integration-v2/android/ad-formats/appopen) | `droom.daro.core.appopen.DaroAppOpenAdManager`를 사용하고 `showIfAvailable(activity)`에 Activity를 전달하세요. |
| [라이트 팝업](/ko/sdk-integration-v2/android/ad-formats/lightpopup) | 로드 성공 후 표시하고 종료 시 `destroy()`를 호출하세요. |

* `so.daro:daro-compose-util`을 사용했다면 해당 의존성을 제거하세요. Compose 기능은 `daro-sdk`에 통합되어 있습니다.
* `droom.daro.compose.DaroBanner`와 `droom.daro.compose.DaroNative` 등 기존 import는 그대로 유지할 수 있습니다.
* Compose를 사용하는 앱은 Compose 런타임 1.7.0 이상을 사용하세요.
* 로드 실패 처리는 `onAdLoadFail(error: DaroError)`와 `error.errorMessage`를 사용하세요.
* 자세한 내용은 [에러 처리](/ko/sdk-integration-v2/android/error-handling)를 참고하세요.

## 배포 전 확인

* 업데이트한 앱에서 초기화와 사용 중인 모든 광고 포맷의 로드·표시·종료를 확인하세요.
* 리워드 비디오 광고의 보상 콜백과 서버 콜백을 사용한다면 함께 확인하세요.
* 2.0.0 미만의 레거시 SDK를 사용하는 배포 버전에는 기존 Ad Unit ID를 유지하세요.
