메인 콘텐츠로 건너뛰기

클래스

Adrop

SDK의 메인 클래스입니다. SDK 초기화 및 전역 설정을 관리합니다.

정적 메서드

메서드반환 타입설명
initialize(production:useInAppBrowser:targetCountries:)voidSDK 초기화
setUID(_:)void사용자 식별자 설정
setTheme(_:)void앱 테마 설정
handleDeepLink(url:)Bool딥링크 처리
openQuest(channel:path:)@discardableResult BoolQuest 화면 열기
registerWebView(_:)void백필 광고를 위한 WKWebView 등록

정적 속성

속성타입설명
sdkVersionStringSDK 버전 (읽기 전용)
consentManagerAdropConsentManager?Consent 관리자 (AdropAdsBackfill 설치 시 자동 설정, 읽기/쓰기)

초기화 메서드

static func initialize(
    production: Bool = false,
    useInAppBrowser: Bool = false,
    targetCountries: [String]? = nil
)
production
Bool
기본값:"false"
프로덕션 모드. 배포 시 true로 설정
useInAppBrowser
Bool
기본값:"false"
인앱 브라우저 사용 여부. true일 경우 광고 클릭 시 앱 내에서 열림
targetCountries
[String]?
기본값:"nil"
타겟 국가 코드 배열 (예: [“KR”, “US”]). nil일 경우 모든 국가
사용 예시:
// AppDelegate.swift
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
    Adrop.initialize(production: false)
    return true
}

사용자 식별자 설정

static func setUID(_ uid: String)
uid
String
필수
사용자를 식별할 수 있는 고유 ID (최대 100자)
사용 예시:
Adrop.setUID("user_12345")

테마 설정

static func setTheme(_ theme: AdropTheme)
theme
AdropTheme
필수
앱 테마 (light, dark, auto)
사용 예시:
Adrop.setTheme(.dark)

AdropBanner

배너 광고를 표시하는 클래스입니다. UIView를 상속받습니다.

초기화

init(unitId: String, contextId: String = "")
unitId
String
필수
애드컨트롤 콘솔에서 생성한 배너 광고 유닛 ID
contextId
String
문맥 타겟팅 ID (기본값: 빈 문자열)

메서드

메서드반환 타입설명
load()void광고 요청 및 로드
open(_:useInAppBrowser:)voidURL 열기 (기본값: destinationURL)

속성

속성타입설명
unitIdString유닛 ID (읽기 전용)
contextIdString문맥 타겟팅 ID (읽기 전용, init에서 설정)
creativeSizeCGSize광고 크리에이티브 크기 (읽기 전용, 기본값 zero)
destinationURLString?광고 목적지 URL (읽기 전용)
txIdString트랜잭션 ID (읽기 전용)
campaignIdString캠페인 ID (읽기 전용)
creativeIdString크리에이티브 ID (읽기 전용)
isBackfilledBool백필 광고 여부 (읽기 전용)
useCustomClickBool커스텀 클릭 처리 사용 여부 (읽기/쓰기)
browserTargetBrowserTarget?광고 클릭 시 URL 열기 방식 (읽기 전용)
delegateAdropBannerDelegate?Delegate (읽기/쓰기)
onAdReceived((AdropBanner) -> Void)?Closure callback for ad received
onAdFailedToReceive((AdropBanner, AdropErrorCode) -> Void)?Closure callback for ad failed
onAdImpression((AdropBanner) -> Void)?Closure callback for ad impression
onAdClicked((AdropBanner) -> Void)?Closure callback for ad clicked
사용 예시:
let banner = AdropBanner(unitId: "YOUR_UNIT_ID", contextId: "article_123")
banner.delegate = self
banner.load()

AdropNativeAd

네이티브 광고 데이터를 관리하는 클래스입니다.

초기화

init(unitId: String, contextId: String = "")
unitId
String
필수
애드컨트롤 콘솔에서 생성한 네이티브 광고 유닛 ID
contextId
String
문맥 타겟팅 ID (기본값: 빈 문자열)

메서드

메서드반환 타입설명
load()void광고 요청 및 로드
open(_:useInAppBrowser:)voidURL 열기 (기본값: destinationURL)

속성

