跳到主要内容

商业化接入与激励广告状态机

级别:按需学习。平台资料核实:2026-10-31。 先判断商业化怎样影响体验,再接 SDK。商业方法参考 PM:变现和广告与支付边界。真实广告位和支付能力需要当前账号条件支持。

激励广告是一项有结果的尝试​

idle → loading → showing → completed → 奖励一次
├→ closed_early → 无奖励
└→ failed → 可重试或继续

每次尝试关联业务场景、局 ID 和奖励标识。只允许当前尝试处理自己的结果;展示中禁用重复请求,退出或换局后拒绝过期结果。

奖励的必要条件​

微信关闭事件里的 isEnded === true 表示完整观看结果。新教学示例不把缺失结果或普通前台恢复视为完成。一次广告尝试最多奖励一次;有价值的奖励还需服务端可信验证与幂等,客户端布尔值不能解决作弊。

// 设计片段,不是完整广告服务。
function onAdClosed(result: {isEnded?: boolean} | undefined) {
if (attempt.phase !== 'showing') return;
attempt.phase = 'finished';
if (result?.isEnded === true) {
grantOnce(attempt.rewardId); // 项目实现去重、局归属与可信校验
}
}

attempt 和 grantOnce 是项目应实现的依赖。不能直接复制该片段就认为完成真实广告集成。

对失败和生命周期负责​

广告服务集中创建实例和监听,组件退出时只解除自己持有的回调。show() 可能失败,按官方流程处理加载与再次展示,限制重试;无填充、网络失败、提前关闭都不阻断正常重开。

当前创建 API 还存在多例选项,不应把“所有情况下只能有一个实例”当成恒定规则。首作集中管理一个广告服务即可,避免场景反复创建造成监听叠加。

放在哪里比接通更重要​

例如在失败结算后提供自愿机会,必须清楚说明奖励与可用条件。不要让主流程伪装成广告按钮,也不要在没有得到成功结果前先扣资源或发奖励。

收入评估保留展示率、完成率、有效收入与玩家退出等指标。不要用某个公开 eCPM 数字预测自己的项目收益;经营假设与敏感性分析参考 PM:单位经济。

完成标准:开发环境检查加载失败、重复请求、提前关闭、完整观看、换局和重复回调;真实账号真机结果单独记录。

参考:激励广告指南、createRewardedVideoAd、onClose。