Tối ưu hóa việc tải paywall trong Kotlin Multiplatform SDK

Một lần tải paywall đáng tin cậy trên Kotlin Multiplatform cần đảm bảo ba điều: hiển thị nhanh, trả về đúng paywall theo đối tượng mục tiêu, và xử lý dự phòng mượt mà 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 sau đây giả định Adapty.activate()Adapty.identify() đã được thực thi xong. Xem Thứ tự gọi trong Kotlin Multiplatform SDK.

Các hướng dẫn dưới đây 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) — mọi quy tắc đều áp dụng không thay đổi.

Quy tắc và lưu ý

Nên làmKhông nên làmLý do
Fetch placement mà bạn sắp hiển thị.Prefetch tất cả các placement đồng thời khi khởi chạy.Bulk prefetch chặn main thread và gây ra màn hình đen trong suốt quá trình tải.
Fetch getPaywall sau khi attribution có thời gian để resolve — ví dụ: 1–2 giây sau khi activate hoặc sau khi setOnProfileUpdatedListener được kích hoạt.Gọi getPaywall khi khởi chạy ứng dụng.Attribution chưa được xử lý xong. Paywall sẽ resolve theo đối tượng mặc định và âm thầm bỏ qua các phân khúc cũng như cá nhân hóa ASA.
Đặt loadTimeout và cấu hình paywall dự phòng cho mỗi placement.Chờ getPaywall vô thời hạn.Nếu không có timeout, người dùng với 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 họ sẽ đóng ứng dụng.

Xem Tải paywall và sản phẩm để tham khảo các tham số fetchPolicyloadTimeout, 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 thường xuyên kém (vùng nông thôn, trên phương tiện giao thông, các khu vực bị ảnh hưởng bởi định tuyến mạng):

  • Đặt fetchPolicy = AdaptyPaywallFetchPolicy.ReturnCacheDataElseLoad 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 loadTimeout từ 3–5 giây và chấp nhận sử dụng paywall dự phòng khi hết thời gian chờ.
  • Đừng để hiển thị paywall phụ thuộc vào Adapty.getProfile(). Gọi getPaywall độc lập để một profile chậm không chặn giao diện người dùng.