속성타입설명
unitIdString유닛 ID (읽기 전용)
contextIdString문맥 타겟팅 ID (읽기 전용, init에서 설정)
txIdString트랜잭션 ID (읽기 전용)
campaignIdString캠페인 ID (읽기 전용)
creativeIdString크리에이티브 ID (읽기 전용)
isLoadedBool광고 로드 여부 (읽기 전용)
isBackfilledBool백필 광고 여부 (읽기 전용)
headlineString광고 제목 (읽기 전용)
bodyString광고 본문 (읽기 전용)
callToActionString행동 유도 버튼 텍스트 (읽기 전용)
iconString광고 아이콘 URL (읽기 전용)
coverString광고 커버 이미지 URL (읽기 전용)
assetString메인 이미지 URL (읽기 전용)
creativeStringHTML 크리에이티브 콘텐츠 (읽기 전용)
advertiserString광고주명 (읽기 전용)
advertiserURLString광고주 URL (읽기 전용)
profileAdropNativeAdProfile광고주 프로필 (읽기 전용)
extra[String: String]추가 텍스트 필드 (읽기 전용)
accountTag[String: Any]계정 태그 데이터 (읽기 전용)
creativeTag[String: Any]크리에이티브 태그 데이터 (읽기 전용)
creativeSizeCGSize광고 크리에이티브 크기 (읽기 전용, 기본값 zero)
destinationURLString?광고 목적지 URL (읽기 전용)
useCustomClickBool커스텀 클릭 처리 사용 여부 (읽기/쓰기)
browserTargetBrowserTarget?광고 클릭 시 URL 열기 방식 (읽기 전용)
delegateAdropNativeAdDelegate?Delegate (읽기/쓰기)
onAdReceived((AdropNativeAd) -> Void)?Closure callback for ad received
onAdFailedToReceive((AdropNativeAd, AdropErrorCode) -> Void)?Closure callback for ad failed
onAdImpression((AdropNativeAd) -> Void)?Closure callback for ad impression
onAdClicked((AdropNativeAd) -> Void)?Closure callback for ad clicked
사용 예시:
let nativeAd = AdropNativeAd(unitId: "YOUR_UNIT_ID")
nativeAd.delegate = self
nativeAd.load()

// 광고 로드 후
titleLabel.text = nativeAd.headline
bodyLabel.text = nativeAd.body
ctaButton.setTitle(nativeAd.callToAction, for: .normal)

AdropInterstitialAd

전면 광고를 표시하는 클래스입니다.

초기화

init(unitId: String)
unitId
String
필수
애드컨트롤 콘솔에서 생성한 전면 광고 유닛 ID

메서드

메서드반환 타입설명
load()void광고 사전 로드
show(fromRootViewController:)void광고 표시
show 메서드
func show(fromRootViewController viewController: UIViewController)
viewController
UIViewController
필수
광고를 표시할 기준 뷰 컨트롤러

속성

속성타입설명
delegateAdropInterstitialAdDelegate?Delegate (읽기/쓰기)
isLoadedBool광고가 로드되었는지 여부 (읽기 전용)
unitIdString유닛 ID (읽기 전용)
txIdString트랜잭션 ID (읽기 전용)
campaignIdString캠페인 ID (읽기 전용)
creativeIdString크리에이티브 ID (읽기 전용)
isBackfilledBool백필 광고 여부 (읽기 전용)
destinationURLString광고 목적지 URL (읽기 전용)
browserTargetBrowserTarget?광고 클릭 시 URL 열기 방식 (읽기 전용)
onAdReceived((AdropInterstitialAd) -> Void)?Closure callback for ad received
onAdFailedToReceive((AdropInterstitialAd, AdropErrorCode) -> Void)?Closure callback for ad failed
onAdImpression((AdropInterstitialAd) -> Void)?Closure callback for ad impression
onAdClicked((AdropInterstitialAd) -> Void)?Closure callback for ad clicked
onAdWillPresentFullScreen((AdropInterstitialAd) -> Void)?Closure callback before presenting
onAdDidPresentFullScreen((AdropInterstitialAd) -> Void)?Closure callback after presenting
onAdWillDismissFullScreen((AdropInterstitialAd) -> Void)?Closure callback before dismissing
onAdDidDismissFullScreen((AdropInterstitialAd) -> Void)?Closure callback after dismissing
onAdFailedToShowFullScreen((AdropInterstitialAd, AdropErrorCode) -> Void)?Closure callback for show failure
사용 예시:
let interstitial = AdropInterstitialAd(unitId: "YOUR_UNIT_ID")
interstitial.delegate = self
interstitial.load()

// 광고가 로드된 후
if interstitial.isLoaded {
    interstitial.show(fromRootViewController: self)
}

AdropRewardedAd

보상형 광고를 표시하는 클래스입니다.

초기화

init(unitId: String)
unitId
String
필수
애드컨트롤 콘솔에서 생성한 보상형 광고 유닛 ID

메서드

메서드반환 타입설명
load()void광고 사전 로드
show(fromRootViewController:userDidEarnRewardHandler:)void광고 표시 및 리워드 핸들러 설정
show 메서드
func show(
    fromRootViewController viewController: UIViewController,
    userDidEarnRewardHandler: @escaping (_ type: Int, _ amount: Int) -> Void
)
viewController
UIViewController
필수
광고를 표시할 기준 뷰 컨트롤러
userDidEarnRewardHandler
(_ type: Int, _ amount: Int) -> Void
필수
사용자가 보상을 획득했을 때 호출될 클로저. type은 보상 유형, amount는 Ad Control 콘솔에서 설정한 보상 수량입니다.

