跳转至

AdKit Unity for DARO

AdKit Unity for DARO 是一个通过应用 DARO API 开发的 Unity 广告模块。当与 SDK 或单独模块一起使用时,日志会发送到分析服务器,从而使您能够跳过单独的广告分析工作。此外,使用 AdKit Unity for DARO 允许 SDK 用户修复错误并减少在应用 DARO 提供的 Unity 包时发生的试错。

本指南解释了如何为DARO安装AdKit Unity,配置每个操作系统Unity环境的先决条件,以及如何使用每个功能。

安装或更新

如果您第一次使用 AdKit for DARO,请按以下顺序安装。

或者,如果您想更新现有的 AdKit 安装,请删除现有安装版本,然后按照以下顺序安装最新版本的 AdKit for DARO。

  1. 下载并安装最新版本的 AdKit for DARO。
  2. 在 Unity 工具栏中,转到 资产 > 导入包 > 自定义包...,选择 .unitypackage 文件,然后点击 导入

  3. 导入完成后,验证在 Assets 文件夹下是否已创建 Hive AdKit 和 DARO 相关的文件和文件夹。

  4. 下载并安装最新版本的 EDM4U。 EDM4U 包含在 Hive SDK v4 中。如果您正在使用 Hive SDK v4,请跳过此步骤。

删除

要删除 Hive AdKit for DARO,请在您的 Unity 项目中删除以下文件夹:

  • 资产/HIVEAdKit
  • 资产/HIVEAdKit_示例

先决条件配置

在完成DARO的AdKit安装后,作为应用它的先决条件配置步骤,为每个操作系统添加DARO密钥值并验证构建设置。

安卓

将从DARO仪表板下载的密钥值添加到基于Android的Unity项目中。

  1. 将下载的 android-daro-key.txt 文件复制到 HIVEAdKit/Plugins/Android 文件夹中。
    • android-daro-key.txt 文件可以通过点击 DARO Dashboard - Apps 屏幕上的“下载”按钮来下载“密钥文件”。
  2. daroAppKey 添加到 gradleTemplage.properties,如下所示:
    daroAppKey=INPUT_DARO_APP_KEY
    

iOS

将从DARO仪表板下载的关键值添加到基于iOS的Unity项目中。

  1. 将下载的 ios-daro-key.txt 文件复制到 HIVEAdKit/Plugins/iOS 文件夹中。
  2. 在 HIVEAdKit/Editor/iOSAdKitPostBuildProcessor.cs 文件中,取消注释被注释的 Google Admob appIdDaro App Key 部分,并添加如下所示的内部值:
    // 设置 GADApplicationIdentifier(请联系 Daro 获取您自己的 ADMOB APPID)
    //rootDict.SetString("GADApplicationIdentifier", "YOUR GOOGLE ADMOB APPID");
    
    // 设置 DaroAppKey(请联系 DARO 获取您自己的 Daro 应用密钥)
    //rootDict.SetString("DaroAppKey", "YOUR Daro App Key");
    

iOS构建设置验证

在构建 iOS 项目时,创建一个作为 DynamicFramework 操作的 UnityFramework 目标。

  1. EDM4U 配置(基于 1.2.179) 在 Unity 的 iOS Resolver Settings(菜单:Assets > External Dependency Manager > iOS Resolver > Settings)中,验证 static_framework 构建设置是否已配置。

  2. 构建项目。构建完成后,从生成的项目根路径打开Podfile以验证文件设置。

    source 'https://github.com/Com2uSPlatformCorp/HiveAdKit-iOS.git'
    source 'https://cdn.cocoapods.org/'
    
    platform :ios, '13.0'
    
    target 'UnityFramework' do
      pod 'HiveAdKit_DARO_UnityPlugin', '1.5.3'
    end
    target 'Unity-iPhone' do
    end
    use_frameworks!
    
Warning

在构建应用AdKit Unity的生产服务之前,您必须删除Assets/HIVEAdKit_Example文件夹。HIVEAdKit示例设置可能已包含在内。

DARO Proguard 配置

Proguard 规则包含在库 AAR 文件中并分发,因此它们会自动配置,无需单独设置。

使用指南

本节提供有关使用 AdKit Unity 进行 DARO 功能的设置和 API 调用方法的指导。

AdKit 初始化

  • 如果您的游戏面向欧洲和英国(EEA & UK)地区,您必须在调用 ShowConsentUI API 以显示 GDPR 同意弹窗后初始化 AdKit。如果您仅提供国内服务,请直接调用 HIVEAdKit.Initialize API 进行初始化。
    所有由 HIVEAdKit 提供的 API 功能必须从 Unity 的 主线程 中调用。
using hive.adkit.daro;

// Call GDPR popup
public void ShowGDPR(string noticeId)
{
    HIVEAdKit.ShowConsentUI(noticeId, () =>
    {
        initSdk();
    });
}

// Hive AdKit initialization
public void initSdk()
{
    HIVEAdKit.Initialize(isSuccess =>
    {
        if (isSuccess)
            Debug.Log("AdKit SDK initialization successful!");
        else
            Debug.Log("AdKit SDK initialization failed!");
    });
}

使用回调

要使用回调函数,您必须调用 HIVEAdKit.InitPlugin 将 AdKitCallbackManager 注册为 GameObject。
在应用程序启动时在 Start 代码块中调用此方法。

