C++
AdKit for ADOP: C++¶
AdKit for ADOP(以下稱為 AdKit for ADOP)是一個廣告模組,使用 ADOP 的 API 並遵循 ADOP 的指導方針進行開發。使用 AdKit 與 Hive SDK 時,日誌數據會發送到分析伺服器,這樣您就可以跳過對廣告的分析。
本指南解释了如何在 Cocos C++ 中为 ADOP 实现 AdKit,以便 Hive SDK 用户在 C++ 开发环境下使用 ADOP。C++ 的 AdKit 可在 iOS 和 Android 平台上运行,您可以在此页面上查看如何为每个平台进行设置。
創建開發環境¶
請按照以下指南為每個平台配置 AdKit。
安卓¶
构建嵌入在 SDK 中的 AdKit 源代码以使用 AdKit。推荐使用 Android Studio 4.2 及更高版本。
-
ExternalNativeBuild 使用 #cmake,将以下代码添加到 CMakeList.txt 文件中。
-
將以下代碼添加到 build.gradle 文件中。
-
將格式為 ca-app-pub-XXXXX~YYYYY 的 AdMobId 添加到 AndroidManifest.xml 文件中。
iOS¶
將嵌入在SDK中的AdKit源代碼構建以使用AdKit。
-
將 HIVEAdKit/src 和 HIVEAdKit/include 資料夾拖放到 XCode 專案中。 * 包含所有 .cpp、.hpp 和 .mm 擴展名的檔案。 * AdKit 提供實際使用的橋接模式代碼。
-
將 HIVEAdKit/include/bidmad 添加到專案 > BuildSetting > 搜尋路徑。
-
將
GADApplicationIdentifier
添加到 Unity 構建生成的 Xcode 專案的 Info.plist 中,並以字串類型輸入格式為 ca-app-pub-XXXXX~YYYYY 的 AdMobId。在 iOS 14 及更高版本上,將 SKAdNetworkItems 添加到 Info.plist。
-
將以下內容添加到 CocoaPods 設定中。
-
运行以下命令以应用 CocoaPod 设置。
如何使用¶
測試廣告金鑰在ADOP中¶
使用ADOP發出的測試廣告金鑰是必需的。
#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
初始化 AdKit¶
如果您的應用程序針對的是歐洲經濟區 (EEA) 和英國的用戶,您必須獲得 GDPR 同意。請訪問 Google AdMob 的 UserMessagingPlatform Library 並按照指南獲取同意。
// When distributing common use
HIVEAdKit::GDPR::Setup(false, nullptr);
// When using GDPR test
HIVEAdKit::GDPR::Reset();
HIVEAdKit::GDPR::Setup(true, testDeviceId);
獎勵廣告¶
獎勵廣告會獎勵觀看視頻一段時間的用戶,並且每次只能加載一個廣告。
// 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");
}
插頁廣告¶
插頁廣告是全螢幕廣告,覆蓋遊戲的介面。
// 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");
}
自適應橫幅廣告¶
自適應橫幅廣告是一種佔據螢幕位置的滾動橫幅。橫幅的位置可以通過 yPos
值進行調整。
// 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 開發者以使用測試廣告。