Skip to content

测试应用与测试广告位 ​

对接期间请使用独立的测试应用(Test App)与测试广告位,与正式应用完全隔离。测试广告位保证有广告填充,用于验证接入是否正确。

测试与正式的差别只有 apiKey 和广告位

测试应用与正式应用使用相同的 Bundle ID,appId 与 endpoint 同样无需切换 —— 上线时只要把 apiKey 和各广告位的 adUnitId 换成正式应用的值即可,代码本身不用改。所以本页申请到的凭证配合各端已有的接入示例就能完成全部测试,无需另写测试代码。

整体流程 ​

创建测试应用(勾选 Test app)
        ↓
获取该应用的 API Key
        ↓
为该应用创建测试广告位(按需要测试的广告类型各建一个)
        ↓
复制 adUnitId,填入代码按广告类型逐个验证
        ↓
上线前替换为正式应用的 apiKey / adUnitId

第一步:创建测试应用 ​

进入 Publisher Platform → Apps,点击右上角 + New App,在弹窗中填写应用信息:

字段说明
OS应用平台,Android / iOS
Published Status上架状态,测试应用选 Unpublished 即可
Bundle ID应用包名,如 com.android.apptest。请填写与正式应用相同的包名 —— 测试应用与正式应用共用同一个 Bundle ID
App Name应用名称,建议带上 test 前缀便于与正式应用区分
Icon URL应用图标地址,可选
Test app必须勾选,勾选后该应用下的广告位才是测试广告位

填写完成后点击 Create App。

务必勾选 Test app

未勾选时创建出的是正式应用,其广告位不保证填充,且会产生真实的计费与风控数据。创建后可在应用列表的 TEST APP 列确认开关为开启状态。

创建测试应用

第二步:获取 API Key ​

应用创建成功后,页面顶部提示 App created. An API key was generated automatically. —— API Key 已自动生成,无需单独申请。

在应用列表中找到刚创建的应用,点击 API KEY 列的钥匙图标,在弹窗中点击 Copy 复制。

获取 API Key

该值对应初始化参数中的 apiKey,测试与正式各有一份:

kotlin
NovvySDK.initialize(
    appId    = "...",                    // 测试与正式一致,无需切换
    apiKey   = "第二步复制到的 API Key",   // 测试与正式不同
    endpoint = "https://bid.novvy.ai",   // 测试与正式一致,无需切换
    ...
)

API Key 属于密钥

请勿提交到公开代码仓库、不要写在客户端明文配置以外的地方共享。如需轮换请联系 Novvy 技术对接人。

第三步:创建测试广告位 ​

进入 Publisher Platform → Ad Units,点击右上角 + Create ad unit:

字段说明
Select app选择第一步创建的测试应用,下拉项末尾带 TEST 标记(如 apptest · Android · TEST)
Ad unit name广告位名称,自行命名,建议与广告类型对应,如 test-rewarded
Format广告类型,见下方对照表

点击 Create 完成创建。需要测试哪些广告类型,就各创建一个对应 Format 的广告位。

创建测试广告位

第四步:复制 adUnitId ​

在广告位列表中找到刚创建的广告位,点击 AD UNIT ID 列右侧的复制图标即可复制。

复制 adUnitId

adUnitId 是含斜杠的完整字符串

形如 app_ur74czju4q4l/9858822100,请用复制按钮取得完整值,不要只取斜杠后的数字部分。

广告类型对照与 ID 登记 ​

后台 Format 与 SDK 类的对应关系如下。建议创建完成后把 ID 填入本表,作为后续填写代码的底稿:

后台 FormatSDK 类你的测试 adUnitId
RewardedNovvyRewardedAd
InterstitialNovvyInterstitialAd
Scroll PlacementNovvyScrollAd
Mid PlacementNovvyMidAd
End PlacementNovvyEndAd
Pause PlacementNovvyPauseAd
Story PlacementNovvyInsertAd

第五步:按广告类型接入并验证 ​

拿到测试凭证后,直接使用各端接入文档中的示例代码,把 adUnitId 替换为上表中对应的测试广告位 ID 即可开始测试 —— 测试代码与正式代码完全一致,无需另写。

广告类型AndroidiOSFlutterReact Native
激励视频接入接入接入接入
插屏接入接入接入接入
信息流滑动位接入接入接入接入
中插接入接入接入接入
片尾接入接入接入接入
暂停卡接入接入接入接入
叙事植入接入接入接入接入

初始化与上下文设置见各端的「初始化 SDK」与「用户与内容上下文」。

测试环境说明 ​

测试广告位保证填充

测试应用下的广告位必定有广告返回。因此测试环境中出现 NovvyError.NoFill,一定是接入问题(凭证填错、未初始化就发起请求、正式应用与测试广告位混用等),而不是「正常无填充」。

  • 内容上下文可随意填写 —— 正式环境中短剧场景需要正确的 seriesName / episodeNumber 才有填充;测试环境不做此校验,随意填写也能拿到广告。设置方式仍见用户与内容上下文。
  • endpoint 与正式环境一致,无需切换地址。

切换到正式环境 ​

测试完成后,只需把 apiKey 与各广告位的 adUnitId 替换为正式应用的对应值,代码无需改动,也无需重新申请权限:

配置项切换到正式环境时
Bundle ID / appId不变 —— 测试应用与正式应用共用同一个 Bundle ID
endpoint不变
apiKey替换为正式应用的 API Key
adUnitId替换为正式应用下对应广告位的 ID

建议把 apiKey 与各广告位 ID 集中在一处配置、按构建类型切换,避免上线时遗漏:

kotlin
object NovvyConfig {
    private val isTest = BuildConfig.DEBUG
    val apiKey       = if (isTest) "test_api_key"         else "prod_api_key"
    val rewarded     = if (isTest) "test_rewarded_id"     else "prod_rewarded_id"
    val interstitial = if (isTest) "test_interstitial_id" else "prod_interstitial_id"
    // ...其余广告位同理
}
swift
enum NovvyConfig {
#if DEBUG
    static let apiKey       = "test_api_key"
    static let rewarded     = "test_rewarded_id"
    static let interstitial = "test_interstitial_id"
#else
    static let apiKey       = "prod_api_key"
    static let rewarded     = "prod_rewarded_id"
    static let interstitial = "prod_interstitial_id"
#endif
    // ...其余广告位同理
}
dart
class NovvyConfig {
  static const _isTest = kDebugMode;
  static const apiKey       = _isTest ? 'test_api_key'         : 'prod_api_key';
  static const rewarded     = _isTest ? 'test_rewarded_id'     : 'prod_rewarded_id';
  static const interstitial = _isTest ? 'test_interstitial_id' : 'prod_interstitial_id';
  // ...其余广告位同理
}
ts
export const NovvyConfig = {
  apiKey:       __DEV__ ? 'test_api_key'         : 'prod_api_key',
  rewarded:     __DEV__ ? 'test_rewarded_id'     : 'prod_rewarded_id',
  interstitial: __DEV__ ? 'test_interstitial_id' : 'prod_interstitial_id',
};

上线前请确认:apiKey 已替换为正式应用的 API Key,且代码中不再引用任何测试广告位 ID。

本文档仅供技术对接使用,请勿外传。