iOS 배너 광고
배너 광고 노출하기
광고 크기를 적용한 광고 유닛 ID로 AdropBanner 를 초기화하고, 광고를 로드하세요.
Banner (375X80)
PUBLIC_TEST_UNIT_ID_375_80
Banner (320X50)
PUBLIC_TEST_UNIT_ID_320_50
Banner (320X100)
PUBLIC_TEST_UNIT_ID_320_100
Banner(캐러셀)
PUBLIC_TEST_UNIT_ID_CAROUSEL
Banner Video (16:9)
PUBLIC_TEST_UNIT_ID_BANNER_VIDEO_16_9
Banner Video (9:16)
PUBLIC_TEST_UNIT_ID_BANNER_VIDEO_9_16
Banner Example 구현 예시
필요한 파라미터 정의
struct AdropUnitId {
// 배너 이미지 광고
static let BANNER_IMAGE_320_50 = "YOUR_BANNER_UNIT_ID"
static let BANNER_IMAGE_375_80 = "YOUR_BANNER_UNIT_ID"
// 배너 동영상 광고
static let BANNER_VIDEO_16_9 = "YOUR_BANNER_UNIT_ID"
static let BANNER_VIDEO_9_16 = "YOUR_BANNER_UNIT_ID"
}@interface AdropUnitId : NSObject
+ (NSString *)BANNER_IMAGE_320_50;
+ (NSString *)BANNER_IMAGE_375_80;
+ (NSString *)BANNER_VIDEO_16_9;
+ (NSString *)BANNER_VIDEO_9_16;
@end배너 광고 구현
class ViewController: UIViewController {
@IBOutlet weak var adContainer: UIView!
override func viewDidLoad() {
super.viewDidLoad()
// 추가 설정은 먼저 view를 로드한 후 진행하세요.
let bannerView = AdropBanner(unitId: "ADROP_PUBLIC_TEST_UNIT_ID")
bannerView.delegate = self
bannerView.load()
adContainer.addSubview(bannerView)
bannerView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
bannerView.translatesAutoresizingMaskIntoConstraints = false
bannerView.frame = adContainer.bounds
}
}
extension ViewController: AdropBannerDelegate {
func onAdReceived(_ banner: AdropAds.AdropBanner) {
print("onAdReceived \(banner.creativeId)")
}
func onAdClicked(_ banner: AdropAds.AdropBanner) {
print("onAdClickced")
}
func onAdFailedToReceive(_ banner: AdropAds.AdropBanner, _ error: AdropAds.AdropErrorCode) {
print("onAdFailedToReceive \(AdropErrorCodeToString(code: error))")
}
}@interface ViewController (AdropAds) <AdropBannerDelegate>
@end
@implementation ViewController (AdropAds)
- (void)onAdReceived:(AdropBanner * _Nonnull)banner {
NSLog(@"onAdReceived");
}
- (void)onAdClicked:(AdropBanner * _Nonnull)banner {
NSLog(@"onAdClicked");
}
- (void)onAdFailedToReceive:(AdropBanner * _Nonnull)banner :(enum AdropErrorCode)error {
NSLog(@"onAdFailedToReceive");
}
@end
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *adContainerView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
AdropBanner* banner = [[AdropBanner alloc] initWithUnitId:@"ADROP_PUBLIC_TEST_UNIT_ID"];
banner.delegate = self;
[banner load];
[_adContainerView addSubview:banner];
banner.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
banner.translatesAutoresizingMaskIntoConstraints = false;
banner.frame = _adContainerView.bounds;
}
@endclass AdropBannerWrapper: AdropBannerDelegate {
let bannerRep: AdropBannerRepresented
init(){
bannerRep = AdropBannerRepresented(unitId: "ADROP_PUBLIC_TEST_UNIT_ID")
bannerRep.banner.delegate = self
}
func onAdReceived(_ banner: AdropAds.AdropBanner) {
print("onAdReceived")
}
func onAdClicked(_ banner: AdropAds.AdropBanner) {
print("onAdClicked")
}
func onAdFailedToReceive(_ banner: AdropAds.AdropBanner, _ error: AdropAds.AdropErrorCode) {
print("onAdFailedToReceive \(AdropErrorCodeToString(code: error))")
}
}
struct ContentView: View {
var adropBannerWrapper = AdropBannerWrapper()
var body: some View {
ZStack{
VStack {
Spacer()
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)
Text("Adrop Ads")
Button {
adropBannerWrapper.bannerRep.banner.load()
} label: {
Text("requestAd")
}
.padding(.all)
Spacer()
}
VStack {
Spacer()
adropBannerWrapper.bannerRep.frame(height: 80)
}
}
}
}유의사항
메모리 관리
ViewController 해제 시 배너 정리 필수
새 배너 로드 전 기존 배너 제거
광고 로드 타이밍
네트워크 상태 확인 후 로드
실제로 유저가 볼 수 있는 시점에 로드
백그라운드에서 불필요한 로드 방지
에러 처리 예시 (Swift)
func onAdFailedToReceive(_ ad: AdropPopupAd, _ error: AdropErrorCode) {
switch error {
case .ERROR_CODE_AD_NO_FILL:
print("현재 노출 가능한 팝업 광고가 없습니다")
case .ERROR_CODE_NETWORK:
print("네트워크 오류로 팝업 광고 로드 실패")
case .ERROR_CODE_INVALID_UNIT:
print("잘못된 유닛 ID입니다")
default:
print("팝업 광고 로드 실패: \(error)")
}
}적용 확인하기
console에서 발급받은 unitId가 한 번이라도 광고요청을 할 경우 성공적으로 연결됩니다.

Last updated