속성

속성타입설명
delegateAdropRewardedAdDelegate?Delegate (읽기/쓰기)
isLoadedBool광고가 로드되었는지 여부 (읽기 전용)
unitIdString유닛 ID (읽기 전용)
txIdString트랜잭션 ID (읽기 전용)
campaignIdString캠페인 ID (읽기 전용)
creativeIdString크리에이티브 ID (읽기 전용)
isBackfilledBool백필 광고 여부 (읽기 전용)
destinationURLString광고 목적지 URL (읽기 전용)
browserTargetBrowserTarget?광고 클릭 시 URL 열기 방식 (읽기 전용)
serverSideVerificationOptionsAdropServerSideVerificationOptions?서버 사이드 검증 옵션 (읽기/쓰기)
onAdReceived((AdropRewardedAd) -> Void)?Closure callback for ad received
onAdFailedToReceive((AdropRewardedAd, AdropErrorCode) -> Void)?Closure callback for ad failed
onAdImpression((AdropRewardedAd) -> Void)?Closure callback for ad impression
onAdClicked((AdropRewardedAd) -> Void)?Closure callback for ad clicked
onAdWillPresentFullScreen((AdropRewardedAd) -> Void)?Closure callback before presenting
onAdDidPresentFullScreen((AdropRewardedAd) -> Void)?Closure callback after presenting
onAdWillDismissFullScreen((AdropRewardedAd) -> Void)?Closure callback before dismissing
onAdDidDismissFullScreen((AdropRewardedAd) -> Void)?Closure callback after dismissing
onAdFailedToShowFullScreen((AdropRewardedAd, AdropErrorCode) -> Void)?Closure callback for show failure
사용 예시:
let rewardedAd = AdropRewardedAd(unitId: "YOUR_UNIT_ID")
rewardedAd.delegate = self
rewardedAd.load()

// 광고가 로드된 후
if rewardedAd.isLoaded {
    rewardedAd.show(fromRootViewController: self) { type, amount in
        print("사용자가 보상을 획득했습니다! type: \(type), amount: \(amount)")
        // 보상 지급 로직
    }
}

AdropPopupAd

팝업 광고를 표시하는 클래스입니다.

초기화

init(unitId: String)
unitId
String
필수
애드컨트롤 콘솔에서 생성한 팝업 광고 유닛 ID

메서드

메서드반환 타입설명
load()void광고 사전 로드
show(fromRootViewController:)void광고 표시
close()void광고 닫기
open(_:useInAppBrowser:)voidURL 열기 (기본값: destinationURL)
show 메서드
func show(fromRootViewController viewController: UIViewController)
viewController
UIViewController
필수
광고를 표시할 기준 뷰 컨트롤러

속성

속성타입설명
delegateAdropPopupAdDelegate?광고 이벤트 Delegate (읽기/쓰기)
closeDelegateAdropPopupAdCloseDelegate?닫기 이벤트 Delegate (읽기/쓰기)
isLoadedBool광고가 로드되었는지 여부 (읽기 전용)
unitIdString유닛 ID (읽기 전용)
txIdString현재 트랜잭션 ID (읽기 전용)
txIds[String]모든 트랜잭션 ID (읽기 전용)
campaignIdString현재 캠페인 ID (읽기 전용)
campaignIds[String]모든 캠페인 ID (읽기 전용)
creativeIdString?현재 크리에이티브 ID (읽기 전용)
creativeIds[String]모든 크리에이티브 ID (읽기 전용)
destinationURLString?광고 목적지 URL (읽기 전용)
useCustomClickBool커스텀 클릭 처리 사용 여부 (읽기/쓰기)
browserTargetBrowserTarget?광고 클릭 시 URL 열기 방식 (읽기 전용)
backgroundColorUIColor?팝업 배경색 (읽기/쓰기)
hideForTodayTextColorUIColor?”오늘 하루 보지 않기” 텍스트 색상 (읽기/쓰기)
closeTextColorUIColor?닫기 버튼 텍스트 색상 (읽기/쓰기)
ctaTextColorUIColor?CTA 텍스트 색상 (읽기/쓰기)
onAdReceived((AdropPopupAd) -> Void)?Closure callback for ad received
onAdFailedToReceive((AdropPopupAd, AdropErrorCode) -> Void)?Closure callback for ad failed
onAdImpression((AdropPopupAd) -> Void)?Closure callback for ad impression
onAdClicked((AdropPopupAd) -> Void)?Closure callback for ad clicked
onAdWillPresentFullScreen((AdropPopupAd) -> Void)?Closure callback before presenting
onAdDidPresentFullScreen((AdropPopupAd) -> Void)?Closure callback after presenting
onAdWillDismissFullScreen((AdropPopupAd) -> Void)?Closure callback before dismissing
onAdDidDismissFullScreen((AdropPopupAd) -> Void)?Closure callback after dismissing
onAdFailedToShowFullScreen((AdropPopupAd, AdropErrorCode) -> Void)?Closure callback for show failure
onClosed((AdropPopupAd) -> Void)?Closure callback for close button
onDimClicked((AdropPopupAd) -> Void)?Closure callback for dim area click
onTodayOffClicked((AdropPopupAd) -> Void)?Closure callback for “Don’t show today”
사용 예시:
let popupAd = AdropPopupAd(unitId: "YOUR_UNIT_ID")
popupAd.delegate = self
popupAd.closeDelegate = self
popupAd.load()

