ÿÿ Lấy onboarding trong Adapty | Tài liệu Adapty

Lấy onboarding trong Android SDK

Bắt đầu từ SDK v4, bạn có thể xây dá»±ng flow như má»™t giải pháp thay thế mạnh mẽ hÆ¡n cho onboarding. Khác vá»›i onboarding chạy trong WebView, flow render trá»±c tiếp trên thiết bị — mang lại animation mượt mà hÆ¡n, giao diện Android nhất quán, thá»i gian tải nhanh hÆ¡n và không phụ thuá»™c vào WebView runtime. Xem Lấy flow & paywall và Hiển thị flow & paywall để bắt đầu.

Sau khi bạn đã thiết kế phần giao diện cho onboarding bằng builder trong Adapty Dashboard, bạn có thể hiển thị nó trong ứng dụng Android của mình. Bước đầu tiên trong quá trình này là lấy onboarding được liên kết với placement và cấu hình view của nó như mô tả bên dưới.

Trước khi bắt đầu, hãy đảm bảo rằng:

  1. Bạn đã cài đặt Adapty Android SDK phiên bản 3.8.0 trở lên.
  2. Bạn đã tạo một onboarding.
  3. Bạn đã thêm onboarding vào một placement.

Lấy onboarding

Khi bạn tạo má»™t onboarding bằng trình xây dá»±ng no-code cá»§a chúng tôi, nó được lưu trữ dưới dạng má»™t container chứa cấu hình mà ứng dụng cá»§a bạn cần lấy vá» và hiển thị. Container này quản lý toàn bá»™ trải nghiệm — ná»™i dung hiển thị, cách trình bày, và cách xá»­ lý các tương tác cá»§a ngưá»i dùng (như câu trả lá»i quiz hoặc dữ liệu nhập từ form). Container cÅ©ng tá»± động theo dõi các sá»± kiện analytics, nên bạn không cần tá»± triển khai tính năng theo dõi lượt xem riêng.

Äể đạt hiệu suất tốt nhất, hãy lấy cấu hình onboarding sá»›m để hình ảnh có đủ thá»i gian tải xuống trước khi hiển thị cho ngưá»i dùng. Äể lấy má»™t onboarding, sá»­ dụng phương thức getOnboarding:

Adapty.getOnboarding("YOUR_PLACEMENT_ID") { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val onboarding = result.value
            // the requested onboarding
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // handle the error
        }
    }
}

Tham số:

Tham sốBắt buộcMô tả
placementIdbắt buá»™cÄịnh danh cá»§a Placement mong muốn. Äây là giá trị bạn đã chỉ định khi tạo placement trong Adapty Dashboard.
locale

tùy chá»n

mặc định: en

Äịnh danh cá»§a bản địa hóa onboarding. Tham số này phải là mã ngôn ngữ gồm má»™t hoặc hai subtag được phân tách bằng ký tá»± dấu trừ (-). Subtag đầu tiên là ngôn ngữ, subtag thứ hai là khu vá»±c.

Ví dụ: en là tiếng Anh, pt-br là tiếng Bồ Äào Nha cá»§a Brazil.

Xem Bản địa hóa và mã locale để biết thêm thông tin vỠmã locale và cách chúng tôi khuyến nghị sử dụng chúng.

fetchPolicymặc định: .reloadRevalidatingCacheData

Theo mặc định, SDK sẽ cố tải dữ liệu từ máy chá»§ và trả vá» dữ liệu đã cache nếu thất bại. Chúng tôi khuyến nghị tùy chá»n này vì nó đảm bảo ngưá»i dùng cá»§a bạn luôn nhận được dữ liệu má»›i nhất.

Tuy nhiên, nếu bạn cho rằng ngưá»i dùng cá»§a mình thưá»ng xuyên gặp kết nối internet không ổn định, hãy cân nhắc sá»­ dụng .returnCacheDataElseLoad để trả vá» dữ liệu đã cache nếu có. Trong trưá»ng hợp này, ngưá»i dùng có thể không nhận được dữ liệu má»›i nhất tuyệt đối, nhưng thá»i gian tải sẽ nhanh hÆ¡n, bất kể kết nối internet cá»§a há» kém đến đâu. Cache được cập nhật thưá»ng xuyên nên việc dùng nó trong phiên làm việc để tránh các yêu cầu mạng là hoàn toàn an toàn.

Lưu ý rằng cache vẫn được giữ nguyên sau khi khởi động lại ứng dụng và chỉ bị xóa khi gỡ cài đặt ứng dụng hoặc xóa thủ công.

Adapty SDK lưu trữ onboarding cục bá»™ theo hai lá»›p: cache được cập nhật thưá»ng xuyên như mô tả ở trên và onboarding dá»± phòng. Chúng tôi cÅ©ng sá»­ dụng CDN để tải onboarding nhanh hÆ¡n và má»™t máy chá»§ dá»± phòng độc lập trong trưá»ng hợp CDN không khả dụng. Hệ thống này được thiết kế để đảm bảo bạn luôn nhận được phiên bản má»›i nhất cá»§a onboarding trong khi vẫn đảm bảo độ tin cậy ngay cả khi kết nối internet hạn chế.

loadTimeoutmặc định: 5 giây

Giá trị này giá»›i hạn thá»i gian chá» cho phương thức này. Nếu hết thá»i gian chá», dữ liệu đã cache hoặc fallback cục bá»™ sẽ được trả vá».

Lưu ý rằng trong má»™t số trưá»ng hợp hiếm gặp, phương thức này có thể hết thá»i gian chá» muá»™n hÆ¡n má»™t chút so vá»›i giá trị được chỉ định trong loadTimeout, do thao tác có thể bao gồm nhiá»u yêu cầu khác nhau bên dưới.

