스플래시 광고가 게재되는 스플래시 화면은 로고와 광고 유닛으로 구성됩니다.
로고가 너무 클 경우, 광고에 로고가 가려지는 경우가 발생할 수 있으니 아래의 가이드를 꼭 확인해 주세요.
1단계. AdropSplashAdViewController 를 SwiftUI에서 사용할 수 있도록 다음과 같이 SplashAdView를 만들어주세요.
import SwiftUI
import AdropAds
struct SplashAdView: UIViewRepresentable {
static let unitId = "PUBLIC_TEST_UNIT_ID_SPLASH"
fileprivate let completion: () -> Void
fileprivate let splashVC: AdropSplashAdViewController
init(completion: @escaping() -> Void) {
self.completion = completion
self.splashVC = AdropSplashAdViewController(unitId: Self.unitId)
}
func makeUIView(context: Context) -> UIView {
splashVC.backgroundColor = .white
splashVC.logoImage = UIImage(named: "splash_logo")
splashVC.displayDuration = 1 // 스플래시 광고 노출시간 입니다. 0.5~3 사이의 값을 입력하실 수 있습니다.
splashVC.delegate = context.coordinator
return splashVC.view
}
func updateUIView(_ uiView: UIViewType, context: Context) {
}
func makeCoordinator() -> SplashAdCoordinator {
SplashAdCoordinator(splashAdView: self)
}
}
class SplashAdCoordinator: NSObject, AdropSplashAdDelegate {
let splashAdView: SplashAdView
init(splashAdView: SplashAdView) {
self.splashAdView = splashAdView
}
// 스플래시 광고가 종료되었을 때, 호출되는 콜백함수 입니다.
// impressed 가 true 일 경우, 스플래시 광고가 노출되었음을 의미합니다.
func onAdClose(_ ad: AdropSplashAd, impressed: Bool) {
UIView.animate(withDuration: impressed ? 0.3 : 0) {
self.splashAdView.splashVC.view.alpha = 0
} completion: { _ in
self.splashAdView.completion()
}
}
}
위 샘플 코드에서 "splash_logo" 이미지(로고)의 사이즈는 80x80 을 권장합니다.
2단계. 앱이 기동 할 때, SplashAdView 를 보여주세요.
import SwiftUI
struct ContentView: View {
@State private var showMainView = false
var body: some View {
if showMainView {
VStack {
Image("splash_logo")
.resizable()
.scaledToFit()
.frame(width: 100, height: 100)
.cornerRadius(20)
.zIndex(2)
Text("Hello, Adrop! Yay")
}
.padding()
} else {
SplashAdView {
showMainView = true
}
.edgesIgnoringSafeArea(.all)
.zIndex(0)
}
}
}
스플래시 광고는 앱을 최초 설치하고, 첫번째 기동 시에는 노출되지 않습니다. 앱의 기동과 동시에 노출되어야 하는 스플래시 광고 특성상, 로컬 디바이스에 캐싱된 광고가 있을 경우에만 노출하고 있습니다.
콘솔에서 발급받은 unitId 로 1회 이상 광고 요청을 하면 성공적으로 연결됩니다.
연결이 성공적으로 되면, 콘솔에서 광고유닛의 상태 항목에 "SDK 연결이 필요해요" 라는 경고 문구가 사라집니다. 하단 이미지를 참고해주세요.