Tối ưu hóa việc tải paywall trong Flutter SDK
Một lần tải paywall đáng tin cậy trên Flutter cần đảm bảo ba điều: hiển thị nhanh, trả về đúng paywall theo đối tượng người dùng, và xử lý dự phòng khi mạng chậm. Các quy tắc dưới đây đề cập đến thời điểm, bộ nhớ đệm và các pattern dự phòng để đạt được điều đó.
Các quy tắc này giả định rằng Adapty().activate() và Adapty().identify() đã được giải quyết xong. Xem Thứ tự gọi trong Flutter SDK.
Các hướng dẫn dưới đây sử dụng tên phương thức v3. Trong SDK v4, getPaywall được đổi tên thành getFlow và kiểu fetch policy thành AdaptyFlowFetchPolicy — mọi quy tắc đều áp dụng không thay đổi.
Quy tắc và lưu ý
| Nên làm | Không nên làm | Lý do |
|---|---|---|
| Fetch placement bạn sắp hiển thị. | Prefetch tất cả placement đồng thời khi khởi động. | Bulk prefetch chặn main thread và gây màn hình đen trong thời gian burst. |
Fetch getPaywall sau khi attribution đã có thời gian xử lý — ví dụ, 1–2 giây sau activate hoặc sau khi didUpdateProfileStream kích hoạt. | Gọi getPaywall trong main() trước runApp. | Attribution chưa được xử lý xong. Paywall sẽ được resolve theo đối tượng mặc định và âm thầm bỏ qua các phân khúc cũng như ASA personalization. |
Đặt loadTimeout và cấu hình paywall dự phòng cho mỗi placement. | Chờ getPaywall vô thời hạn. | Không có timeout, người dùng có kết nối kém sẽ thấy màn hình trắng cho đến khi mạng phản hồi — hoặc họ sẽ đóng ứng dụng. |
Xem Tải paywall và sản phẩm để tham khảo thông số fetchPolicy và loadTimeout, 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 liên tục kém (khu vực nông thôn, phương tiện công cộng, vùng bị ảnh hưởng bởi định tuyến mạng):
- Đặt
fetchPolicy: AdaptyPaywallFetchPolicy.returnCacheDataElseLoadcho 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
loadTimeouttừ 3–5 giây và chấp nhận paywall dự phòng khi timeout xảy ra. - Không chặn việc hiển thị paywall bởi
getProfile(). GọigetPaywallđộc lập để một profile phản hồi chậm không làm tắc nghẽn giao diện.