using hive.adkit.daro;

void Start()
{
    HIVEAdKit.InitPlugin(); // Create game object for Hive AdKit callback registration
}

设置附加信息

您可以设置附加信息。实现代码如下:

using hive.adkit.daro;

[Serializable]
public class SendInfo 
{
    public int level;
    public int gold;
}

SendInfo addtionalInfo = new SendInfo();

public void SetAdditionalInfo()
{
    addtionalInfo.level = 1;
    addtionalInfo.gold = 100;

    // Send as JSON Object format
    HIVEAdKit.SetAdditionalInfo(JsonUtility.ToJson(addtionalInfo));
}

奖励广告功能

提供奖励广告功能,当观看广告达到一定时间或更长时间时给予奖励。一次只能加载一个广告。实现奖励广告功能的代码如下:

using hive.adkit.daro;

private HIVEAdKit.RewardVideo RewardVideoAd = null;

public void InitRewardedAd()
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                    .OnAdLoaded(OnRewardVideoAdLoadedCB)
                                                    .OnAdOpening(OnRewardVideoAdOpeningCB)
                                                    .OnAdClosed(OnRewardVideoAdClosedCB)
                                                    .OnAdFailed(OnRewardVideoAdFailedCB)
                                                    .OnAdReward(OnRewardVideoAdRewardCB)
                                                    .OnAdClick(OnRewardVideoAdClickCB)
                                                    .OnAdPaidEvent(OnRewardVideoAdPaidEventCB)
                                                    .Build();

    // Create RewardVideoAd Instance
    RewardVideoAd = HIVEAdKit.RewardVideo.Initialize(rewardVideoUnitId, eventHandlers);
}

public void LoadRewardedAd()
{
    // Load RewardVideoAd
    HIVEAdKit.RewardVideo.Load(RewardVideoAd, "Unity-RewardVideo-Load-AdPlacementInfo");
}

public void ShowRewardedAd()
{
    // Show RewardVideoAd
    if( HIVEAdKit.RewardVideo.IsLoaded(RewardVideoAd) ) {
        HIVEAdKit.RewardVideo.Show(RewardVideoAd, "Unity-RewardVideo-Show-AdPlacementInfo");
    }
}

public void DestroyRewardedAd()
{
    // Destroy RewardVideoAd
    HIVEAdKit.RewardVideo.Destroy(RewardVideoAd);
    RewardVideoAd = null;
}

插屏广告功能

提供占据整个屏幕的插屏广告功能。实现代码如下:

using hive.adkit.daro;

private HIVEAdKit.Interstitial InterstitialAd = null;

public void InitRewardedAd(string unitId)
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                .OnAdLoaded(OnInterstitialAdLoadedCB)
                                                .OnAdOpening(OnInterstitialAdOpeningCB)
                                                .OnAdClosed(OnInterstitialAdClosedCB)
                                                .OnAdFailed(OnInterstitialAdFailedCB)
                                                .OnAdClick(OnInterstitialAdClickCB)
                                                .OnAdPaidEvent(OnInterstitialAdPaidEventCB)
                                                .Build();

    // Create InterstitialAd Instance                                               
    InterstitialAd = HIVEAdKit.Interstitial.Initialize(unitId, eventHandlers);
}

public void LoadInterstitialAd()
{
    // Load InterstitialAd
    HIVEAdKit.Interstitial.Load(InterstitialAd, "Unity-Interstitial-Load-AdPlacementInfo");
}

public void ShowInterstitialAd()
{
    // Show InterstitialAd
    if( HIVEAdKit.Interstitial.IsLoaded(InterstitialAd) ) {
        HIVEAdKit.Interstitial.Show(InterstitialAd, "Unity-Interstitial-Show-AdPlacementInfo");
    }
}

public void DestroyInterstitialAd()
{
    // Destroy InterstitialAd
    HIVEAdKit.Interstitial.Destroy(InterstitialAd);
    InterstitialAd = null;
}

提供占据屏幕部分的横幅广告功能。您可以通过输入 BannerPosition 来调整横幅的位置到屏幕的顶部或底部。
横幅广告不会接收 OnAdClosed() 回调。

using hive.adkit.daro;

private HIVEAdKit.Banner BannerAd = null;

public void InitBannerAd(string unitId)
{
    // Set Event Callback
    EventHandlers eventHandlers = new EventHandlers.Builder()
                                                .OnAdLoaded(OnBannerAdLoadedCB)
                                                .OnAdFailed(OnBannerAdFailedCB)
                                                .OnAdClick(OnBannerAdClickCB)
                                                .OnAdPaidEvent(OnBannerAdPaidEventCB)
                                                .Build();

    BannerAd = HIVEAdKit.Banner.Initialize(unitId, BannerPosition.Bottom, eventHandlers);
}

public void LoadBannerAd()
{
    // Automatic Load & Show BannerAd
    HIVEAdKit.AdaptiveBanner.Load(BannerAd, "Unity-AdaptiveBanner-Load-AdPlacementInfo");
}

public void DestroyBannerAd()
{
    // Destroy BannerAd
    HIVEAdKit.Banner.Destroy(BannerAd);
    BannerAd = null;
}