Äối vá»›i Android: Bạn có thể tạo TimeInterval bằng các hàm mở rá»™ng (như 5.seconds, trong đó .seconds đến từ import com.adapty.utils.seconds), hoặc TimeInterval.seconds(5). Äể không giá»›i hạn, hãy dùng TimeInterval.INFINITE.

Tham số phản hồi:
Tham sốMô tả
OnboardingÄối tượng AdaptyOnboarding bao gồm: mã định danh và cấu hình cá»§a onboarding, Remote Config, cùng má»™t số thuá»™c tính khác.

Tăng tốc tải onboarding với onboarding đối tượng mặc định

Thông thưá»ng, onboarding được tải gần như ngay lập tức, nên bạn không cần lo lắng vá» việc tối ưu tốc độ. Tuy nhiên, trong trưá»ng hợp bạn có nhiá»u đối tượng và onboarding, và ngưá»i dùng cá»§a bạn có kết nối internet yếu, việc tải onboarding có thể mất nhiá»u thá»i gian hÆ¡n mong muốn. Trong những tình huống như vậy, bạn có thể muốn hiển thị má»™t onboarding mặc định để đảm bảo trải nghiệm ngưá»i dùng mượt mà thay vì không hiển thị gì cả. Äể giải quyết vấn đỠnày, bạn có thể sá»­ dụng phương thức getOnboardingForDefaultAudience, phương thức này lấy onboarding cá»§a placement được chỉ định cho đối tượng All Users. Tuy nhiên, Ä‘iá»u quan trá»ng cần hiểu là cách tiếp cận được khuyến nghị là lấy onboarding bằng phương thức getOnboarding, như đã mô tả chi tiết trong phần Lấy Onboarding ở trên.

Hãy cân nhắc sá»­ dụng getOnboarding thay vì getOnboardingForDefaultAudience, vì phương thức sau có những hạn chế quan trá»ng:

  • Vấn đỠtương thích: Có thể gây ra sá»± cố khi há»— trợ nhiá»u phiên bản ứng dụng, đòi há»i thiết kế tương thích ngược hoặc chấp nhận rằng các phiên bản cÅ© có thể hiển thị không đúng.
  • Không có cá nhân hóa: Chỉ hiển thị ná»™i dung cho đối tượng “All Usersâ€, bá» qua tính năng nhắm mục tiêu dá»±a trên quốc gia, attribution, hoặc thuá»™c tính tùy chỉnh.

Nếu tốc độ tải nhanh hÆ¡n là ưu tiên cho trưá»ng hợp cá»§a bạn, hãy dùng getOnboardingForDefaultAudience như hướng dẫn bên dưới. Nếu không, hãy dùng getOnboarding như đã mô tả ở trên.

Adapty.getOnboardingForDefaultAudience("YOUR_PLACEMENT_ID") { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val onboarding = result.value
            // Handle successful onboarding retrieval
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // Handle error case
        }
    }
}

Tham số:

Tham sốBắt buộcMô tả
placementIdbắt buá»™cMã định danh cá»§a Placement mong muốn. Äây là giá trị bạn đã chỉ định khi tạo placement trong Adapty Dashboard.
locale

tùy chá»n

mặc định: en

Mã định danh của bản địa hóa onboarding. Tham số này phải là mã ngôn ngữ gồm một hoặc hai thẻ con, phân tách bằng dấu trừ (-). Thẻ con đầu tiên là ngôn ngữ, thẻ con thứ hai là vùng.

Ví dụ: en là tiếng Anh, pt-br là tiếng Bồ Äào Nha Brazil.

Xem Localizations and locale codes để biết thêm thông tin vỠmã locale và cách chúng tôi khuyến nghị sử dụng.

fetchPolicymặc định: .reloadRevalidatingCacheData

Theo mặc định, SDK sẽ cố tải dữ liệu từ server và trả vá» dữ liệu đã cache nếu thất bại. Chúng tôi khuyến nghị tùy chá»n này vì nó đảm bảo ngưá»i dùng luôn nhận được dữ liệu má»›i nhất.

Tuy nhiên, nếu bạn cho rằng ngưá»i dùng thưá»ng xuyên gặp kết nối internet không ổn định, hãy cân nhắc dùng .returnCacheDataElseLoad để trả vá» dữ liệu đã cache nếu có. Trong trưá»ng hợp này, ngưá»i dùng có thể không nhận được dữ liệu má»›i nhất tuyệt đối, nhưng thá»i gian tải sẽ nhanh hÆ¡n dù kết nối có bấp bênh đến đâu. Cache được cập nhật thưá»ng xuyên nên hoàn toàn an toàn khi sá»­ dụng trong phiên để tránh các yêu cầu mạng.

Lưu ý rằng cache vẫn được giữ nguyên khi khởi động lại ứng dụng và chỉ bị xóa khi gỡ cài đặt ứng dụng hoặc dá»n dẹp thá»§ công.

Adapty SDK lưu trữ onboardings cục bá»™ theo hai lá»›p: cache được cập nhật thưá»ng xuyên như mô tả ở trên và onboarding dá»± phòng. Chúng tôi cÅ©ng sá»­ dụng CDN để tải onboardings nhanh hÆ¡n và má»™tÿÿ server dá»± phòng độc lập trong trưá»ng hợp CDN không thể truy cập. Hệ thống này được thiết kế để đảm bảo bạn luôn nhận được phiên bản má»›i nhất cá»§a onboardings, đồng thá»i đảm bảo độ tin cậy ngay cả khi kết nối internet hạn chế.

ÿÿÿÿ