메인 콘텐츠로 건너뛰기

개요

스플래시 광고는 앱이 시작될 때 스플래시 화면에 표시되는 광고입니다. 앱 로고와 함께 광고가 표시되어 자연스러운 사용자 경험을 제공합니다.

특징

  • 앱 시작 시 자연스러운 광고 노출
  • 앱 로고와 함께 브랜드 이미지 유지
  • 고정 광고 크기: 360dp × 270dp (Android), 360px × 270px (iOS)
  • 이미지 광고 지원
개발 중에는 테스트 유닛 ID를 사용하세요: PUBLIC_TEST_UNIT_ID_SPLASH

캐싱 동작

스플래시 광고는 앱 실행과 동시에 즉시 노출되어야 하므로, SDK가 광고를 디바이스에 미리 캐싱하는 구조로 동작합니다. 다음 실행 시점에는 캐싱된 소재가 먼저 노출되고, 동시에 새 광고를 백그라운드로 요청하여 다음 실행에 사용할 캐시를 갱신합니다.
이 캐싱 구조 때문에, 애드컨트롤 콘솔에서 소재를 일시정지하더라도 각 사용자 디바이스의 캐시가 갱신되기 전까지는 이미 캐싱된 소재가 노출될 수 있습니다. 소재 일시정지나 교체가 사용자에게 반영되기까지 시간이 소요될 수 있다는 점을 운영 계획에 반영하세요.

구현 방법

React Native 앱의 스플래시 광고는 네이티브 플랫폼 설정을 통해 구현됩니다. 스플래시 광고는 React Native 브릿지가 완전히 초기화되기 전에 표시되므로, Android와 iOS 네이티브 레벨에서 설정해야 합니다.
React Native 앱은 JavaScript 번들이 로드되기 전에 표시되는 네이티브 스플래시 화면을 사용합니다. Adrop 스플래시 광고는 이 네이티브 스플래시 흐름과 통합됩니다.

Android 설정

1단계: strings.xml 설정

android/app/src/main/res/values/strings.xml에 다음 설정을 추가합니다.
android/app/src/main/res/values/strings.xml
테스트 시에는 YOUR_SPLASH_UNIT_ID 대신 PUBLIC_TEST_UNIT_ID_SPLASH를 사용하세요.

2단계: 스플래시 로고 이미지 추가

앱 로고를 android/app/src/main/res/drawable/ 폴더에 추가합니다.
권장 크기: 288dp × 288dp (@2x: 576px, @3x: 864px)

3단계: AndroidManifest.xml 설정

AdropSplashAdActivity를 런처 액티비티로 설정합니다.
android/app/src/main/AndroidManifest.xml
AdropSplashAdActivity에는 android:exported="true"가 필수입니다. MainActivity에서 런처 intent-filter를 제거하세요.

4단계: 스플래시 테마 설정

android/app/src/main/res/values/styles.xml에 스플래시 테마를 추가하거나 업데이트합니다.
android/app/src/main/res/values/styles.xml
androidx.core:core-splashscreen 의존성은 Adrop SDK에 포함되어 있습니다. 별도로 추가하지 않아도 됩니다.

5단계: 레이아웃 커스터마이징 (선택사항)

커스텀 레이아웃을 사용하려면 android/app/src/main/res/layout/activity_adrop_splash_ad.xml을 생성합니다.
android/app/src/main/res/layout/activity_adrop_splash_ad.xml
android:id="@+id/adrop_splash_ad_image"가 있는 ImageView는 필수입니다. 이 뷰에 광고가 표시됩니다.

6단계: 표시 시간 설정 (선택사항)

기본 표시 시간을 변경하려면 android/app/src/main/res/values/integers.xml을 생성합니다.
android/app/src/main/res/values/integers.xml

7단계: AdropSplashAd 리스너 구현 (선택사항)

스플래시 광고 이벤트를 수신하려면 Application 클래스에서 리스너를 설정합니다.
shouldSkiptrue를 반환하면 광고가 로드되지 않고 바로 메인 화면으로 이동합니다.

