리워드 비디오 광고 포맷 소개
- 광고 시청을 대가로 인앱 가치를 지닌 보상(재화, 기능, 컨텐츠 등)을 제공하는 형태의 광고입니다.
- 보상을 대가로 시청하므로 동영상 광고의 스킵이 불가능하며 일반적인 길이는 30초입니다.

동작 방식

인스턴스 생성 및 콜백 설정
DaroRewardedAd 인스턴스를 생성하고 콜백을 설정합니다.
보상 콜백
onEarnedReward 콜백은 사용자가 광고를 끝까지 시청하여 보상을 획득했을 때 호출됩니다. DaroRewardItem을 통해 보상 정보를 확인할 수 있습니다.
광고 로드하기
load()를 호출하여 광고를 로드합니다.
커스텀 데이터 설정
setCustomData()를 사용하여 S2S(Server-to-Server) 보상 콜백에 포함할 커스텀 데이터를 설정할 수 있습니다. show() 호출 전에 설정해야 합니다.
광고 보여주기
isReady()로 광고 준비 여부를 확인한 후 show()로 광고를 표시합니다.
isReady()는 false를 반환합니다. 다음 광고를 표시하려면 같은 인스턴스에서 load()를 다시 호출하고 onAdLoadSuccess 콜백을 기다리세요.
iOS 광고 표시 중 상태바 숨기기
Flutter SDK 2.0.5 이상에서 사용할 수 있습니다. 상태바와 광고의 닫기 버튼이 겹치는 경우hideStatusBarDuringFullscreenAd를 활성화할 수 있습니다. 기본값은 false이며 Android에서는 시스템 UI를 변경하지 않습니다.
SystemUiMode.edgeToEdge로 복구합니다. show()의 반환은 광고 종료를 의미하지 않으므로, 호출 직후 앱에서 상태바를 복구하지 마세요.
이 옵션을 켠 iOS에서는 광고 표시 세션이 끝나기 전에 같은 인스턴스에서 load() 또는 show()를 호출하면 StateError가 발생합니다. 따라서 onAdShown에서 같은 인스턴스를 미리 로드하지 말고, onAdDismiss 또는 onAdFailedToShow 이후에 load()를 호출하세요.
앱이 평소 상태바를 숨기거나 수동 시스템 UI 설정을 사용한다면 복구할 설정을 명시하세요. Flutter는 현재 시스템 UI 설정을 조회하는 API를 제공하지 않으므로, SDK가 임의의 이전 설정을 자동으로 읽어 복구하지는 않습니다.
dispose()를 호출해도 이미 표시된 광고를 강제로 닫지 않습니다. SDK는 실제 광고 종료 또는 표시 실패 콜백을 받은 뒤 시스템 UI를 복구합니다.
SystemUiMode.manual에는 overlays 목록을 반드시 전달해야 합니다. 빈 목록은 모든 시스템 UI 오버레이를 숨기는 설정입니다.
동시에 활성화된 광고 세션이 있으면 첫 세션의 복구 설정을 사용하고, 마지막 세션 종료 후 복구합니다. 광고 표시 중 앱이 별도로 SystemChrome 설정을 변경하면 SDK의 복구 설정이 마지막에 적용될 수 있습니다.
리소스 해제
광고 사용이 끝나면dispose()를 호출하여 리소스를 해제합니다.
구현 예시
DaroRewardedAd 구현 예시입니다.
DaroRewardedAd 구현 예시입니다.

