跳转至

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及更高版本。

  1. ExternalNativeBuild 使用 #cmake,将以下代码添加到 CMakeList.txt 文件中。

    // 'CMakeList.txt'
    
    set(HIVEADKIT_DIR_PATH ....../HIVEAdKit) #设置 HIVEAdKit 路径
    #在 add_library( MyGame ... ) 之后导入 HIVEAdKit 
    add_subdirectory(${HIVEADKIT_DIR_PATH}) #加载 HIVEAdKit 库和宏
    use_hiveadkit_prebuilt(${HIVEADKIT_DIR_PATH} MyGame) #库导入自动宏以构建目标
    

将以下代码添加到build.gradle文件中。

```cs
apply from: '../../HIVEAdkit/adkit.gradle'

android {
...
sourceSets.main {
        java.srcDirs "src" , "../../HIVEAdKit/Android/java" // HIVEAdKit JavaPlugin 源路径
}
...
}

```
  1. 将格式为 ca-app-pub-XXXXX~YYYYY 的 AdMobId 添加到 AndroidManifest.xml 文件中。

    <application>
    <meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP" android:value="true" />
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-XXXXX~YYYYY"/>
    </application>
    

iOS

构建嵌入SDK中的AdKit源代码以使用AdKit。

  1. 将 HIVEAdKit/src 和 HIVEAdKit/include 文件夹拖放到 XCode 项目中。 * 包含所有 .cpp、.hpp 和 .mm 扩展名的文件。 * AdKit 提供了用于实际使用的桥接模式代码。

  2. 将 HIVEAdKit/include/bidmad 添加到项目 > 构建设置 > 搜索路径。

  3. GADApplicationIdentifier 添加到 Unity 构建生成的 Xcode 项目的 Info.plist 中,并将格式为 ca-app-pub-XXXXX~YYYYY 的 AdMobId 作为字符串类型输入。

    GADApplicationIdentifier
    ca-app-pub-XXXXX~YYYYY
    

    在 iOS 14 及更高版本上,将 SKAdNetworkItems 添加到 Info.plist。

  4. 将以下内容添加到 CocoaPods 设置中。

    platform :ios, '11.0'
    
       target 'MyGame-mobile' do
           use_frameworks! :linkage => :static
    
           pod 'BidmadSDK', '4.0.1.1'
           pod 'OpenBiddingHelper', '4.0.1.1'
           pod 'BidmadAdapterFNC/ForGame', '4.0.0.2'
           pod 'BidmadAdapterFC', '4.0.0.0'
    
       结束
    
  5. 运行以下命令以应用 CocoaPod 设置。

    $pod install
    

如何使用

在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以使用测试广告。