---
title: "在 Capacitor SDK 中优化付费墙获取"
description: "可靠地获取 Adapty 付费墙：Capacitor 的时机、缓存与备用方案。"
---

在 Capacitor 中可靠地获取付费墙需要做到三点：快速渲染、返回针对目标受众的付费墙，以及在网络较慢时优雅降级。以下规则涵盖了实现这些目标所需的时机、缓存和备用方案。
:::tip
以下规则假定 `adapty.activate()` 和 `adapty.identify()` 已执行完毕。详情请参阅 [Capacitor SDK 的调用顺序](capacitor-sdk-call-order)。
:::
## 规则与注意事项 \{#rules-and-pitfalls\}
| 建议做法 | 不建议做法 | 原因 |
|---|---|---|
| 获取即将展示的版位。 | 在启动时并发预取所有版位。 | 批量预取会阻塞主线程，导致启动时出现黑屏。 |
| 在归因有机会解析后再调用 `getPaywall`，例如在 `activate` 之后等待 1–2 秒，或等 `onLatestProfileLoad` 监听器触发后再调用。 | 在 `App.tsx` 的应用启动阶段调用 `getPaywall`。 | 此时归因尚未到达，付费墙会基于默认目标受众进行解析，悄无声息地绕过市场细分和 ASA 个性化设置。 |
| 设置 `loadTimeoutMs`，并为每个版位配置[备用付费墙](fallback-paywalls)。 | 无限等待 `getPaywall` 返回。 | 没有超时限制时，网络条件差的用户会看到空白屏幕直到网络恢复——或者直接关闭应用。 |
请参阅[获取付费墙和产品](fetch-paywalls-and-products-capacitor)了解 `fetchPolicy` 和 `loadTimeoutMs` 参数说明，以及[版位](placements)了解如何选择合适的版位。
## 针对弱网环境的优化 \{#tune-for-poor-connectivity\}

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

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