// 광고가 로드된 후
if popupAd.isLoaded {
    popupAd.show(fromRootViewController: self)
}

AdropSplashAd

스플래시 광고를 관리하는 클래스입니다.
AdropSplashAd는 직접 인스턴스화할 수 없습니다 (이니셜라이저가 internal). 스플래시 광고를 표시하려면 AdropSplashAdViewController 또는 AdropSplashAdView를 사용하세요.

속성

속성타입설명
delegateAdropSplashAdDelegate?Delegate (읽기/쓰기)
unitIdString유닛 ID (읽기 전용)
txIdString트랜잭션 ID (읽기 전용)
campaignIdString캠페인 ID (읽기 전용)
creativeIdString크리에이티브 ID (읽기 전용)
destinationURLString광고 목적지 URL (읽기 전용)
readyToShowBool광고 표시 준비 여부 (읽기 전용)
adImageUIImage?캐시된 광고 이미지 (읽기 전용)

AdropSplashAdViewController

스플래시 광고를 전체 화면으로 표시하는 뷰 컨트롤러입니다.

초기화

init(unitId: String, adRequestTimeout: TimeInterval = 1)
unitId
String
필수
애드컨트롤 콘솔에서 생성한 스플래시 광고 유닛 ID
adRequestTimeout
TimeInterval
기본값:"1"
광고 요청 타임아웃 (초)

메서드

메서드반환 타입설명
close()void스플래시 광고를 닫고 mainViewController로 전환

속성

속성타입설명
delegateAdropSplashAdDelegate?Delegate (읽기/쓰기)
splashAdAdropSplashAd기반 스플래시 광고 객체 (읽기 전용)
displayDurationTimeInterval광고 표시 시간 (기본값: 1초, deprecated — 콘솔에서 설정)
logoImageUIImage?하단에 표시할 로고 이미지 (읽기/쓰기)
backgroundColorUIColor?배경색 (읽기/쓰기)
mainViewControllerUIViewController?스플래시 광고 종료 후 전환할 메인 뷰 컨트롤러 (읽기/쓰기)
사용 예시:
let splashVC = AdropSplashAdViewController(unitId: "YOUR_UNIT_ID")
splashVC.delegate = self
splashVC.displayDuration = 3.0  // 3초 동안 표시
splashVC.logoImage = UIImage(named: "app_logo")  // 로고 이미지 설정
splashVC.modalPresentationStyle = .fullScreen
present(splashVC, animated: false)

AdropSplashAdView

스플래시 광고를 표시하는 뷰입니다. UIImageView를 상속받습니다.

초기화

init(unitId: String, adRequestTimeout: TimeInterval = 1)
unitId
String
필수
애드컨트롤 콘솔에서 생성한 스플래시 광고 유닛 ID
adRequestTimeout
TimeInterval
기본값:"1"
광고 요청 타임아웃 (초)
광고 로드는 초기화 시 자동으로 수행됩니다. load()를 직접 호출하지 마세요.

속성

속성타입설명
delegateAdropSplashAdViewDelegate?Delegate (읽기/쓰기)
adAdropSplashAd기반 스플래시 광고 객체 (읽기 전용)
unitIdString유닛 ID (읽기 전용)
txIdString?트랜잭션 ID (읽기 전용)
creativeIdString크리에이티브 ID (읽기 전용)
isClosedBool스플래시 광고 닫힘 여부 (읽기 전용)
displayDurationTimeInterval광고 표시 시간 (deprecated — 콘솔에서 설정)

AdropMetrics

사용자 속성 및 이벤트를 관리하는 클래스입니다.

정적 속성

속성타입설명
userDataConsentBool사용자 데이터 동의 상태 (기본값: true, 읽기 전용)

정적 메서드

메서드반환 타입설명
setUserDataConsent(_:)void사용자 데이터 수집 동의 상태 설정 (true = 동의, false = 비동의). false일 경우 데이터가 로컬에 저장되지만 서버로 전송되지 않음.
setProperty(key:value:)void사용자 속성 설정
sendEvent(name:params:)void사용자 이벤트 전송
logEvent(name:params:)voidDeprecated. sendEvent를 사용하세요.

