跳转到内容

测试模式

测试模式不需要广告 SDK 或广告网络,就能跑通整条链路(记录、事件、带签名的回调、事件日志)。默认关闭。

终端窗口
npx @kasskeep/cli ads test-enable --id app_xxx

开启 testAds 后,SDK 调用测试接口而不是你的 provider:

Kasskeep.configure({ apiKey, baseUrl, appUserId, ads: { rewardedProvider, adUnits, testAds: __DEV__ } });
const r = await Kasskeep.ads.showRewarded({ adUnit: "revive", customData: "stage=3", testOutcome: "completed" });

底层调用(使用公钥):

POST /v1/ads/test/rewards
X-Kasskeep-Key: pk_...
{"app_user_id": "6f1c...", "ad_unit": "revive", "reward_type": "coins", "reward_amount": 10, "custom_data": "stage=3", "outcome": "completed"}
  • outcome:completed(默认)、skipped 或 failed。只有 completed 会产生 ad.reward。
  • network(可选):默认 test。设为 admob、applovin 或 levelplay 时,奖励会采用该广告网络的格式和已映射的广告位 id。其他值返回 400 unknown_ad_network。
  • 事件带 environment: "test" 和 platform: "test";交易 id 以 testad_ 开头。
  • 在默认的 reject 策略下,统一广告位名必须已映射(设置了 network 时,须在该广告网络下映射),否则返回 422 unknown_ad_unit。
  • 测试广告关闭时:403 test_ads_disabled。

返回 {status, reward_event_id, ad_reward}。

终端窗口
npx @kasskeep/cli ads simulate --id app_xxx --user <app_user_id> --ad-unit revive --reward-amount 10 --transaction-id replay-1 --network levelplay

用同一个 --transaction-id 运行两次,就能看到去重效果。

和测试商店一样,开启测试广告后,http://localhost:* origin 也能通过 CORS。