phaser4-game-ad-integration
Phaser 4 AppLovin MAX 广告接入
适用范围与硬边界
本 Skill 只处理 Phaser 4 + TypeScript/Vite + Capacitor 移动项目的 Banner、插页与激励视频广告能力,聚合层固定使用 AppLovin MAX,接入实现固定使用 AppLovin 官方维护的 cordova-plugin-applovin-max,由 Capacitor 的 Cordova 兼容层加载。项目只在 TypeScript 侧建立业务门面和官方插件 API 适配,不自建 Android/iOS 广告插件,也不直接集成 MAX 原生 SDK。所有已配置广告位独立维护状态;插页与激励视频只在后台静默预加载,不在初始化阶段主动创建广告对象或视图,插件内部按需管理加载资源。插页与激励视频预加载成功以当前广告实例对象的就绪属性为准,loaded 回调和业务 phase 不能单独证明成功。全屏展示读取实例就绪属性与现有业务状态并立即返回;Banner 不预加载,只在业务请求展示时创建并加载;支持 Banner 且广告位启用、页面允许展示时,在页面首帧前先预留广告区域并完成 UI 布局,不等广告加载或展示。每个广告位独立维护加载失败计数、retry deadline 和至多一个重试 timer,但使用相同分类、退避、暂停和恢复规则。开始任何设计、实施或审查前,必须先读取唯一细则合同 AppLovin MAX 接入合同,并以其中的状态、时序、失败和合规规则为准。
- Phaser Web、浏览器预览和小游戏不直接调用 MAX,也不加载原生广告 SDK;广告能力在这些运行目标上必须是明确的
unsupported/no-op,调用后立即返回并继续游戏。 - iOS 与 Android 只使用 AppLovin 官方
cordova-plugin-applovin-max。实施前必须按官方 Cordova 集成文档和官方仓库核对插件版本、Capacitor Cordova 兼容层、Android Gradle 与 iOS 包管理器;不兼容时阻断并报告,不回退到社区插件、自建 Capacitor 原生插件或业务代码直连 MAX SDK。 - 本 Skill 不替项目自动配置 MAX 控制台、广告网络账号、商店元数据或发布渠道。SDK key 与 ad unit ID 按环境从受控构建配置注入官方插件适配层,不手写进业务源码、示例、日志或提交记录;广告网络账号凭证与 Ad Review key 不得进入 Web 代码或公开产物。
- 广告只在自然中断点尝试展示;调用方永不等待广告加载、网络请求或展示完成。不可展示时必须按广告位当前状态立即返回结果,不得阻塞场景切换、输入、主循环或结算流程。后台加载、加载失败和重试保持静默,不弹 Toast。
- 视频广告位在用户触发展示但当前不可用,或官方插件接受展示后回调
displayFailed时,通过统一 UI 层弹出一次“视频广告暂不可用,请稍后再试”Toast;不得由插件适配层直接操作 Phaser UI,也不得因重复回调重复提示。 - SDK 初始化与隐私流程独立推进:初始化调用、完成状态和失败重试均不等待隐私弹窗、CMP 或 ATT;隐私未决、失败或拒绝不阻塞 SDK 初始化。MAX 内建 Terms and Privacy Policy Flow 必须在初始化前显式关闭并核验同步后的有效原生配置;广告服务仍启用且继续调用 MAX initialize,不能通过禁用广告或跳过初始化实现关闭流程。隐私收集由独立任务通过项目采用的原生 CMP/Google UMP 与 ATT 入口处理,广告服务只消费真实隐私状态,并仅对广告加载与展示检查 privacy gate。SDK 初始化成功仍以官方插件真实完成回调为准,不能用请求受理或隐私结果代替。具体配置和能力边界以细则合同为准。
- 新 MAX 实例首次实际初始化前,适配器按统一入口的初始化请求先手动调用官方插件
setHasUserConsent(false),再调用initialize;同配置重复调用复用现有任务。hasUserConsent=false不等于禁止广告,不得据此返回privacy-pending/privacy-blocked、跳过 load/show、停止预加载或暂停加载重试。privacy gate 只表达尚未满足的其他实际适用请求条件,不以hasUserConsent === true作为广告准入条件;不得把该 MAX 配置当作用户已完成选择的回执或 AppsFlyer 的同意状态。 - Banner 不参与初始化预加载;首次请求展示时才创建原生视图并加载,调用立即返回。收到 loaded 且布局安全、业务仍请求可见时显示;创建或加载失败均保持隐藏并按同一独立退避持续重试;离开展示场景清除可见请求并取消重试,旧回调不得恢复创建或显示。不弹 Toast、不占用错误高度、不等待加载。
全局控制接入
$phaser4-game-workflow-control 是唯一的全局状态、风险门、任务范围和证据控制面。本领域可以在当前 Work Item、冻结的 Implementation Package、A 等级与路径范围内提出方案、审查现状并实施;所有计划、变更、测试证据和阻断项必须回到控制面登记和复核。任务内调整接口、路径或验证范围时同步更新 Work Item,不另建平行状态机。