iOS
Hive AdKit for ADOP: iOS¶
설정¶
Warning
AdKit 1.5.1 버전부터는 기존에 사용하던 AppKey가 AppDomain으로 변경되었습니다. AppDomain은 기존 AppKey와 호환이 되지 않아 Hive AdKit 초기화를 위해서는 AppDomain을 새로 발급받으셔야 합니다. AppDomain에 관한 정보는 테크랩스 플랫폼 사업부 운영팀에 문의 바랍니다.
-
Xcode 프로젝트의 Info.plist 파일을 아래와 같이 수정합니다.
GADApplicationIdentifier
키를 추가- AdMobId 값(ca-app-pub-XXXXX~YYYYY 형식)을 키 값으로 입력
BidmadAppDomain
키 값으로 ADOP APP_DOMAIN를 입력
-
iOS 14 이상에서는 Preparing for iOS 14 가이드를 참고하여 ADOP의 SKAdNetwork 목록을 Info.plist 파일에 추가합니다.
-
프로젝트 앱의 CocoaPods의 설정으로 다음의 내용을 추가합니다.
-
CocoaPod 설정을 적용합니다.
Note
앱 배포 시 개인정보 설문 양식을 작성하기 위한 정보를 얻으려면 Privacy Survey 가이드를 참고하세요.
적용가이드¶
ADOP 테스트 광고 키¶
AdMob이 아닌 ADOP에서 발급한 광고 키를 사용해야 합니다.
let rewardVideoUnitId: String = "29e1ef67-98d2-47b3-9fa2-9192327dd75d"
let InterstitialAdUnitId: String = "228b95a9-6f42-46d8-a40d-60f17f751eb1"
let AdaptiveBannerAdUnitId: String = "1c3e3085-333f-45af-8427-2810c26a72fc"
let AppOpenAdUnitId: String = "0ddd6401-0f19-49ee-b1f9-63e910f92e77"
Hive AdKit 초기화¶
ADOP 광고를 초기화하려면 adopAppDomain
을 필수로 발급해야 합니다. 발급한 adopAppDomain
는 ADOP 광고 초기화 메서드 인자로 사용해야 합니다.
Warning
AdKit 1.5.1 버전부터는 기존에 사용하던 AppKey가 AppDomain으로 변경되었습니다. AppKey는 기존 AppDomain과 호환이 되지 않아 초기화를 위해서는 AppDomain을 새로 발급받으셔야 합니다. AppDomain에 관한 정보는 테크랩스 플랫폼 사업부 운영팀에 문의 바랍니다.
Note
초기화 수행시 유럽 및 영국(EEA & UK) 지역인 경우 GDPR 동의 팝업이 자동으로 노출됩니다. 그 외 지역에서는 바로 초기화를 수행합니다.
Warning
Hive SDK를 사용한다면 Hive AdKit 초기화를 완료한 후에 AuthV4.setup
를 실행해야 합니다. ATT(APP Tracking Transparency) 동의 알림을 노출한 후에 GDPR 동의 화면이 나타난다면 Apple 앱 심사에서 앱이 거절될 수 있습니다.
- 게임이 유럽 및 영국(EEA & UK) 지역을 타겟팅하는 경우 GDPR 동의 팝업이 GDPR 메시지 작성 가이드에 맞게 설정되어 있는지 확인하세요.
import AdKit
// 상용
AdKit.InitializeWithShowGDPRConsent(appDomain: appDomain, vc: self, bLog: false, gdprTestDeviceId: nil) { consentState in
/*
동의 = 1, 비동의 = 0, 알수없음 = -1, 필요없음 = -2
초기화 완료 콜백으로 GDPR 동의 상태 결과 값 consentState가 전달됩니다. 결과값에 따른 별도 처리가 필요하지 않습니다.
*/
print("InitializeWithShowGDPRConsent consentState : \(consentState)")
}
// GDPR EEA 테스트모드
AdKit.InitializeWithShowGDPRConsent(appDomain: appDomain, vc: self, bLog: true, gdprTestDeviceId: gdprTestDeviceId) { consentState in
/*
동의 = 1, 비동의 = 0, 알수없음 = -1, 필요없음 = -2
초기화 완료 콜백으로 GDPR 동의 상태 결과 값 consentState가 전달됩니다. 결과값에 따른 별도 처리가 필요하지 않습니다.
*/
print("InitializeWithShowGDPRConsent consentState : \(consentState)")
}
RewardVideo 타입 광고¶
일정 시간 이상 시청 시 보상이 주어지는 보상형 광고입니다. 한 번에 하나의 광고만 로드할 수 있습니다.
// RewardVideo Instance Create
var rewardVideo:RewardVideo? = nil
rewardVideo = RewardVideo.initialize(vc: self, adUnitId: rewardVideoUnitId, eventHandler: self)
// RewardVideo Load
rewardVideo?.LoadAd(adPlacementInfo: "Native-RewardVideo-Load")
// RewardVideo Show
rewardVideo?.Show(adPlacementInfo: "Native-RewardVideo-Show")
광고 위치 데이터를 포함하여 전달할 수 있습니다. Load
성공 시점과 Show
를 통해 노출될 시점에 설정된 문자열을 전달합니다.
Interstitial 타입 광고¶
화면 전체를 차지하는 전면 광고입니다.
// Interstitial Instance Create
var interstitialAd:Interstitial? = nil
interstitialAd = Interstitial.initialize(vc: self, adUnitId: InterstitialAdUnitId, eventHandler: self)
// Interstitial Load
interstitialAd?.LoadAd(adPlacementInfo: "Native-Interstitial-Load")
// Interstitial Show
interstitialAd?.Show(adPlacementInfo: "Native-Interstitial-Show")
광고 위치 데이터를 포함하여 전달할 수 있습니다. Load
성공 시점과 Show
를 통해 노출될 시점에 설정된 문자열을 전달합니다.
Adaptive Banner 타입 광고¶
화면의 일부를 차지하는 롤링 배너입니다. BannerPosition값 또는 특정 yPos값을 입력하여 배너 위치를 조정할 수 있습니다. yPos값을 입력해 배너 위치를 조정할 때, 배너 위치는 Bottom 정렬 상태에서 지정한 yPos 값만큼 위로 이동합니다.
// Create AdaptiveBanner Instance
var adaptiveBanner:AdaptiveBanner? = nil
// Initialize AdaptiveBanner Instance at the Top of View
adaptiveBanner = AdaptiveBanner.initialize(vc: self, adUnitId: AdaptiveBannerAdUnitId, bannerPosition: BannerPosition.Top, eventHandler: self)
// Initialize AdaptiveBanner Instance at the Bottom of View
adaptiveBanner = AdaptiveBanner.initialize(vc: self, adUnitId: AdaptiveBannerAdUnitId, bannerPosition: BannerPosition.Bottom, eventHandler: self)
// Load AdaptiveBanner
adaptiveBanner?.LoadAd(adPlacementInfo: "Native-AdaptiveBanner-Load")
// Destroy AdaptiveBanner
adaptiveBanner?.Destroy()
// yPos 값을 지정하여 사용하는 예제입니다.
// Banner Instance Create
var adaptiveBanner: AdaptiveBanner? = null
adaptiveBanner = AdaptiveBanner.initialize(vc: self, adUnitId: AdaptiveBannerAdUnitId, yPos: yPos, eventHandler: self)
// Load AdaptiveBanner
adaptiveBanner?.LoadAd(adPlacementInfo: "Native-AdaptiveBanner-Load")
// yPos값에 따라 위치 변경
adaptiveBanner?.setPosition(yPosition:yPos)
광고 위치 데이터를 포함하여 전달할 수 있습니다. Load
성공 시점과 Show
를 통해 노출될 시점에 설정된 문자열을 전달합니다.
AppOpen 타입 광고¶
앱 상태가 백그라운드에서 포그라운드로 변경될 때 광고를 노출하는 앱 오픈 광고입니다.
// Create AppOpenAd Instance
var appOpen: AppOpen? = nil
appOpen = AppOpen.initialize(vc: self, adUnitId: AppOpenAdUnitId, eventHandler: self, adPlacementInfo: "Native-AppOpen-LoadInfo")
// Automatically load & show AppOpenAd when the app comes to the foreground
appOpen?.LoadAd(adPlacementInfo: "Native-AppOpen-LoadInfo")
// Destroy AppOpenAd
appOpen?.Destroy()
테스트 광고¶
개발 중에는 테스트 광고를 클릭해도 광고주에게 비용이 청구되지 않도록 설정하는 것이 중요합니다. 테스트 모드가 아닌 상태로 광고를 지나치게 많이 클릭하면 무효 활동으로 계정이 신고되어 광고 수신이 차단될 수 있습니다. 테스트 광고 이용 방법은 Google 개발자 사이트에서 확인할 수 있습니다.