앱 오프닝 형태 소개
앱 오프닝 광고는 다음과 같은 시점에 사용할 수 있는 전면 광고 형식입니다:- 앱 시작 시 로딩 화면에서 광고 표시
- 앱이 백그라운드에서 포그라운드로 전환될 때 광고 표시

광고 단위 설정
대시보드에서 발급받은ad unit ID를 사용하여 광고 단위를 설정하세요.
- Swift
- Objective-C
복사
AI에게 묻기
let appOpenUnit = DaroAdUnit(unitId: "your_appopen_unit_id")
복사
AI에게 묻기
// Objective-C에서는 초기화 시 unitId를 직접 전달합니다
NSString *appOpenUnitId = @"your_appopen_unit_id";
앱 오프닝 광고 구현
- Swift
- Objective-C
복사
AI에게 묻기
class ExampleViewController: UIViewController {
private var daroAppOpenAd: DaroAppOpenAd? = nil
let daroAppOpenLoader = DaroAppOpenAdLoader(unit: appOpenUnit)
override func viewDidLoad() {
super.viewDidLoad()
setupAppOpenAd()
}
private func setupAppOpenAd() {
// 광고 클릭 리스너
daroAppOpenLoader.listener.onAdClicked = { adInfo in
print("[DARO] Listener AppOpen Ad clicked: \(adInfo)")
}
// 광고 노출 리스너
daroAppOpenLoader.listener.onAdImpression = { adInfo in
print("[DARO] Listener AppOpen Ad impression: \(adInfo)")
}
// 광고 로드 성공 리스너
daroAppOpenLoader.listener.onAdLoadSuccess = { [weak self] ad, adInfo in
print("[DARO] Listener AppOpen Ad loaded: \(ad) \(adInfo)")
self?.daroAppOpenAd = ad
// 광고 표시 성공 리스너
self?.daroAppOpenAd?.appOpenAdListener.onShown = { adInfo in
print("[DARO] Listener AppOpen Ad shown: \(adInfo)")
}
// 광고 닫힘 리스너
self?.daroAppOpenAd?.appOpenAdListener.onDismiss = { adInfo in
print("[DARO] Listener AppOpen Ad dismissed: \(adInfo)")
}
// 광고 표시 실패 리스너
self?.daroAppOpenAd?.appOpenAdListener.onFailedToShow = { adInfo, error in
print("[DARO] Listener AppOpen Ad failed to show: \(adInfo) \(error)")
}
}
// 광고 로드 실패 리스너
daroAppOpenLoader.listener.onAdLoadFail = { error in
print("[DARO] Listener AppOpen Ad failed: \(error)")
}
daroAppOpenLoader.loadAd()
}
private func showAppOpenAd() {
daroAppOpenAd?.show()
}
}
1. 헤더 파일에서 delegate 프로토콜 채택:2. 앱 오프닝 광고 설정 및 로드:3. Delegate 메서드 구현:4. 광고 표시:
복사
AI에게 묻기
@interface ExampleViewController () <DaroObjCAppOpenAdDelegate>
@property (nonatomic, strong) DaroObjCAppOpenAd *appOpenAd;
@end
복사
AI에게 묻기
- (void)setupAppOpenAd {
self.appOpenAd = [[DaroObjCAppOpenAd alloc]
initWithAdUnitId:@"your_appopen_unit_id"];
self.appOpenAd.delegate = self;
// 광고 로드
[self.appOpenAd load];
}
복사
AI에게 묻기
#pragma mark - DaroObjCAppOpenAdDelegate
- (void)appOpenAdDidLoad:(DaroObjCAppOpenAd *)ad
adInfo:(DaroObjCAdInfo *)adInfo {
NSLog(@"[DARO] App open ad loaded - Unit: %@", adInfo.adUnitId);
}
- (void)appOpenAdDidFail:(DaroObjCAppOpenAd *)ad
toLoad:(NSError *)error {
NSLog(@"[DARO] Failed to load: %@", error.localizedDescription);
}
- (void)appOpenAdDidShow:(DaroObjCAppOpenAd *)ad
adInfo:(DaroObjCAdInfo *)adInfo {
NSLog(@"[DARO] App open ad shown");
}
- (void)appOpenAdDidFail:(DaroObjCAppOpenAd *)ad
toShow:(DaroObjCAdInfo *)adInfo
error:(NSError *)error {
NSLog(@"[DARO] Failed to show: %@", error.localizedDescription);
}
- (void)appOpenAdDidClick:(DaroObjCAppOpenAd *)ad
adInfo:(DaroObjCAdInfo *)adInfo {
NSLog(@"[DARO] App open ad clicked");
}
- (void)appOpenAdDidRecordImpression:(DaroObjCAppOpenAd *)ad
adInfo:(DaroObjCAdInfo *)adInfo {
NSLog(@"[DARO] Impression recorded");
}
- (void)appOpenAdDidDismiss:(DaroObjCAppOpenAd *)ad
adInfo:(DaroObjCAdInfo *)adInfo {
NSLog(@"[DARO] App open ad dismissed");
}
복사
AI에게 묻기
- (void)showAppOpenAd {
if (self.appOpenAd.isReady) {
[self.appOpenAd show];
} else {
NSLog(@"[DARO] Ad is not ready to show");
}
}

