跳转到主要内容
CloudX Unity SDK 使您能够在 iOS 和 Android 上通过横幅、MREC、插屏和激励广告实现 Unity 游戏变现。

安装

CloudX Unity SDK 以 .unitypackage 文件形式分发。
  1. GitHub Releases 下载最新的 CloudXSdk-4.1.7.unitypackage
  2. 在 Unity 中,转到 Assets > Import Package > Custom Package
  3. 选择下载的 .unitypackage 文件
  4. 提示时导入所有资源
External Dependency Manager 将自动解析 Android 和 iOS 依赖。

广告网络适配器

CloudX SDK 需要广告网络适配器来投放广告。在 Assets/CloudXSdk/Editor/CloudXDependencies.xml 中取消注释相应行即可启用。各适配器的详细设置(包括 iOS Info.plist 要求),请参阅适配器章节。
SDK 至少需要一个适配器才能投放广告。

初始化

在加载任何广告之前初始化 SDK。您可以在初始化之前选择性地配置用户和应用属性。
using CloudX;
using UnityEngine;

public class MyGameManager : MonoBehaviour
{
    void Start()
    {
        InitializeCloudX();
    }

    void InitializeCloudX()
    {
        // 初始化前配置(可选)
        CloudXSdk.SetHashedUserId("hashed-user-id");
        CloudXSdk.SetUserKeyValue("user_level", "premium");
        CloudXSdk.SetAppKeyValue("app_version", "1.0.0");

        // 在初始化之前订阅回调
        CloudXInitializationCallbacks.OnSdkInitializedEvent += OnSdkInitialized;
        CloudXInitializationCallbacks.OnSdkInitializationFailedEvent += OnSdkInitializationFailed;

        // 初始化 SDK
        var config = CloudXInitializationConfiguration.Create("YOUR_APP_KEY").Build();
        CloudXSdk.Initialize(config);
    }

    private void OnSdkInitialized(CloudXSdkConfiguration config)
    {
        Debug.Log("CloudX SDK 初始化成功");
        // 现在可以加载广告
    }

    private void OnSdkInitializationFailed(CloudXError error)
    {
        Debug.LogError($"SDK 初始化失败: {error}");
    }
}
在调用 Initialize() 之前订阅 CloudXInitializationCallbacks 事件以接收初始化结果。

广告格式

CloudX Unity SDK 支持横幅、MREC、插屏和激励广告集成。请查阅各格式专属指南了解实现详情:

横幅广告和 MREC 广告

在固定屏幕位置展示广告,支持可选刷新控制。

插屏广告

加载并展示全屏插屏广告。

激励广告

用户完成激励广告观看后给予奖励。

高级功能

隐私控制

如果您的应用没有使用 CMP,可以在初始化之前手动覆盖隐私状态。
// 在 Initialize() 之前可选地设置手动隐私覆盖
CloudXSdk.SetHasUserConsent(true);
CloudXSdk.SetDoNotSell(false);

// 传入 null 可清除手动覆盖,重新交由 CMP 或 IAB 信号决定
CloudXSdk.SetHasUserConsent(null);
CloudXSdk.SetDoNotSell(null);
  • SetHasUserConsent(bool?) 用于设置 GDPR 同意覆盖。
  • SetDoNotSell(bool?) 用于设置 CCPA do-not-sell 覆盖。
  • 如果存在 IAB 同意或隐私信号,它们会优先于这些手动覆盖值。

iOS ATT 使用说明文案

从 Unity SDK 2.2.4 开始,如果您的应用尚未在 Info.plist 中定义 NSUserTrackingUsageDescription,CloudX 的 iOS 后处理步骤会自动添加该字段。
  • 默认值:This uses device info for more personalized ads and content
  • 如果您已经提供了 NSUserTrackingUsageDescription,CloudX 会保留您现有的值不变。
  • 如果您希望展示自定义的 ATT 提示文案,请在 Info.plist 中显式设置自己的值。

用户定向

配置用户和应用属性以获得更好的广告定向。在 Initialize 之前调用这些方法。
// 设置哈希用户 ID
CloudXSdk.SetHashedUserId("hashed-user-id-12345");

// 设置用户级键值对
CloudXSdk.SetUserKeyValue("user_level", "premium");
CloudXSdk.SetUserKeyValue("age_group", "25-34");

// 设置应用级键值对
CloudXSdk.SetAppKeyValue("app_version", "1.0.0");
CloudXSdk.SetAppKeyValue("build_number", "123");

// 清除所有自定义键值对
CloudXSdk.ClearAllKeyValues();

收入追踪

所有广告格式都通过 OnAdRevenuePaid 事件提供收入回调。CloudXAd 对象包含收入信息:
CloudXAdsCallbacks.Banner.OnAdRevenuePaid += (ad) =>
{
    Debug.Log($"收入: ${ad.Revenue:F4}");
    Debug.Log($"广告网络: {ad.NetworkName}");
    Debug.Log($"广告单元: {ad.AdUnitId}");
    Debug.Log($"广告格式: {ad.AdFormat}");
    Debug.Log($"广告位: {ad.Placement}");
    Debug.Log($"网络广告位: {ad.NetworkPlacement}");

    // 在您的分析中追踪收入
    TrackRevenue(ad.Revenue, ad.NetworkName);
};