Tối ưu hóa việc tải flow & paywall trong Unity SDK
Một lần tải flow hoặc paywall đáng tin cậy trên Unity cần đáp ứng ba yêu cầu: hiển thị nhanh, trả về biến thể phù hợp với đối tượng mục tiêu, và có phương án dự phòng hợp lý 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 này yêu cầu Adapty.Activate() và Adapty.Identify() đã được thực thi xong. Xem Thứ tự gọi trong Unity SDK.
Quy tắc và những lỗi thường gặp
| Nên làm | Không nên làm | Lý do |
|---|---|---|
| Fetch placement mà bạn chuẩn bị hiển thị. | Prefetch tất cả placement đồng thời khi khởi động. | Bulk prefetch chặn luồng chính và gây màn hình đen trong thời gian burst. |
Fetch GetFlow sau khi attribution đã có cơ hội resolve — ví dụ, 1–2 giây sau Activate hoặc sau khi OnLoadLatestProfile kích hoạt. | Gọi GetFlow trong Awake(). | Attribution chưa kịp cập nhật. Flow 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ờ GetFlow vô thời hạn. | Nếu 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ục hồi — hoặc họ đóng ứng dụng. |
Xem Lấy paywall và sản phẩm để tham khảo các tham số fetchPolicy và loadTimeout, và Placements để chọn đúng placement.
Hiển thị media màn hình đầu từ app bundle
Một flow tải ảnh và video từ Adapty. Để hiển thị media màn hình đầu ngay lập tức, hãy phục vụ nó từ app bundle thay thế. Đây là cách tốt để tái sử dụng media bạn đã đóng gói sẵn, chẳng hạn như hình ảnh của một onboarding native hiện có.
- Trong Flow & Paywall Builder, đặt custom media ID cho ảnh hoặc video. File bạn tải lên đó vẫn là fallback.
- Thêm file vào dự án Unity của bạn.
- Khi tạo flow view, truyền file từ bundle cho ID đó bằng
SetCustomAssets:
// "welcome_video" is the custom media ID set in the Flow & Paywall Builder
var bundledAssets = new Dictionary<string, AdaptyCustomAsset>
{
{ "welcome_video", AdaptyCustomAsset.LocalVideoFile("custom_assets/videos/welcome.mp4") }
};
var parameters = new AdaptyUICreateFlowViewParameters()
.SetCustomAssets(bundledAssets);
AdaptyUI.CreateFlowView(flow, parameters, (view, error) => {
// handle the result
});
Các file đính kèm sẽ làm tăng dung lượng tải xuống của ứng dụng, vì vậy chỉ nên đính kèm những media mà người dùng nhìn thấy đầu tiên.
Nội dung media không được đóng gói vẫn hiển thị ngay lập tức: layout của flow bao gồm một bản sao độ phân giải thấp nhỏ của mỗi hình ảnh, kể cả frame tĩnh của video, và hiển thị bản đó cho đến khi file đầy đủ tải xong.
Để xem tài liệu tham khảo đầy đủ về customAssets, hãy xem Tùy chỉnh assets.
Điều chỉnh cho kết nối kém
Đối với các thị trường có kết nối kém ổn định (vùng nông thôn, phương tiện di chuyển, khu vực bị ảnh hưởng bởi định tuyến mạng):
- Đặt
fetchPolicythànhAdaptyPlacementFetchPolicy.ReturnCacheDataElseLoadcho mọi lần fetch trừ lần đầu tiên. - Cấu hình paywall dự phòng cho mọi placement trên Adapty Dashboard.
- Đặt
loadTimeouttừ 3–5 giây và chấp nhận paywall dự phòng khi hết thời gian chờ. - Đừng chặn việc hiển thị flow bởi
GetProfile. GọiGetFlowđộc lập để tránh tình trạng profile chậm làm chặn giao diện.