Hive AdKit은 Hive SDK와 개별모듈 유저가 AD(X)에서 제공하는 Unity 패키지를 적용하는 과정에 발생하는 오류를 수정하고, 사용의 편의를 돕기 위해 제작된 광고모듈입니다. Hive AdKit을 지원하는 버전과 적용 방법을 아래에서 차근차근 살펴보세요.
- 최소 지원 버전
- Hive SDK v4.14.4.0
- Hive SDK v4.14.4.0 KS
- Hive SDK v1.18.3.0
- 개별모듈 Peppermint Android v2.9.2
- 개별모듈 Peppermint iOS v2.8.4
Unity와 Cocos2D-X 환경을 지원합니다.
최신 다운로드
배포일 | 다운로드 |
---|---|
2023-08-10 | HiveAdKit_v1.4.3_for_Unity_ADX.zip |
릴리즈 노트
V1.4.3 (2023-08-10)
- ADX-Unity 2.3.5 버전으로 업데이트합니다.
- ADXLibrary-Android 2.3.10 버전을 사용하도록 변경합니다.
- ADXLibrary-iOS 2.3.7 버전을 사용하도록 변경합니다.
- OnPaidEvent로 수신하는 eCPM값이 과소 측정되는 이슈를 수정했습니다.
V1.4.2 (2023-06-20)
- ADX-Unity 2.3.4 버전으로 업데이트합니다.
- ADXLibrary-Android 2.3.8 버전을 사용하도록 변경합니다.
- ADXLibrary-iOS 2.3.5 버전을 사용하도록 변경합니다.
- OnPaidEvent를 수신합니다. OnPaidEvent 이벤트를 통해 광고 노출이 발생동안 예상되는 eCPM 측정치를 받아볼 수 있습니다. Rewarded Video, Interstitial에서 노출당 광고 추정 수익을 측정할 수 있습니다.
V1.4.1 (Mar 20, 2023)
-
ADX-Unity 2.3.2 버전으로 업데이트합니다.
- ADXLibrary-Android 2.3.3 버전을 사용하도록 변경합니다.
- ADXLibrary-iOS 2.3.2 버전을 사용하도록 변경합니다.
V1.4.0 (Feb 20, 2023)
- iOS – Xcode 14 이상에서 빌드가 가능합니다.
-
ADX-Unity 2.3.0 버전으로 업데이트합니다.
- ADXLibrary-Android 2.3.0 버전을 사용하도록 변경합니다.
- ADXLibrary-iOS 2.3.0 버전을 사용하도록 변경합니다.
- AdMob-Unity 7.4.0 (Google Mobile Ads Unity Plugin Change Log 참고)
- SKAdNetwork ID가 갱신되었습니다.
- EDM4U 1.2.175 버전을 제공합니다.
V1.3.3 (Aug 22, 2022)
- ADX-Unity 2.2.6 버전으로 업데이트
- ADXLibrary-iOS 2.2.6 버전 사용 지원
- ADXLibrary-Android 2.2.6 버전 사용 지원
- 1초 이내 광고 생성을 연속으로 하는 경우 발생할 수 있는 크래시 수정
- EDM4U 1.2.171 버전 제공
V1.3.2 (May 25, 2022)
- ADX-Unity 2.1.7 버전으로 업데이트
- ADXLibrary-iOS 2.1.8 버전 사용 지원
V1.3.1 (May 19, 2022)
- ADX-Unity 2.1.6 버전으로 업데이트
- ADXLibrary-Android 2.1.6 버전 사용 지원
V1.3.0 (May 17, 2022)
- 로그 전송 시 개별 추가 정보를 포함하는 기능 추가
- ADX-Unity 2.1.5 버전으로 업데이트
- ADXLibrary-Android 2.1.5 버전 사용 지원
- ADXLibrary-iOS 2.1.7 버전 사용 지원
- AdMob-Unity 6.1.2
- MoPub 제거
- Github에서 MoPubSDK 제거 (링크 확인 불가)
- SKAdNetwork ID 갱신
적용하기
iOS (Unity 2019.4 이상)
Unity 2019.4 이상에서 iOS 프로젝트 빌드 시 DynamicFramework로 동작하는 UnityFramewok 타겟이 생성됩니다.
- EDM4U 설정 (1.2.171 기준)
Unity의 iOS Resolver Settings(메뉴: Assets > External Dependency Manager > iOS Resolver > Settings)에서 static_framework 빌드 설정이 되어있는지 확인합니다.
- 에디터에서 Podfile을 열어 파일 설정을 확인합니다.
- Xcode 설정을 진행하세요.
제공 기능
- 보상형 광고
- AD(X)는 광고의 노출에 대한 API를 제공하지 않고 AdMob의 가이드를 따르도록 안내합니다.
- Hive AdKit API와 Hive SDK, 혹은 개별모듈을 함께 사용하는 경우 호출된 RewardVideo API에 따라서 로그 정보 전송 여부가 결정됩니다. 로그 정보는 Hive 애널리틱스 서버로 전송되며 해당 기능을 지원하는 최소 버전은 다음과 같습니다.
- Hive SDK v4.11.0
- Hive SDK v1.17.2
- 개별모듈 ModuleManager v2.6.0
- 개별모듈 CommonModule v1.5.0
- Interstitial 타입 광고
- Adaptive Banner 타입 광고
아래는 Hive AdKit 활용 가이드입니다.
Hive AdKit 초기화
모든 타입의 광고를 초기화, 로딩, 노출하기 전 필수적으로 수행해야 하는 단계입니다.
1 2 3 4 5 6 7 8 9 |
/* * AD(X)의 사용자 개인정보 활용 및 수집상태를 설정 * 0 : 동의여부가 존재하지 않는 상태 * 1 : 동의여부가 필요없는 지역 * 2 : 사용자가 개인정보 활용 및 수집을 거부한 상태 * 3 : 사용자가 개인정보 활용 및 수집을 동의한 상태 */ int consentState = 1; HIVEAdKit.InitializeWithSetConsentState(appId, consentState); |
부가정보 설정기능
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// GameData Example [Serializable] public class SendInfo { public int level; public int gold; } SendInfo addtionalInfo = new SendInfo(); addtionalInfo.level = 1; addtionalInfo.gold = 100; // JSON Obejct 형태로 전송 HIVEAdKit.SetAdditionalInfo(JsonUtility.ToJson(addtionalInfo)); |
Rewarded 타입 광고
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
// 보상형 광고 초기화 // 보상형 광고 초기화 EventHandlers eventHandlers = new EventHandlers.Builder() .OnAdLoaded(OnAdLoadedCB) .OnAdOpening(OnAdOpeningCB) .OnAdClosed(OnAdClosedCB) .OnAdFailedToLoad(OnAdFailedToLoadCB) .OnAdFailedToShow(OnAdFailedToShowCB) .OnAdReward(OnAdRewardCB) .OnPaidEvent(OnPaidEventCB) .Build(); // 인스턴스 생성 RewardVideoAd = HIVEAdKit.RewardVideo.Initialize(rewardVideoUnitId, eventHandlers); // 보상형 광고 로드 // HIVE 애널리틱스 서버로 광고 창구 정보를 전송합니다. if( HIVEAdKit.RewardVideo.IsInitialzed(RewardVideoAd) ) { HIVEAdKit.RewardVideo.LoadAd(RewardVideoAd, "광고 창구 정보"); } // 보상형 광고 재생 // HIVE 애널리틱스 서버로 광고 창구 정보를 전송합니다. if( HIVEAdKit.RewardVideo.IsLoaded(RewardVideoAd) ) { HIVEAdKit.RewardVideo.Show(RewardVideoAd, "광고 창구 정보"); } |
Interstitial 타입 광고
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
EventHandlers eventHandlers = new EventHandlers.Builder() .OnAdLoaded(OnAdLoadedCB) .OnAdOpening(OnAdOpeningCB) .OnAdClosed(OnAdClosedCB) .OnAdFailedToLoad(OnAdFailedToLoadCB) .OnAdClick(OnAdClickCB) .OnPaidEvent(OnPaidEventCB) .Build(); // 인스턴스 생성 InterstitialAd = HIVEAdKit.Interstitial.Initialize(InterstitialAdUnitId, eventHandlers); // 전면 광고 로드 // HIVE 애널리틱스 서버로 광고 창구 정보를 전송합니다. if( HIVEAdKit.Interstitial.IsInitialzed(InterstitialAd) ) { HIVEAdKit.Interstitial.Load(InterstitialAd, "광고 창구 정보"); } // 전면 광고 노출 // HIVE 애널리틱스 서버로 광고 창구 정보를 전송합니다. if( HIVEAdKit.Interstitial.IsLoaded(InterstitialAd) ) { HIVEAdKit.Interstitial.Show(InterstitialAd, "광고 창구 정보"); } |
Adaptive Banner 타입 광고
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
EventHandlers eventHandlers = new EventHandlers.Builder() .OnAdLoaded(OnBannerAdLoadedCB) .OnAdOpening(OnAdOpeningCB) .OnAdClosed(OnAdClosedCB) .OnAdFailedToLoad(OnAdFailedToLoadCB) .OnAdClick(OnAdClickCB) .Build(); HIVEAdKit.AdaptiveBanner.AdPosition bannerPosition = HIVEAdKit.AdaptiveBanner.AdPosition.Top; HIVEAdKit.AdaptiveBanner.AdSize adaptiveSize = HIVEAdKit.AdaptiveBanner.AdSize.AD_SIZE_320x50; // 인스턴스 생성 AdaptiveBannerAd = HIVEAdKit.AdaptiveBanner.Initialize(AdaptiveBannerAdUnitId, adaptiveSize, bannerPosition, eventHandlers); // 로드 및 노출 // HIVE 애널리틱스 서버로 광고 창구 정보를 전송합니다. HIVEAdKit.AdaptiveBanner.LoadAd(AdaptiveBannerAd, "광고 창구 정보"); // 제거 HIVEAdKit.AdaptiveBanner.Destroy(AdaptiveBannerAd); |
iOS 14 업데이트
iOS 14 이상 버전에 대응하는 AD(X)의 SKAdNetwork 목록입니다. 2021년 01월 29일 진행된 업데이트를 기준으로 AdKitPostprocess가 작성되었습니다. 수시 업데이트되는 항목이니 잊지 말고 확인해주세요.
- SKAdNetwork 업데이트 확인하기
Android 11 업데이트
Android 11을 지원하면서 AD(X)의 라이브러리 AndroidManifest.xml 파일에 <queries> 태그가 추가되었습니다. Unity에서 빌드하는 과정에 아래와 같은 에러 로그를 확인할 경우, Unity-Android 11 대응 가이드를 확인해주세요.
- Unity 에러 로그 예시
1 |
AndroidManifest.xml: AAPT: error: unexpected element <queries> found in <manifest>. |
- Unity-Android 11 대응 가이드
ADX Proguard 설정
라이브러리 AAR 파일에 Proguard 규칙 포함하여 배포되므로 별도로 설정없이 자동으로 설정됩니다.
Unity Integrate Notice
GoogleMobileAdsSettings에 입력한 App ID가 삭제되는 경우 Unity > Assets > Google Mobile Ads > Settings에서 Delay app measure를 체크 후 다시 해제하여 주시기 바랍니다.
ADX Gradle 설정
Unity 2020 이상 환경에서는 광고 요청 시 특정 광고 네트워크로 인한 비정상 종료가 발생하지 않도록 아래의 설정을 gradle properties 파일(Assets/Plugins/Android/gradleTemplate.properties)에 추가해야 합니다.
1 2 |
android.enableDexingArtifactTransform=false |
테스트 광고
개발 중에는 테스트 광고를 클릭해도 광고주에게 비용이 청구되지 않도록 설정하는 것이 중요합니다. 테스트 모드가 아닌 상태로 광고를 지나치게 많이 클릭하면 무효 활동으로 인식되고 이로 인해 해당 계정은 신고 대상이 될 수 있으니 주의하세요. 테스트 광고 이용 방법은 Google 개발자 사이트에서 확인할 수 있습니다.
적용 및 포함된 라이브러리 (Hive AdKit v1.4.3 기준)
- ADXLibrary
- ADXLibrary-Unity 2.3.5
- ADXLibrary-Android 2.3.10
- ADXLibrary-Android-rewarded-video 2.3.10
- ADXLibrary-Android-adx-library-standard 2.3.10
- ADXLibrary-Android-adx-library-base 2.3.10
- ADXLibrary-iOS 2.3.7
- ADXLibrary-iOS/Standard 2.3.7
- ADXLibrary-iOS/Rewarded 2.3.7
- ADXLibrary-iOS-FBAudienceNetwork 2.3.7
- ADXLibrary-iOS-UnityAds 2.3.7
- ADXLibrary-iOS-Pangle 2.3.7
- ADXLibrary-iOS-Fyber 2.3.7
- ADXLibrary-iOS-Mintegral 2.3.7
- AdMob-Unity 7.4.0
- AdMob-Android 21.3.0
- AdMob-iOS 9.14.0
- UnityAds-Android 4.5.0
- UnityAds-iOS 4.5.0
- Cauly-Android 3.5.20
- Cauly-iOS 3.1.21
- AdPieSDK-Android 1.12.2
- AdPieSDK-iOS 1.4.9
- AdFit-Android 3.12.9
- AppLovin-iOS 11.6.1
- AppLovin-Android 11.6.1
- Fyber-iOS 8.1.6
- Fyber-Android 8.2.1
- Pangle-iOS 5.1.1.0
- Pangle-Android 4.7.1.7
- Mintegral-iOS 7.2.8
- Mintegral-Android 16.3.11
- Tnk SDK-iOS 1.11
- Tnk SDK-Android 7.21.7