跳轉至

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

  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) #自動宏導入庫以構建目標
    
  2. 將以下代碼添加到 build.gradle 文件中。

    apply from: '../../HIVEAdkit/adkit.gradle'
    
    android {
    ...
    sourceSets.main {
            java.srcDirs "src" , "../../HIVEAdKit/Android/java" // HIVEAdKit JavaPlugin Source Path
    }
    ...
    }
    
  3. 將格式為 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 添加到專案 > BuildSetting > 搜尋路徑。

  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 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 開發者以使用測試廣告。