跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.cloudx.io/llms.txt

Use this file to discover all available pages before exploring further.

npm CloudX React Native SDK 可让您通过横幅、MREC、插页式和激励视频广告在 iOS 和 Android 上实现 React Native 应用的变现。支持新架构 (Fabric) 和旧架构 (Paper)。

手动安装

要求 React Native 0.70+、React 18.0+、iOS 13.0+、Android API 23+。
npm install cloudx-react-native

iOS 设置

ios/Podfile 中添加广告网络适配器 Pod:
target 'YourApp' do
  # ... 现有配置 ...

  # CloudX 广告网络适配器(按需添加)
  pod 'CloudXMetaAdapter', '~> 3.4.0'       # Meta Audience Network >= 6.15.1, < 7.0
  pod 'CloudXVungleAdapter', '~> 3.4.0'     # VungleAds >= 7.4.0, < 8.0
  pod 'CloudXInMobiAdapter', '~> 3.4.0'     # InMobiSDK >= 11.0.0, < 12.0
  pod 'CloudXMintegralAdapter', '~> 3.4.0'  # MintegralAdSDK ~> 8.0
  pod 'CloudXUnityAdsAdapter', '~> 3.4.0'   # UnityAds >= 4.17.0, < 5.0
  pod 'CloudXMagniteAdapter', '~> 3.4.0'    # MagniteSDK ~> 1.0.0
  pod 'CloudXMolocoAdapter', '~> 3.4.0'     # MolocoSDKiOS ~> 4.6.0
  pod 'CloudXVerveAdapter', '~> 3.4.0'      # HyBid = 3.8.0
  pod 'CloudXRenderer', '~> 3.4.0'          # CloudX 测试广告
end
然后安装 Pod:
cd ios && pod install
CloudXCore Pod 作为 cloudx-react-native npm 包的依赖项自动包含。您只需添加所需的适配器 Pod。

App Transport Security

如果您的广告使用 HTTP URL,请在 Info.plist 中添加以下内容:
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>

Android 设置

android/app/build.gradle 中添加 CloudX SDK 和适配器依赖:
dependencies {
    // CloudX Android SDK
    implementation "io.cloudx:sdk:4.1.0"

    // 广告网络适配器(按需添加)
    implementation "io.cloudx:adapter-googlewaterfall:23.6.0.0"   // Google Mobile Ads SDK 23.6.0
    implementation "io.cloudx:adapter-inmobi:11.2.0.0"            // InMobi SDK 11.2.0
    implementation "io.cloudx:adapter-magnite:1.0.0.0"            // Magnite Ads SDK 1.0.0
    implementation "io.cloudx:adapter-meta:6.21.0.1"              // Meta Audience Network 6.21.0
    implementation "io.cloudx:adapter-mintegral:17.1.51.0"        // Mintegral SDK 17.1.51
    implementation "io.cloudx:adapter-moloco:4.8.0.0"             // Moloco SDK 4.8.0
    implementation "io.cloudx:adapter-unityads:4.17.0.0"          // Unity Ads SDK 4.17.0
    implementation "io.cloudx:adapter-verve:3.8.1.0"              // Verve HyBid SDK 3.8.1
    implementation "io.cloudx:adapter-vungle:7.7.3.0"             // Vungle SDK 7.7.3
}
至少需要一个适配器才能投放广告。
如果集成 Mintegral 适配器,还需要在 android/build.gradle 中声明其 Maven 仓库:
allprojects {
    repositories {
        maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
    }
}

初始化

在加载任何广告之前初始化 SDK:
import { CloudX, CloudXLogLevel } from 'cloudx-react-native';

// 可选:启用详细日志(仅限开发环境)
CloudX.setMinLogLevel(CloudXLogLevel.VERBOSE);

// 使用您的应用密钥初始化
const result = await CloudX.initialize('YOUR_APP_KEY');
if (result.success) {
    console.log('CloudX 初始化完成');
} else {
    console.error('CloudX 初始化失败:', result.message);
}
CloudX.initialize() 返回 CloudXInitializationResult,包含:
  • success: boolean — 初始化是否成功
  • message?: string — 附加详情,失败时填充
其他初始化工具方法:
const initialized = await CloudX.isInitialized();
const version = await CloudX.getVersion();
const tablet = await CloudX.isTablet();

广告格式

CloudX React Native 支持横幅、MREC、插页式和激励视频广告集成。具体实现请参阅对应的广告格式指南:

横幅和 MREC 广告

创建程序化叠加展示广告位,并可控制刷新。

插页式广告

加载并展示全屏插页式广告位。

激励视频广告

在用户完成激励视频观看后发放奖励。

广告信息 (CloudXAdInfo)

大多数广告事件回调都会收到 CloudXAdInfo 对象:
属性类型描述
adUnitIdstring广告单元 ID
adFormatstring广告格式:BANNERMRECINTERSTITIALREWARDED
networkNamestring胜出广告网络名称
networkPlacementstring | null广告网络侧的 placement ID
placementstring | null集成侧设置的自定义 placement
revenuenumber美元收入值
adValuesRecord<string, string>SDK 提供的广告元数据,可用于 Trusted Arbiter 等功能

错误处理

所有 SDK 错误都会在回调或 rejected promise 中以错误对象返回:
属性类型描述
codeCloudXErrorCode错误类别
messagestring | null人类可读的错误描述

错误码类别

