激励视频广告:展示与发奖是两回事
广告 API 能调用,不代表账号有对应广告位;广告展示出来,也不代表玩家满足奖励条件。先定义“什么算成功”,再写按钮逻辑。
奖励流程
微信官方类型定义说明小游戏激励视频对象有全局单例语义,load() 与 show() 返回 Promise,关闭结果中的 isEnded 表示完整观看情况。不要在每个奖励按钮上各自无限创建监听并重复发奖。
关键分支都要有
| 事件 | 含义 | 处理 |
|---|---|---|
| 创建/加载失败 | 配置、网络或库存等问题 | 恢复按钮,不扣除奖励资格 |
| show 成功 | 展示已开始 | 等待关闭,不立即发奖 |
| 关闭且明确完整观看 | 满足观看条件 | 进入一次性奖励确认 |
| 提前关闭或信息不明确 | 未确认满足条件 | 不发奖,允许正常继续游戏 |
| 重复触发/回调 | 竞态或监听残留 | 以流程状态和奖励标识去重 |
涉及有价值资产时,还需设计服务端校验与平台可用的验证方案。客户端 isEnded 分支是 UI 逻辑的一部分,不是天然防作弊证明。
生命周期要覆盖广告对象
给 onClose 和 onError 注册稳定函数引用,在拥有者退出时用对应 offClose、offError 解除。由于广告可能跨场景,应明确由哪个应用级模块管理,避免新旧场景同时认为自己拥有奖励。
无合适广告不是稀奇异常。应该允许玩家继续游戏或稍后重试,不要让一次无库存把流程永久卡住。
给 AI 一份可实现规格
玩家主动点击后展示激励视频;同一时刻仅允许一个广告流程。
只有关闭回调明确完整观看,才提交本次奖励确认。
取消、加载失败、展示失败、无广告都恢复 UI,不发奖励。
回调去重;切场景解除监听;浏览器只演示带“模拟”标识的流程。
先列平台资质、广告位配置与真机验收,再写适配代码。
依据:微信激励视频创建、关闭事件、腾讯官方小游戏类型与注释。本章不承诺任何账号的广告资格、库存或收入。