Fallback flows
Để đảm bảo trải nghiệm người dùng mượt mà, bạn cần thiết lập phiên bản dự phòng cho các flow của mình.
Khi ứng dụng yêu cầu một flow, Adapty SDK sẽ liên hệ với máy chủ của chúng tôi để lấy cấu hình. Nếu thiết bị không thể kết nối Adapty (lỗi mạng, sự cố máy chủ), SDK sẽ chuyển sang dùng dữ liệu cục bộ:
- Nếu người dùng đã xem flow đó trước đây, SDK sẽ phục vụ bản đã lưu trong bộ nhớ cache.
- Nếu không có cache, SDK sẽ tải tệp cấu hình dự phòng được đóng gói sẵn trong ứng dụng.
Adapty tự động tạo các tệp dự phòng này. Gói fallback cho flow được dùng chung với paywall — một tệp JSON duy nhất cho mỗi nền tảng chứa các biến thể dự phòng cho cả hai. SDK sẽ đọc phần nào cần thiết.
Fallback flow được tích hợp trong gói Adapty SDK 4.0+. Nếu bạn chọn phiên bản SDK cũ hơn trong hộp thoại tải xuống, tệp chỉ chứa các biến thể paywall và onboarding — không có flow. Hãy đảm bảo ứng dụng của bạn đang dùng phiên bản SDK hỗ trợ flow trước khi phụ thuộc vào fallback flow.
Trước khi bắt đầu
- Tạo một flow trong Flow Builder.
- Tạo một placement cho flow đó.
Tải tệp fallback
- Mở trang Placements.
- Nhấn nút Fallbacks ở góc trên bên phải.
- Chọn nền tảng mục tiêu từ menu thả xuống.
- Chọn phiên bản SDK khớp với phiên bản đang dùng trong ứng dụng. Chọn Adapty SDK v4.0.0 and higher (hoặc tùy chọn mới hơn) để nhận gói có chứa flow.
Trình duyệt sẽ tải xuống một tệp JSON cho mỗi nền tảng — ví dụ: ios_4_0_0_fallback.json.
Ví dụ một mục fallback flow (nhấn để mở rộng)
"PLACEMENT_ID": {
"data": [
{
"developer_id": "PLACEMENT_ID",
"variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
"flow_id": "daf25858-3fa2-4981-8500-9c8a30e5b7e6",
"flow_name": "FLOW_NAME",
"flow_version_id": "FLOW_VERSION_ID",
"placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
"audience_name": "All Users",
"ab_test_name": "",
"cross_placement_info": null,
"weight": 100,
"variations": [
{
"variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
"paywall_id": "PAYWALL_ID",
"paywall_name": "PAYWALL_NAME",
"ab_test_name": "",
"products": [],
"revision": 1,
"custom_payload": null,
"weight": 100
}
],
"remote_configs": []
}
],
"meta": {
"placement": {
"developer_id": "PLACEMENT_ID",
"is_tracking_purchases": true,
"audience_name": "All Users",
"placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
"revision": 0,
"ab_test_name": ""
}
}
}Cấu trúc chính xác có thể thay đổi giữa các phiên bản SDK. Hãy luôn dùng tệp do Adapty tạo ra cho phiên bản SDK của bạn thay vì tự tạo thủ công.
Sau khi tải xuống
Thêm tệp vào mã nguồn ứng dụng, sau đó làm theo hướng dẫn thiết lập dành riêng cho từng nền tảng. Các API dùng để tải paywall fallback cũng sẽ tải flow fallback khi ứng dụng đang chạy phiên bản SDK hỗ trợ flow:
Giới hạn
Fallback flow được mã hóa cứng và lưu trữ cục bộ, nên không có đầy đủ các tính năng động như flow trực tiếp:
- Một biến thể cho mỗi placement. Nếu một placement có nhiều hơn một flow (đối tượng khác nhau, các biến thể A/B test), tệp fallback sẽ dùng biến thể có trọng số cao nhất hoặc đối tượng rộng nhất.
- Không có A/B testing. A/B test trên flow trực tiếp được xử lý trên máy chủ; fallback luôn phục vụ một biến thể duy nhất đã được chọn sẵn.
- Không cập nhật từ xa. Để cập nhật fallback, bạn cần phát hành phiên bản ứng dụng mới. Những thay đổi bạn thường thực hiện qua Remote Config hãy đưa vào flow trực tiếp thay thế.
- Chỉ dùng ngôn ngữ mặc định. Fallback dùng locale
en; các biến thể đã bản địa hóa không được đóng gói kèm theo.