Tối ưu hóa việc tải paywall trong Capacitor SDK
Một lần tải paywall đáng tin cậy trên Capacitor cần đảm bảo ba điều: hiển thị nhanh, trả về paywall đúng với đối tượng mục tiêu, và tự động chuyển sang phương án dự phòng khi mạng chậm. Các quy tắc dưới đây bao gồm thời điểm, bộ nhớ đệm và các mẫu dự phòng để đạt được điều đó.
Các quy tắc dưới đây giả định rằng adapty.activate() và adapty.identify() đã hoàn thành. Xem Thứ tự gọi trong Capacitor SDK.
Nội dung bên dưới sử dụng tên phương thức của v3. Trong SDK v4, getPaywall được đổi tên thành getFlow (xem hướng dẫn migration) — tất cả các quy tắc đều áp dụng như nhau.
Quy tắc và lưu ý
| Nên làm | Không nên làm | Lý do |
|---|---|---|
| Fetch placement ngay trước khi hiển thị. | Prefetch tất cả placement cùng lúc khi khởi động. | Bulk prefetch chặn main thread và gây màn hình đen trong suốt thời gian đó. |
Fetch getPaywall sau khi attribution đã có cơ hội resolve — ví dụ: 1–2 giây sau activate hoặc sau khi listener onLatestProfileLoad kích hoạt. | Gọi getPaywall khi khởi động app trong App.tsx. | Attribution chưa kịp cập nhật. Paywall sẽ resolve theo đối tượng mặc định và âm thầm bỏ qua các phân khúc cùng tính năng cá nhân hóa ASA. |
Đặt loadTimeoutMs và cấu hình paywall dự phòng cho mỗi placement. | Chờ getPaywall mãi không timeout. | Không có timeout, người dùng ở vùng kết nối kém sẽ thấy màn hình trắng cho đến khi mạng phục hồi — hoặc đóng app. |
Xem Tải paywall và sản phẩm để tham khảo tham số fetchPolicy và loadTimeoutMs, và Placements để chọn placement phù hợp. |
Tối ưu cho kết nối kém
Đối với các thị trường có kết nối kém thường xuyên (vùng nông thôn, khi di chuyển, các khu vực bị ảnh hưởng bởi định tuyến):
- Đặt
fetchPolicy: 'return_cache_data_else_load'cho mọi lần tải ngoại trừ lần đầu tiên. - Cấu hình paywall dự phòng cho mỗi placement trong Adapty Dashboard.
- Đặt
loadTimeoutMstừ 3000–5000 milliseconds và chấp nhận paywall dự phòng khi timeout kích hoạt. - Đừng chặn việc hiển thị paywall bằng
adapty.getProfile(). GọigetPaywallđộc lập để một profile chậm không cản trở giao diện.