사용자 속성 설정

static func setProperty(key: String, value: Encodable?)
key
String
필수
속성 키 (최대 64자)
value
Any
필수
속성 값 (String, Int, Double, Bool 지원)
사용 예시:
AdropMetrics.setProperty(key: "age", value: 25)
AdropMetrics.setProperty(key: "gender", value: "male")
AdropMetrics.setProperty(key: "isPremium", value: true)

이벤트 전송

static func sendEvent(name: String, params: [String: Any]? = nil)
name
String
필수
이벤트 이름 (1–64자)
params
[String: Any]?
이벤트 파라미터 딕셔너리. 키는 최대 64자, 문자열 값은 최대 1024자입니다.
사용 예시:
// 단순 이벤트
AdropMetrics.sendEvent(name: "app_open")

// 파라미터가 있는 이벤트
AdropMetrics.sendEvent(name: "view_item", params: [
    "item_id": "SKU-123",
    "item_name": "Widget",
    "price": 29.99
])

// 다중 아이템 이벤트 (구매)
AdropMetrics.sendEvent(name: "purchase", params: [
    "tx_id": "tx_123",
    "currency": "KRW",
    "items": [
        ["item_id": "A", "item_name": "Product A", "price": 100, "quantity": 1],
        ["item_id": "B", "item_name": "Product B", "price": 200, "quantity": 2]
    ]
])
logEvent()는 deprecated되었으며 향후 버전에서 제거됩니다. sendEvent()를 사용하세요.
  • 이벤트 이름은 1–64자여야 합니다.
  • 동일한 이름과 파라미터를 가진 중복 이벤트는 500ms 이내 전송이 제한됩니다.
  • sendEvent()를 호출하기 전에 SDK가 초기화되어 있어야 합니다.

이벤트 로깅 (Deprecated)

@available(*, deprecated, renamed: "sendEvent(name:params:)")
static func logEvent(name: String, params: [String: Encodable]? = [:])
이 메서드는 deprecated되었습니다. sendEvent(name:params:)를 사용하세요.

프로토콜 (Delegates)

AdropBannerDelegate

배너 광고의 생명주기 이벤트를 처리하는 프로토콜입니다.

필수 메서드

func onAdReceived(_ banner: AdropBanner)
광고 수신이 성공했을 때 호출됩니다.
func onAdFailedToReceive(_ banner: AdropBanner, _ errorCode: AdropErrorCode)
광고 수신이 실패했을 때 호출됩니다.

선택 메서드

optional func onAdImpression(_ banner: AdropBanner)
광고가 화면에 노출되었을 때 호출됩니다.
optional func onAdClicked(_ banner: AdropBanner)
사용자가 광고를 클릭했을 때 호출됩니다. 구현 예시:
extension ViewController: AdropBannerDelegate {
    func onAdReceived(_ banner: AdropBanner) {
        print("배너 광고 수신")
    }

    func onAdFailedToReceive(_ banner: AdropBanner, _ errorCode: AdropErrorCode) {
        print("배너 광고 실패: \(errorCode)")
    }

    func onAdImpression(_ banner: AdropBanner) {
        print("배너 광고 노출")
    }

    func onAdClicked(_ banner: AdropBanner) {
        print("배너 광고 클릭")
    }
}

AdropNativeAdDelegate

네이티브 광고의 생명주기 이벤트를 처리하는 프로토콜입니다.

필수 메서드

func onAdReceived(_ ad: AdropNativeAd)
광고 수신이 성공했을 때 호출됩니다.
func onAdFailedToReceive(_ ad: AdropNativeAd, _ errorCode: AdropErrorCode)
광고 수신이 실패했을 때 호출됩니다.

선택 메서드

optional func onAdImpression(_ ad: AdropNativeAd)
광고가 화면에 노출되었을 때 호출됩니다.
optional func onAdClicked(_ ad: AdropNativeAd)
사용자가 광고를 클릭했을 때 호출됩니다.

AdropInterstitialAdDelegate

전면 광고의 생명주기 이벤트를 처리하는 프로토콜입니다.

필수 메서드

func onAdReceived(_ ad: AdropInterstitialAd)
광고 수신이 성공했을 때 호출됩니다.
func onAdFailedToReceive(_ ad: AdropInterstitialAd, _ errorCode: AdropErrorCode)
광고 수신이 실패했을 때 호출됩니다.

선택 메서드

