메인 콘텐츠로 건너뛰기
애드유닛은 앱에서 광고를 표시할 지면과 포맷을 설정한 단위입니다. 대시보드의 Ad Unit Key를 광고 API에 입력하세요. 앱 설정에 쓰는 Integration Key와는 다른 값입니다. 기존 애드유닛 ID(UUID)도 계속 입력할 수 있습니다.

시작하기 전에

2.0.0 미만의 레거시 SDK를 사용 중이라면 마이그레이션 가이드를 먼저 확인하세요.
모든 광고는 DaroFlutter.initialize()가 완료된 뒤 로드하세요. 배너와 네이티브 광고 위젯도 초기화 이후에 표시해야 합니다.

요구사항

  • Flutter 3.24.0 이상, Dart 3.5.0 이상
  • Android minSdkVersion 23, Kotlin 2.2 이상
  • iOS 13.0 이상. 사용하는 Flutter 버전의 최소 지원 버전이 더 높다면 그 요구사항을 따르세요.

패키지 설치하기

pubspec.yaml에 패키지 버전을 지정합니다.
daro_flutter 2.0.6은 Android SDK 2.0.9, iOS DaroAds 2.0.8, Android Gradle 플러그인 2.0.5를 사용합니다. 업데이트 후에는 네이티브 의존성 변경을 적용하도록 Android·iOS 앱을 다시 빌드하세요.

네이티브 설정 자동 구성

daro_flutter의 configure·doctor 명령으로 네이티브 설정을 적용하고 확인할 수 있습니다. 패키지를 설치한 뒤 앱 루트의 pubspec.yaml 옆에 daro.yaml을 작성합니다. 플랫폼별 앱의 Integration Key를 사용하고, 사용하지 않는 플랫폼은 생략하세요.
각 플랫폼의 integration_key를 지정합니다. Android SafeDK 오류가 발생하면 아래 SafeDK 빌드 오류 해결 절차를 따르세요. 앱 루트에서 다음 명령을 실행합니다.
  • configure는 Android·iOS 필수 설정을 적용합니다. SDK 업데이트나 Integration Key 변경 후 다시 실행하세요.
  • doctor는 설정을 점검합니다. 문제가 발견되면 출력된 안내에 따라 수정하세요.
  • 자동 설정은 기본 Flutter 프로젝트를 대상으로 합니다. 프로젝트 구조를 변경해 자동 설정이 지원되지 않으면 아래 수동 절차를 따르세요.
  • 기존 수동 DARO 설정과 중복되지 않도록 정리하고, 자동으로 적용된 설정은 다시 추가하지 마세요.
  • iOS 추적 권한 설명 등 앱에 필요한 권한 설정은 별도로 완료한 뒤 SDK 초기화하기로 진행하세요.
  • 앱을 빌드하고 실행하여 SDK 초기화와 광고 동작을 확인하세요.

빌드 변형별 Integration Key

Android flavor나 buildType마다 다른 DARO 앱을 사용한다면 빌드 변형마다 다른 Integration Key 사용하기에 따라 키를 설정하세요.
configure가 android/gradle.properties에 작성하는 daroIntegrationKey는 빌드 변형별 매니페스트 키보다 우선합니다. 변형마다 다른 키를 사용하려면 이 공통 속성을 제거하세요. configure를 다시 실행하면 공통 속성이 다시 작성되므로 빌드 전에 확인하세요.

SafeDK 빌드 오류 해결

