Hive AdKit for ADOP: C++
Hive AdKit for ADOP (이하 AdKit for ADOP)는 ADOP의 API를 사용하며 ADOP 개발 가이드에 따라 개발되었습니다. AdKit for ADOP를 Hive SDK, 또는 개별 모듈과 함께 사용하면 Hive 애널리틱스 서버로 로그가 전송되어 별도의 광고 분석 작업을 생략할 수 있습니다.
이 가이드는 Hive SDK 사용자가 C++ 개발환경에서 ADOP를 사용할 수 있도록 Hive AdKit for ADOP의 Cocos C++ 적용 과정을 소개합니다. Hive AdKit C++ SDK는 iOS와 Andriod에서 동작하며, 각 운영체제마다 설정 방법에 차이가 있습니다.
개발 환경 구축
아래의 운영체제별 가이드에 따라 AdKit을 설정하세요.
- Android
Android에서는 SDK에 포함된 Hive AdKit SourceCode를 빌드하여 사용할 수 있습니다. Android Studio 4.2 이상 버전에서 빌드하기를 권장합니다.- ExternalNativeBuild
#cmake를 사용할 경우 CMakeList.txt에 다음의 내용을 추가합니다.
1234567// 'CMakeList.txt'set(HIVEADKIT_DIR_PATH ....../HIVEAdKit) #setup to HIVEAdKit path#HIVEAdKit library import after add_library( MyGame ... )add_subdirectory(${HIVEADKIT_DIR_PATH}) #HIVEAdKit library & macro loaduse_hiveadkit_prebuilt(${HIVEADKIT_DIR_PATH} MyGame) #library import automatic macro to build target - build.gradle 파일에 다음의 내용을 추가합니다.
123456789apply from: '../../HIVEAdkit/adkit.gradle'android {...sourceSets.main {java.srcDirs "src" , "../../HIVEAdKit/Android/java" // HIVEAdKit JavaPlugin Source Path}...} - AndroidManifest.xml 파일에 ca-app-pub-XXXXX~YYYYY 형식의 AdMobId 값을 추가하세요.
123456<application><meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP" android:value="true" /><meta-dataandroid:name="com.google.android.gms.ads.APPLICATION_ID"android:value="ca-app-pub-XXXXX~YYYYY"/></application>
- ExternalNativeBuild
- iOS
iOS에서 사용하는 경우 포함된 Hive AdKit SourceCode를 빌드하여 사용할 수 있습니다.- HIVEAdKit/src와 HIVEAdKit/include 폴더를 끌어서 놓기 동작으로 XCode 프로젝트에 포함시킵니다.
- .cpp .hpp .mm 파일을 모두 포함합니다.
- HIVE AdKit 코드는 Bridge코드로 실제 사용성을 위해 제공합니다.
- XCode 프로젝트의 BuildSetting > Header Search Path에 HIVEAdKit/include/bidmad 경로를 추가합니다.
- Xcode 프로젝트의 Info.plist 파일에
GADApplicationIdentifier
를 추가하고, ca-app-pub-XXXXX~YYYYY 형식의 AdMobId 값을 String 타입으로 입력하세요.
12<key>GADApplicationIdentifier</key><string>ca-app-pub-XXXXX~YYYYY</string>iOS 14 이상에서는 ADOP의 SKAdNetwork 목록을 Info.plist 파일에 추가하세요. - CocoaPods의 설정으로 아래의 내용을 추가합니다.
1234567891011platform :ios, '11.0'target 'MyGame-mobile' douse_frameworks! :linkage => :staticpod 'BidmadSDK', '4.0.1.1'pod 'OpenBiddingHelper', '4.0.1.1'pod 'BidmadAdapterFNC/ForGame', '4.0.0.2'pod 'BidmadAdapterFC', '4.0.0.0'end - CocoaPod 설정을 적용합니다.
1$pod install
- HIVEAdKit/src와 HIVEAdKit/include 폴더를 끌어서 놓기 동작으로 XCode 프로젝트에 포함시킵니다.
적용하기
ADOP 테스트 광고 키
ADOP에서 발급한 광고 키를 사용해야 합니다.
1 2 3 4 5 6 7 8 9 10 |
#if defined(ANDROID) const char* rewardVideoId = "7d9a2c9e-5755-4022-85f1-6d4fc79e4418"; const char* InterstitialAdId = "e9acd7fc-a962-40e4-aaad-9feab1b4f821"; const char* AdaptiveBannerAdId = "944fe870-fa3a-4d1b-9cc2-38e50b2aed43"; #else// UNITY_IOS const char* rewardVideoId = "29e1ef67-98d2-47b3-9fa2-9192327dd75d"; const char* InterstitialAdId = "228b95a9-6f42-46d8-a40d-60f17f751eb1"; const char* AdaptiveBannerAdId = "1c3e3085-333f-45af-8427-2810c26a72fc"; #endif |
Hive AdKit 초기화
유럽 및 영국(EEA & UK) 지역을 타겟팅 하는 경우 GDPR 동의가 필요합니다. Google AdMob의 UserMessagingPlatform 라이브러리를 사용하여 GDPR 동의를 받으세요.
1 2 3 4 5 6 |
// 상용 배포시 HIVEAdKit::GDPR::Setup(false, nullptr); // GDPR 테스트 사용시 HIVEAdKit::GDPR::Reset(); HIVEAdKit::GDPR::Setup(true, testDeviceId); |
Reward 타입 광고
일정 시간 이상 광고 시청 시 보상이 주어지는 보상형 광고입니다. 한 번에 하나의 광고만 로드할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 |
// Create RewardVideoAd Instance auto rewardVideo = HIVEAdKit::RewardVideo::Initialize(rewardVideoId, this); // Load RewardVideoAd HIVEAdKit::RewardVideo::Load(*rewardVideo, "RewardVideo-Load-AdPlacementInfo"); // Show RewardVideoAd if( HIVEAdKit::RewardVideo::IsLoaded(*rewardVideo) ) { HIVEAdKit::RewardVideo::Show(*rewardVideo, "RewardVideo-Show-AdPlacementInfo"); } |
Interstitial 타입 광고
화면 전체를 차지하는 전면 광고입니다.
1 2 3 4 5 6 7 8 9 10 |
// Create InterstitialAd Instance auto interstitial = HIVEAdKit::Interstitial::Initialize(InterstitialAdId, this); // Load InterstitialAd HIVEAdKit::Interstitial::Load(*interstitial, "Interstitial-Load-AdPlacementInfo"); // Show InterstitialAd if( HIVEAdKit::Interstitial::IsLoaded(*interstitial) ) { HIVEAdKit::Interstitial::Show(*interstitial, "Interstitial-Show-AdPlacementInfo"); } |
Adaptive Banner 타입 광고
화면의 일부를 차지하는 롤링 배너입니다. yPos
값을 조정하여 배너의 위치를 지정할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 |
// Create AdaptiveBanner Instance auto adaptiveBanner = HIVEAdKit::AdaptiveBanner::Initialize(AdaptiveBannerAdId, this, yPos); // Load AdaptiveBanner HIVEAdKit::AdaptiveBanner::Load(*adaptiveBanner, "Banner-Load-AdPlacementInfo"); // Show AdaptiveBanner HIVEAdKit::AdaptiveBanner::Show(*adaptiveBanner, "Banner-Show-AdPlacementInfo"); // Hide AdaptiveBanner HIVEAdKit::AdaptiveBanner::Hide(*adaptiveBanner); |
테스트 광고
개발 중에는 테스트 광고를 클릭해도 광고주에게 비용이 청구되지 않도록 설정하는 것이 중요합니다. 테스트 모드가 아닌 상태로 광고를 지나치게 많이 클릭하면 무효 활동으로 인식되고 이로 인해 해당 계정은 신고 대상이 될 수 있으니 주의하세요. 테스트 광고 이용 방법은 Google 개발자 사이트에서 확인할 수 있습니다.