optional func onAdImpression(_ ad: AdropInterstitialAd)
광고가 화면에 노출되었을 때 호출됩니다.
optional func onAdClicked(_ ad: AdropInterstitialAd)
사용자가 광고를 클릭했을 때 호출됩니다.
optional func onAdWillPresentFullScreen(_ ad: AdropInterstitialAd)
광고가 전체 화면으로 표시되기 직전에 호출됩니다.
optional func onAdDidPresentFullScreen(_ ad: AdropInterstitialAd)
광고가 전체 화면으로 표시된 직후에 호출됩니다.
optional func onAdWillDismissFullScreen(_ ad: AdropInterstitialAd)
광고가 닫히기 직전에 호출됩니다.
optional func onAdDidDismissFullScreen(_ ad: AdropInterstitialAd)
광고가 닫혔을 때 호출됩니다.
optional func onAdFailedToShowFullScreen(_ ad: AdropInterstitialAd, _ errorCode: AdropErrorCode)
광고 표시가 실패했을 때 호출됩니다.

AdropRewardedAdDelegate

보상형 광고의 생명주기 이벤트를 처리하는 프로토콜입니다.

필수 메서드

func onAdReceived(_ ad: AdropRewardedAd)
광고 수신이 성공했을 때 호출됩니다.
func onAdFailedToReceive(_ ad: AdropRewardedAd, _ errorCode: AdropErrorCode)
광고 수신이 실패했을 때 호출됩니다.

선택 메서드

optional func onAdImpression(_ ad: AdropRewardedAd)
광고가 화면에 노출되었을 때 호출됩니다.
optional func onAdClicked(_ ad: AdropRewardedAd)
사용자가 광고를 클릭했을 때 호출됩니다.
optional func onAdWillPresentFullScreen(_ ad: AdropRewardedAd)
광고가 전체 화면으로 표시되기 직전에 호출됩니다.
optional func onAdDidPresentFullScreen(_ ad: AdropRewardedAd)
광고가 전체 화면으로 표시된 직후에 호출됩니다.
optional func onAdWillDismissFullScreen(_ ad: AdropRewardedAd)
광고가 닫히기 직전에 호출됩니다.
optional func onAdDidDismissFullScreen(_ ad: AdropRewardedAd)
광고가 닫혔을 때 호출됩니다.
optional func onAdFailedToShowFullScreen(_ ad: AdropRewardedAd, _ errorCode: AdropErrorCode)
광고 표시가 실패했을 때 호출됩니다.

AdropPopupAdDelegate

팝업 광고의 생명주기 이벤트를 처리하는 프로토콜입니다.

필수 메서드

func onAdReceived(_ ad: AdropPopupAd)
광고 수신이 성공했을 때 호출됩니다.
func onAdFailedToReceive(_ ad: AdropPopupAd, _ errorCode: AdropErrorCode)
광고 수신이 실패했을 때 호출됩니다.

선택 메서드

optional func onAdImpression(_ ad: AdropPopupAd)
광고가 화면에 노출되었을 때 호출됩니다.
optional func onAdClicked(_ ad: AdropPopupAd)
사용자가 광고를 클릭했을 때 호출됩니다.
optional func onAdWillPresentFullScreen(_ ad: AdropPopupAd)
팝업 광고가 표시되기 직전에 호출됩니다.
optional func onAdDidPresentFullScreen(_ ad: AdropPopupAd)
팝업 광고가 표시된 직후에 호출됩니다.
optional func onAdWillDismissFullScreen(_ ad: AdropPopupAd)
팝업 광고가 닫히기 직전에 호출됩니다.
optional func onAdDidDismissFullScreen(_ ad: AdropPopupAd)
광고가 닫혔을 때 호출됩니다.
optional func onAdFailedToShowFullScreen(_ ad: AdropPopupAd, _ errorCode: AdropErrorCode)
광고 표시가 실패했을 때 호출됩니다.

AdropPopupAdCloseDelegate

팝업 광고의 닫기 관련 이벤트를 처리하는 프로토콜입니다.

선택 메서드

optional func onClosed(_ ad: AdropPopupAd)
사용자가 닫기 버튼을 클릭했을 때 호출됩니다.
optional func onDimClicked(_ ad: AdropPopupAd)
사용자가 팝업 외부 영역(딤 영역)을 클릭했을 때 호출됩니다.
optional func onTodayOffClicked(_ ad: AdropPopupAd)
사용자가 “오늘 하루 보지 않기”를 선택했을 때 호출됩니다.

AdropSplashAdDelegate

스플래시 광고의 생명주기 이벤트를 처리하는 프로토콜입니다. 모든 메서드는 @objc optional입니다.

선택 메서드

optional func onAdReceived(_ ad: AdropSplashAd)
광고 수신이 성공했을 때 호출됩니다.
optional func onAdFailedToReceive(_ ad: AdropSplashAd, _ errorCode: AdropErrorCode)
광고 수신이 실패했을 때 호출됩니다.
optional func onAdImpression(_ ad: AdropSplashAd)
광고가 화면에 노출되었을 때 호출됩니다.
optional func onAdClose(_ ad: AdropSplashAd, impressed: Bool)
스플래시 광고가 닫혔을 때 호출됩니다. impressed는 광고가 완전히 표시되었는지를 나타냅니다.

