Lấy onboarding trong Capacitor SDK

Sau khi bạn đã thiết kế phần hiển thị cho onboarding bằng builder trong Adapty Dashboard, bạn có thể hiển thị nó trong ứng dụng Capacitor 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 đã tạo một onboarding.
  2. Bạn đã thêm onboarding vào một placement.

Lấy onboarding

Khi bạn tạo một onboarding bằng builder không cần code của chúng tôi, nó được lưu trữ dưới dạng một container với cấu hình mà ứng dụng của bạn cần lấy và hiển thị. Container này quản lý toàn bộ trải nghiệm — nội dung nào xuất hiện, 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 form nhập vào). Container cũng tự động theo dõi các sự kiện analytics, vì vậy bạn không cần triển khai tính năng theo dõi view riêng.

Để đạt hiệu suất tốt nhất, hãy lấy cấu hình onboarding sớm để ảnh có đủ thời gian tải về trước khi hiển thị cho người dùng.

Để lấy một onboarding, sử dụng phương thức getOnboarding:


try {
  const onboarding = await adapty.getOnboarding({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    locale: 'en',
    params: {
      fetchPolicy: 'reload_revalidating_cache_data', // Load from server, fallback to cache
      loadTimeoutMs: 5000 // 5 second timeout
    }
  });
  console.log('Onboarding fetched successfully');
} catch (error) {
  console.error('Failed to fetch onboarding:', error);
}

Sau đó, gọi phương thức createOnboardingView để tạo một instance view.

Kết quả của phương thức createOnboardingView chỉ có thể dùng một lần. Nếu bạn cần dùng lại, hãy gọi phương thức createOnboardingView một lần nữa.


if (onboarding.hasViewConfiguration) {
  try {
    const view = await createOnboardingView(onboarding);
    console.log('Onboarding view created successfully');
  } catch (error) {
    console.error('Failed to create onboarding view:', error);
  }
} else {
  // Use your custom logic
  console.log('Onboarding does not have view configuration');
}

Các 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 được kỳ vọng là một mã ngôn ngữ gồm một hoặc hai subtag phân cách bằng dấu trừ (-). Subtag đầu tiên là cho ngôn ngữ, subtag thứ hai là cho khu vực.

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 chúng.

params.fetchPolicy

tùy chọn

mặc định: 'reload_revalidating_cache_data'

Theo mặc định, SDK sẽ cố tải dữ liệu từ server và trả về dữ liệu đã cache trong trường hợp 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 của mình thường gặp kết nối internet không ổn định, hãy cân nhắc sử dụng 'return_cache_data_else_load' để 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 họ sẽ có thời gian tải nhanh hơn, bất kể kết nối internet của họ không ổn định đến đâu. Cache được cập nhật thường xuyên, vì vậy an toàn khi sử dụng nó 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 ứng dụng được cài đặt lại hoặc thông qua việc dọn dẹp thủ công.

params.loadTimeoutMs

tùy chọn

mặc định: 5000 ms

Giá trị này giới hạn thời gian chờ (tính bằng mili giây) 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ị chỉ định trong loadTimeoutMs, vì thao tác có thể bao gồm nhiều yêu cầu khác nhau bên dưới.

Các tham số phản hồi:

Tham sốMô tả
onboardingMột đối tượng AdaptyOnboarding bao gồm: định danh và cấu hình onboarding, Remote Config, và một số thuộc tính khác.

Tăng tốc lấy onboarding bằng onboarding dành cho đối tượng mặc định

Thông thường, onboarding được lấy gần như ngay lập tức, vì vậy bạn không cần lo lắng về việc tăng tốc quá trình này. Tuy nhiên, trong các 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 lấy 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ị onboarding nào 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ư được 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, yêu cầu thiết kế tương thích ngược hoặc chấp nhận rằng các phiên bản cũ hơn 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”, loại bỏ việc nhắm mục tiêu theo quốc gia, attribution, hoặc các thuộc tính tùy chỉnh.

Nếu việc lấy nhanh hơn có lợi hơn những hạn chế này cho trường hợp sử dụng của bạn, hãy dùng getOnboardingForDefaultAudience như bên dưới. Nếu không, hãy sử dụng getOnboarding như mô tả ở trên.


try {
  const onboarding = await adapty.getOnboardingForDefaultAudience({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    locale: 'en',
    params: {
      fetchPolicy: 'reload_revalidating_cache_data' // Load from server, fallback to cache
    }
  });
  console.log('Default audience onboarding fetched successfully');
} catch (error) {
  console.error('Failed to fetch default audience onboarding:', error);
}

Các 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 được kỳ vọng là một mã ngôn ngữ gồm một hoặc hai subtag phân cách bằng dấu trừ (-). Subtag đầu tiên là cho ngôn ngữ, subtag thứ hai là cho khu vực.

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 chúng.

params.fetchPolicy

tùy chọn

mặc định: 'reload_revalidating_cache_data'

Theo mặc định, SDK sẽ cố tải dữ liệu từ server và trả về dữ liệu đã cache trong trường hợp 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 của mình thường gặp kết nối internet không ổn định, hãy cân nhắc sử dụng 'return_cache_data_else_load' để 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 họ sẽ có thời gian tải nhanh hơn, bất kể kết nối internet của họ không ổn định đến đâu. Cache được cập nhật thường xuyên, vì vậy an toàn khi sử dụng nó 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 ứng dụng được cài đặt lại hoặc thông qua việc dọn dẹp thủ công.