8단계: 앱 실행

React Native CLI로 Android 앱을 실행할 때 main activity를 지정해야 합니다:
MainActivity 대신 AdropSplashAdActivity가 런처 액티비티로 설정되어 있기 때문에 이 옵션이 필요합니다.

iOS 설정

1단계: AppDelegate 설정

ios/YourApp/AppDelegate.mm (또는 AppDelegate.swift)를 업데이트하여 스플래시 광고를 표시합니다.

2단계: SceneDelegate 설정 (iOS 13+)

SceneDelegate를 사용하는 앱의 경우 ios/YourApp/SceneDelegate.swift를 생성하거나 업데이트합니다.
ios/YourApp/SceneDelegate.swift
mainViewController를 반드시 설정해야 합니다. 스플래시 광고가 닫힌 후 SDK가 이 뷰 컨트롤러로 전환하여 React Native 앱을 표시합니다.

3단계: 로고 이미지 추가

iOS 에셋에 앱 로고를 추가합니다:
  1. Xcode를 열고 YourApp/Images.xcassets로 이동
  2. splash_logo라는 이름의 새 Image Set 추가
  3. 로고 이미지 추가 (@1x, @2x, @3x)
권장 크기: 200×200 ~ 300×300 포인트

4단계: Info.plist 설정

SceneDelegate를 사용하는 경우 Info.plist에 scene 설정이 있는지 확인합니다:
ios/YourApp/Info.plist

AdropSplashAdDelegate


모범 사례

1. 적절한 타이머 설정

더 나은 사용자 경험을 위해 합리적인 타임아웃 값을 설정합니다.
iOS에서는 스플래시 광고 표시 시간이 Adrop 콘솔의 광고 유닛 설정에서 구성됩니다.

2. 로고 이미지 최적화

로딩 시간을 최소화하기 위해 적절한 크기로 앱 로고를 준비합니다. Android:
iOS:

3. 실패 처리

광고 로딩이 실패해도 앱이 정상적으로 시작되도록 합니다.

4. 테스트/프로덕션 환경 구분


테스트

테스트 유닛 ID

개발 중에는 테스트 유닛 ID를 사용합니다.
프로덕션 릴리스에는 반드시 Adrop 콘솔에서 생성한 실제 유닛 ID를 사용하세요. 테스트 유닛 ID로는 광고 수익이 발생하지 않습니다.

문제 해결

  • AndroidManifest.xml에서 AdropSplashAdActivity가 LAUNCHER로 설정되어 있는지 확인
  • android:exported="true" 설정 확인
  • SDK 초기화가 완료되었는지 확인
  • adrop_service.jsonandroid/app/src/main/assets 폴더에 있는지 확인
  • window.rootViewController가 올바르게 설정되어 있는지 확인
  • Info.plist에 SceneDelegate가 설정되어 있는지 확인
  • SDK 초기화가 완료되었는지 확인
  • adrop_service.json이 Xcode 프로젝트에 추가되어 있는지 확인
  • 네트워크 연결 상태 확인
  • 유닛 ID가 올바른지 확인
  • 테스트 환경에서 production: false 설정 확인
  • onAdFailedToReceive의 에러 코드 확인
  • adrop_splash_ad_next_activity가 올바르게 설정되어 있는지 확인 (Android)
  • onAdClose Delegate 구현 확인 (iOS)
  • RCTBridge와 RCTRootView가 제대로 생성되었는지 확인
  • 파일 이름이 정확히 activity_adrop_splash_ad.xml인지 확인
  • @+id/adrop_splash_ad_image ID가 있는 ImageView가 있는지 확인
  • 클린 빌드 후 다시 실행

다음 단계

전면 광고

화면 전환 시 전체 화면 광고 표시

배너 광고

배너 광고 구현

네이티브 광고

커스텀 디자인 네이티브 광고

보상형 광고

사용자 보상 제공