AdropSplashAdViewDelegate

스플래시 광고 뷰의 생명주기 이벤트를 처리하는 프로토콜입니다.

필수 메서드

func onAdClose(_ adView: AdropSplashAdView, impressed: Bool)
스플래시 광고 뷰가 닫혔을 때 호출됩니다. impressed는 광고가 완전히 표시되었는지를 나타냅니다.

선택 메서드

optional func onAdReceived(_ adView: AdropSplashAdView)
광고 수신이 성공했을 때 호출됩니다.
optional func onAdFailedToReceive(_ adView: AdropSplashAdView, _ errorCode: AdropErrorCode)
광고 수신이 실패했을 때 호출됩니다.
optional func onAdImpression(_ adView: AdropSplashAdView)
광고가 화면에 노출되었을 때 호출됩니다.

UseCustomClick

광고 클릭 동작을 커스터마이징하기 위한 프로토콜입니다. AdropBanner, AdropNativeAd, AdropPopupAd에서 구현됩니다.
프로퍼티 / 메서드타입설명
destinationURLString?광고의 목적지 URL (읽기 전용)
useCustomClickBooltrue로 설정하면 광고 클릭 시 자동 URL 열기가 비활성화됩니다
open(_:useInAppBrowser:)메서드URL을 수동으로 엽니다. useCustomClicktrue일 때 클릭 콜백에서 호출하세요

열거형 (Enums)

AdropErrorCode

광고 로드 및 표시 중 발생할 수 있는 에러 코드입니다.
enum AdropErrorCode: Int
케이스코드 값설명
ERROR_CODE_NETWORK0네트워크 오류
ERROR_CODE_INTERNAL1내부 오류
ERROR_CODE_INITIALIZE2SDK 초기화 실패
ERROR_CODE_INVALID_UNIT3잘못된 유닛 ID
ERROR_CODE_NOT_TARGET_COUNTRY4타겟 국가가 아님
ERROR_CODE_AD_INACTIVE5활성 캠페인 없음
ERROR_CODE_AD_NO_FILL6노출 가능한 광고 없음
ERROR_CODE_AD_LOAD_DUPLICATED7중복된 광고 로드 요청
ERROR_CODE_AD_LOADING8광고 로딩 중
ERROR_CODE_AD_EMPTY9광고가 로드되지 않음
ERROR_CODE_AD_SHOWN10광고가 이미 표시됨
ERROR_CODE_AD_HIDE_FOR_TODAY11오늘 하루 보지 않기 설정됨
ERROR_CODE_ACCOUNT_USAGE_LIMIT_EXCEEDED12계정 사용량 한도 초과
ERROR_CODE_LANDSCAPE_UNSUPPORTED13가로 모드 미지원
ERROR_CODE_AD_BACKFILL_NO_FILL14백필 광고 없음

에러 코드별 설명

네트워크 관련
  • ERROR_CODE_NETWORK: 네트워크 연결 오류가 발생했습니다. 인터넷 연결을 확인하세요.
초기화 관련
  • ERROR_CODE_INITIALIZE: SDK가 초기화되지 않았습니다. Adrop.initialize()를 먼저 호출하세요.
유닛 관련
  • ERROR_CODE_INVALID_UNIT: 잘못된 유닛 ID입니다. 콘솔에서 확인하세요.
  • ERROR_CODE_NOT_TARGET_COUNTRY: 현재 사용자의 국가가 타겟 국가가 아닙니다.
광고 관련
  • ERROR_CODE_AD_INACTIVE: 해당 유닛에 활성화된 캠페인이 없습니다.
  • ERROR_CODE_AD_NO_FILL: 현재 노출 가능한 광고가 없습니다.
  • ERROR_CODE_AD_BACKFILL_NO_FILL: 백필 광고도 없습니다.
광고 상태 관련
  • ERROR_CODE_AD_LOAD_DUPLICATED: 이미 광고를 로드하는 중입니다.
  • ERROR_CODE_AD_LOADING: 광고가 아직 로딩 중입니다.
  • ERROR_CODE_AD_EMPTY: 광고를 표시하기 전에 로드해야 합니다.
  • ERROR_CODE_AD_SHOWN: 광고가 이미 표시되었습니다. 새로운 광고를 로드하세요.
  • ERROR_CODE_AD_HIDE_FOR_TODAY: 사용자가 “오늘 하루 보지 않기”를 선택했습니다.
기타
  • ERROR_CODE_INTERNAL: 내부 오류가 발생했습니다.
  • ERROR_CODE_ACCOUNT_USAGE_LIMIT_EXCEEDED: 계정의 광고 사용량 한도를 초과했습니다.
  • ERROR_CODE_LANDSCAPE_UNSUPPORTED: 해당 광고는 가로 모드를 지원하지 않습니다.