范围类别常见错误码
0通用internalError
100-199网络networkErrornetworkTimeoutnetworkNoConnection
200-299初始化notInitializedsdkDisabledinvalidAppKey
300-399广告加载noFillinvalidAdUnitadsDisabled
400-499展示adNotReadyadAlreadyShowing
600-699适配器adapterNoFilladapterTimeout
完整错误码列表请参阅 CloudXErrorCode 导出。

高级功能

调试日志

import { CloudX, CloudXLogLevel } from 'cloudx-react-native';

// 启用详细日志(在 initialize 之前调用)
CloudX.setMinLogLevel(CloudXLogLevel.VERBOSE);

// 可用级别: VERBOSE, DEBUG, INFO, WARN, ERROR, NONE
日志级别: VERBOSE < DEBUG < INFO < WARN < ERROR < NONE 原生 SDK 日志会出现在 iOS 和 Android 平台日志中。JavaScript 侧调用和事件处理也可以通过应用常规的 React Native 日志记录。

展示级收入追踪

在任意广告格式上设置 addAdRevenuePaidListener 回调即可接收展示级收入事件。CloudXAdInfo 对象包含美元收入值和胜出广告网络名称。
CloudXInterstitialAd.addAdRevenuePaidListener((adInfo) => {
    trackRevenue(adInfo.revenue, adInfo.networkName, adInfo.adUnitId);
});
适用于所有 React Native 广告格式:横幅、MREC、插页式和激励视频。

测试模式

测试模式通过设备白名单由服务端控制,这样可以更安全、更可控地指定哪些设备接收测试广告。 启用测试模式:
  1. 启用详细日志后初始化 SDK。
  2. 在 iOS 或 Android 平台日志中查找您的设备广告 ID。
  3. 将广告 ID 添加到 CloudX 服务端控制台的设备白名单。
注意: 测试模式由服务端决定,因此无需在开发和生产构建之间修改代码。

隐私合规

CloudX SDK 通过读取平台存储(iOS 上的 NSUserDefaults、Android 上的 SharedPreferences)中的标准 IAB 隐私字符串来支持 GDPR 和 CCPA 隐私合规。这些值通常由您的同意管理平台 (CMP) 自动设置,如 Google UMP、OneTrust 或 Sourcepoint。

工作原理

原生 SDK 会自动检测用户位置并读取同意信号:
  1. 欧盟用户 (GDPR):根据 IAB 全球供应商列表 检查 TCF v2 目的 1 和 2 的同意和供应商同意(CloudX 供应商 ID:1510
  2. 美国用户 (CCPA):检查销售/共享退出信号
  3. 其他地区:不应用限制
当同意被拒绝或用户选择退出时,SDK 会从广告请求中删除个人身份信息:
  • 广告 ID (IDFA/GAID) 被清除
  • 地理坐标(经纬度)被删除
  • 用户键值对不发送
  • 哈希用户 ID 被排除

支持的隐私密钥

标准描述
IABGPP_HDR_GppStringGPP全球隐私平台字符串(现代)
IABGPP_GppSIDGPP部分 ID(例如,“2” 代表欧盟,“7” 代表美国国家,“8” 代表美国加州)
IABTCF_TCStringTCF v2GDPR 同意字符串(传统)
IABTCF_gdprAppliesTCF v2GDPR 是否适用(1 = 是,0 = 否)
IABUSPrivacy_StringUS PrivacyCCPA 隐私字符串(传统,例如 “1YNN”)
注意:当 GPP(现代标准)和传统 TCF/US Privacy 字符串同时存在时,SDK 优先使用 GPP。

手动隐私 API

如果您自行管理用户同意(不使用 CMP),可以直接设置 GDPR 和 CCPA 隐私状态。这些方法可以在 SDK 初始化之前或之后调用。
import { CloudX } from 'cloudx-react-native';

// GDPR 同意:true、false 或 null(回退到 CMP)
CloudX.setHasUserConsent(true);

// CCPA do-not-sell:true、false 或 null(回退到 CMP)
CloudX.setDoNotSell(true);
当手动设置值和 CMP 信号同时存在时,CMP 信号(GPP/TCF/US Privacy)优先。手动设置值在未集成 CMP 时作为回退使用。

用户定向

import { CloudX } from 'cloudx-react-native';

// 设置哈希用户 ID 用于定向
CloudX.setHashedUserID('hashed-user-id');

// 设置自定义用户键值对
CloudX.setUserKeyValue('age', '25');
CloudX.setUserKeyValue('gender', 'male');
CloudX.setUserKeyValue('location', 'US');

// 设置自定义应用键值对
CloudX.setAppKeyValue('app_version', '1.0.0');
CloudX.setAppKeyValue('user_level', 'premium');

// 清除所有自定义键值对
CloudX.clearAllKeyValues();

App Tracking Transparency (iOS)

在 iOS 14+ 上请求跟踪授权:
import { requestTrackingAuthorization, getTrackingAuthorizationStatus, CloudXATTStatus } from 'cloudx-react-native';

const status = await requestTrackingAuthorization();
if (status === CloudXATTStatus.AUTHORIZED) {
    console.log('跟踪已授权');
}
CloudX.initialize() 之前调用 requestTrackingAuthorization() 以获得最佳广告定向效果。
ATT 状态值:AUTHORIZEDDENIEDRESTRICTEDNOT_DETERMINEDNOT_REQUIRED 在 Android 或 iOS < 14 上,requestTrackingAuthorization() 返回 NOT_REQUIRED

可视化调试

启用可视化调试覆盖层以查看广告单元边界和网络信息:
CloudX.setVisualDebuggingEnabled(true);

支持

如需支持,请联系 mobile@cloudx.io