Android Release 빌드에서 safedk* 또는 process…Manifest 태스크의 Configuration Cache 오류가 발생하면 daro_flutter 2.0.1 이상으로 업데이트하고 daro.yaml의 Android 항목에 다음 옵션을 추가하세요.
패키지를 업데이트한 뒤 앱 루트에서 설정을 다시 적용하고 빌드합니다.
daro_flutter 2.0.6의 configure는 Android 프로젝트에 DARO 플러그인 2.0.5를 적용하고 android/gradle.properties에 daro.safedkConfigurationCacheWorkaround=true를 반영합니다. Android 네이티브 SDK는 2.0.9를 사용합니다. 옵션에 false를 지정하면 우회를 끕니다. 옵션을 생략하면 기존 Gradle 값을 유지하므로, 이미 켠 우회를 끄려면 false를 지정하고 configure를 다시 실행하세요. 처음부터 옵션을 지정하지 않았고 기존 Gradle 값도 없다면 우회는 비활성 상태입니다. true와 false는 따옴표 없이 작성합니다. 수동으로 Android 프로젝트를 설정한 앱은 Android 시작하기의 SafeDK 오류 해결 안내를 참고해 플러그인 2.0.5와 Gradle 속성을 직접 적용하세요.

Android 프로젝트 설정하기

Android 시작하기에 따라 저장소, DARO Gradle 플러그인과 Integration Key를 설정하세요. daro_flutter가 제공하는 네이티브 SDK 의존성을 사용합니다.
  • 프로젝트 설정은 android/ 디렉토리에 적용합니다.
  • 앱 모듈에 so.daro 플러그인을 적용합니다.
  • android/app/src/main/AndroidManifest.xml의 <application>에 앱의 Integration Key를 추가합니다.
minSdkVersion이 26 미만이면 Android 시작하기의 desugaring 설정도 적용하세요.

iOS 프로젝트 설정하기

iOS 시작하기에 따라 빌드 도구를 설치하고 ios/Runner/Info.plist에 Integration Key, SKAdNetworkItems, 추적 권한 안내 문구를 설정하세요.
daro_flutter가 DaroAds 의존성을 제공하므로 동일한 SDK를 Podfile에 중복 추가하지 마세요. 기존 post_install 블록에 다음 훅을 추가하고 Flutter의 빌드 설정을 유지합니다.
post_install 블록은 하나만 사용하세요. 기존 블록에 훅을 합치고 앱에서 추가한 설정을 유지합니다. Integration Key와 훅 설정을 모두 완료해야 합니다.
flutter pub get 실행 후 ios/ 디렉토리에서 다음 명령을 실행합니다.

SDK 초기화하기

앱의 동의 수집 흐름을 완료한 뒤 아래 함수에 사용자 선택과 적용 대상 판단을 전달하세요. GDPR은 DaroGdprStatus, CCPA는 DaroCcpaStatus, COPPA는 DaroCoppaStatus를 사용하며, 옵트인을 기본값으로 가정하지 않습니다. COPPA를 포함한 설정이 완료된 다음 초기화하세요. 상태 변경 시 해당 동의 문자열도 함께 전달합니다. MyApp은 앱의 루트 위젯입니다. 앱의 진입점에서 WidgetsFlutterBinding.ensureInitialized()를 호출한 뒤 동의 수집에 필요한 플러그인을 사용하고, 결과가 준비되면 startAppWithPrivacy를 호출하세요.

앱 음소거 설정

앱의 음소거 상태를 DARO SDK에 전달하려면 DaroFlutter.setAppMuted를 호출하세요. Android와 iOS에서 사용할 수 있으며, 앱의 음소거 설정이 변경될 때마다 같은 상태를 전달하세요.
네이티브 광고는 로드 시점의 음소거 상태를 동영상 재생에 적용하므로, 네이티브 광고를 로드하기 전에 설정하세요.
음소거 상태에서 재생할 수 없는 일부 동영상 광고 소재는 요청 대상에서 제외될 수 있습니다. 이로 인해 노출 가능한 광고가 줄어들거나 광고 수익에 영향을 줄 수 있으므로, 앱에서 제공하는 음소거 옵션에 대한 사용자의 선택을 반영할 때 사용하세요.

광고 노출 확인하기

app-ads.txt 설정을 완료하고 실제 기기에서 사용하는 광고 포맷의 로드, 노출, 닫힘 및 콜백을 확인하세요.