사용 예시:
func onAdFailedToReceive(_ banner: AdropBanner, _ errorCode: AdropErrorCode) {
    switch errorCode {
    case .ERROR_CODE_NETWORK:
        print("네트워크 오류: 연결을 확인하세요")
    case .ERROR_CODE_AD_NO_FILL:
        print("노출 가능한 광고가 없습니다")
    case .ERROR_CODE_INVALID_UNIT:
        print("잘못된 유닛 ID입니다")
    default:
        print("광고 로드 실패: \(errorCode.rawValue)")
    }
}

AdropTheme

앱의 테마 설정을 나타내는 열거형입니다.
enum AdropTheme
케이스설명
light라이트 모드
dark다크 모드
auto시스템 설정 따르기 (기본값)
사용 예시:
// 라이트 모드 설정
Adrop.setTheme(.light)

// 다크 모드 설정
Adrop.setTheme(.dark)

// 시스템 설정 따르기
Adrop.setTheme(.auto)

BrowserTarget

광고 URL의 열기 방식을 제어합니다.
설명
EXTERNAL기본 외부 브라우저에서 URL을 엽니다 (기본값)
INTERNAL인앱 브라우저에서 URL을 엽니다

구조체 및 타입

AdropNativeAdProfile

광고주의 프로필 정보를 담는 구조체입니다.
struct AdropNativeAdProfile {
    let displayLogo: String     // 광고주 로고 URL
    let displayName: String     // 광고주 이름
    let link: String?           // 광고주 프로필 링크
}
사용 예시:
let profile = nativeAd.profile
profileNameLabel.text = profile.displayName
loadImage(from: profile.displayLogo, into: profileImageView)

AdropServerSideVerificationOptions

보상형 광고의 서버 사이드 검증 옵션을 설정하는 클래스입니다.
class AdropServerSideVerificationOptions: NSObject {
    var userId: String?
    var customData: String?

    init(userId: String? = nil, customData: String? = nil)
}
속성타입설명
userIdString?서버 사이드 검증을 위한 사용자 식별자
customDataString?서버 콜백에 포함할 커스텀 데이터 문자열
사용 예시:
let options = AdropServerSideVerificationOptions(
    userId: "user_12345",
    customData: "level_5_reward"
)
rewardedAd.serverSideVerificationOptions = options

상수

AdropUnitId

테스트용 유닛 ID 상수입니다.
struct AdropUnitId {
    // 배너 광고
    static let PUBLIC_TEST_UNIT_ID_320_50: String
    static let PUBLIC_TEST_UNIT_ID_320_100: String
    static let PUBLIC_TEST_UNIT_ID_CAROUSEL: String
    static let PUBLIC_TEST_UNIT_ID_BANNER_VIDEO_16_9: String
    static let PUBLIC_TEST_UNIT_ID_BANNER_VIDEO_9_16: String

    // 네이티브 광고
    static let PUBLIC_TEST_UNIT_ID_NATIVE: String
    static let PUBLIC_TEST_UNIT_ID_NATIVE_VIDEO_16_9: String
    static let PUBLIC_TEST_UNIT_ID_NATIVE_VIDEO_9_16: String

    // 전면 광고
    static let PUBLIC_TEST_UNIT_ID_INTERSTITIAL: String

    // 보상형 광고
    static let PUBLIC_TEST_UNIT_ID_REWARDED: String

    // 팝업 광고
    static let PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM: String
    static let PUBLIC_TEST_UNIT_ID_POPUP_CENTER: String
    static let PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_16_9: String
    static let PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM_VIDEO_9_16: String
    static let PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_16_9: String
    static let PUBLIC_TEST_UNIT_ID_POPUP_CENTER_VIDEO_9_16: String

    // 스플래시 광고
    static let PUBLIC_TEST_UNIT_ID_SPLASH: String
}
사용 예시:
let banner = AdropBanner(unitId: AdropUnitId.PUBLIC_TEST_UNIT_ID_320_100)
let carouselBanner = AdropBanner(unitId: AdropUnitId.PUBLIC_TEST_UNIT_ID_CAROUSEL)
let nativeAd = AdropNativeAd(unitId: AdropUnitId.PUBLIC_TEST_UNIT_ID_NATIVE)
let interstitial = AdropInterstitialAd(unitId: AdropUnitId.PUBLIC_TEST_UNIT_ID_INTERSTITIAL)
let popup = AdropPopupAd(unitId: AdropUnitId.PUBLIC_TEST_UNIT_ID_POPUP_CENTER)
테스트 유닛 ID는 개발 환경에서만 사용하세요. 프로덕션에서는 반드시 콘솔에서 생성한 실제 유닛 ID를 사용해야 합니다.

추가 리소스

배너 광고

배너 광고 구현 가이드

네이티브 광고

네이티브 광고 구현 가이드

전면 광고

전면 광고 구현 가이드

보상형 광고

보상형 광고 구현 가이드