在 Capacitor SDK 中优化付费墙获取

在 Capacitor 中可靠地获取付费墙需要做到三点:快速渲染、返回针对目标受众的付费墙,以及在网络较慢时优雅降级。以下规则涵盖了实现这些目标所需的时机、缓存和备用方案。

以下规则假定 adapty.activate()adapty.identify() 已执行完毕。详情请参阅 Capacitor SDK 的调用顺序

规则与注意事项

建议做法不建议做法原因
获取即将展示的版位。在启动时并发预取所有版位。批量预取会阻塞主线程,导致启动时出现黑屏。
在归因有机会解析后再调用 getPaywall,例如在 activate 之后等待 1–2 秒,或等 onLatestProfileLoad 监听器触发后再调用。App.tsx 的应用启动阶段调用 getPaywall此时归因尚未到达,付费墙会基于默认目标受众进行解析,悄无声息地绕过市场细分和 ASA 个性化设置。
设置 loadTimeoutMs,并为每个版位配置备用付费墙无限等待 getPaywall 返回。没有超时限制时,网络条件差的用户会看到空白屏幕直到网络恢复——或者直接关闭应用。
请参阅获取付费墙和产品了解 fetchPolicyloadTimeoutMs 参数说明,以及版位了解如何选择合适的版位。

针对弱网环境的优化

对于网络状况持续较差的市场(如农村地区、交通途中、受路由影响的地区):

  • 除首次请求外,所有请求均设置 fetchPolicy: 'return_cache_data_else_load'
  • 在 Adapty 看板中为每个版位配置备用付费墙
  • loadTimeoutMs 设置为 3000–5000 毫秒,超时后接受备用付费墙。
  • 不要让付费墙的展示依赖于 adapty.getProfile() 的结果。将 getPaywall 独立调用,避免因用户画像加载缓慢而阻塞界面。