C++
ADOP的AdKit:C++¶
AdKit for ADOP(以下简称AdKit for ADOP)是一个广告模块,使用ADOP的API并遵循ADOP的指南进行开发。使用AdKit与Hive SDK时,日志数据会发送到分析服务器,以便您可以跳过对广告的分析。
本指南解释了如何在 Cocos C++ 中实现 AdKit 以便 Hive SDK 用户在 c++ 开发环境下使用 ADOP。AdKit for ADOP with C++ 能够在 iOS 和 Android 平台上运行,您可以在此页面查看如何为每个平台进行设置。
创建开发环境¶
请按照下面的指南为每个平台配置 AdKit。
安卓¶
构建嵌入在SDK中的AdKit源代码以使用AdKit。建议使用Android Studio 4.2及更高版本。
-
ExternalNativeBuild 使用 #cmake,将以下代码添加到 CMakeList.txt 文件中。
将以下代码添加到build.gradle文件中。
```cs
apply from: '../../HIVEAdkit/adkit.gradle'
android {
...
sourceSets.main {
java.srcDirs "src" , "../../HIVEAdKit/Android/java" // HIVEAdKit JavaPlugin 源路径
}
...
}
```
-
将格式为 ca-app-pub-XXXXX~YYYYY 的 AdMobId 添加到 AndroidManifest.xml 文件中。
iOS¶
构建嵌入SDK中的AdKit源代码以使用AdKit。
-
将 HIVEAdKit/src 和 HIVEAdKit/include 文件夹拖放到 XCode 项目中。 * 包含所有 .cpp、.hpp 和 .mm 扩展名的文件。 * AdKit 提供了用于实际使用的桥接模式代码。
-
将 HIVEAdKit/include/bidmad 添加到项目 > 构建设置 > 搜索路径。
-
将
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 库,并按照指南获取同意。
// 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 Developers以使用测试广告。