Migration từ RevenueCat

Kế hoạch migration của bạn gồm 5 bước logic và mất trung bình 2 giờ. 90% tất cả các migration hoàn thành trong chưa đầy một ngày làm việc.

  1. Tìm hiểu các điểm khác biệt cốt lõi; tạo và chuẩn bị tài khoản Adapty (5 phút);
  2. Cài đặt Adapty SDK cho nền tảng của bạn (iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity) thay thế RevenueCat SDK (1 giờ);
  3. Thiết lập Apple App Store server notifications cho Adapty và (tùy chọn) chuyển tiếp raw events (5 phút);
  4. Kiểm tra và phát hành bản cập nhật ứng dụng (30 phút);
  5. (Tùy chọn) Yêu cầu bộ phận hỗ trợ RevenueCat cung cấp dữ liệu lịch sử dưới dạng CSV (5 phút);
  6. (Tùy chọn) Import dữ liệu lịch sử qua bộ phận hỗ trợ Adapty (30 phút).

Người dùng của bạn sẽ được migrate tự động

Tất cả người dùng đã từng kích hoạt gói đăng ký sẽ được chuyển sang Adapty ngay khi họ mở phiên bản mới của ứng dụng có tích hợp Adapty SDK. Trạng thái xác thực gói đăng ký và quyền truy cập premium sẽ được khôi phục tự động.

Trước khi phát hành phiên bản mới của ứng dụng có tích hợp Adapty SDK, hãy kiểm tra danh sách kiểm tra trước khi phát hành của chúng tôi.

Tìm hiểu các điểm khác biệt cốt lõi; tạo và chuẩn bị tài khoản Adapty

Adapty và RevenueCat SDK được thiết kế tương tự nhau. Sự khác biệt lớn nhất nằm ở mức sử dụng mạng và tốc độ: Adapty SDK được thiết kế để cung cấp thông tin theo yêu cầu nhanh nhất có thể khi bạn cần. Ví dụ, khi yêu cầu một paywall, bạn nhận được Remote Config trước để xây dựng sẵn onboarding hoặc paywall, sau đó mới gọi lấy sản phẩm trong một request riêng.

Tên gọi có một số điểm khác nhau:

RevenueCatAdapty
PackageProduct
OfferingPaywall
PaywallPaywall Builder
EntitlementAccess level

Adapty có khái niệm placement — một vị trí logic bên trong ứng dụng nơi người dùng có thể thực hiện mua hàng. Trong hầu hết các trường hợp, bạn có một hoặc hai placement:

  • Onboarding (vì 80% tất cả các giao dịch mua diễn ra ở đây);
  • General (hiển thị trong phần cài đặt hoặc bên trong ứng dụng sau onboarding).
2406d97-image.webp

Cài đặt Adapty SDK và thay thế RevenueCat SDK

Cài đặt Adapty SDK cho nền tảng của bạn (iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity) vào ứng dụng.

Bạn cần thay thế một số phương thức SDK ở phía ứng dụng. Hãy cùng xem các hàm phổ biến nhất và cách thay thế chúng bằng Adapty SDK.

Khởi động SDK

Thay Purchases.configure bằng Adapty.activate.

Lấy paywall (offerings)

Thay Purchases.shared.getOfferings bằng Adapty.getPaywall.

Trong Adapty, bạn luôn yêu cầu paywall thông qua placement id. Trên thực tế, bạn chỉ lấy tối đa 1-2 paywall, vì vậy chúng tôi thiết kế như vậy để tăng tốc SDK và giảm mức sử dụng mạng.

Lấy thông tin người dùng (customer profile)

Thay Purchases.shared.getCustomerInfo bằng Adapty.getProfile.

Lấy sản phẩm

Trong RevenueCat, bạn dùng cấu trúc sau: Purchases.shared.getOfferings rồi self.offering?.availablePackages.

Trong Adapty, bạn trước tiên yêu cầu paywall (xem ở trên) để có ngay Remote Config của Adapty, sau đó gọi lấy sản phẩm bằng Adapty.getPaywallProducts.

Thực hiện mua hàng

Thay Purchases.shared.purchase bằng Adapty.makePurchase.

Kiểm tra mức độ truy cập (entitlement)

Lấy hồ sơ người dùng (xem ở trên trước) rồi thay thế

customerInfo?.entitlements["premium"]?.isActive == true

bằng

profile.accessLevels["premium"]?.isActive == true.

Khôi phục mua hàng

Thay Purchases.shared.restorePurchases bằng Adapty.restorePurchases.

Kiểm tra người dùng đã đăng nhập chưa

Thay Purchases.shared.isAnonymous bằng if profile.customerUserId == nil.

Đăng nhập người dùng

Thay Purchases.shared.logIn bằng Adapty.identify.

Đăng xuất người dùng

Thay Purchases.shared.logOut bằng Adapty.logout.

Chuyển App Store server-side notifications sang Adapty

Đọc hướng dẫn thực hiện tại đây.

Kiểm tra và phát hành phiên bản mới của ứng dụng

Nếu bạn đang đọc phần này, bạn đã:

  • Cấu hình Adapty Dashboard
  • Cài đặt Adapty SDK
  • Thay thế logic SDK bằng các hàm Adapty
  • Chuyển App Store server-side notifications sang Adapty và tùy chọn bật chuyển tiếp raw events sang RevenueCat
  • Thực hiện mua hàng thử trong Sandbox
  • Phát hành phiên bản ứng dụng mới

Nếu bạn đã hoàn thành các bước trên, hãy thực hiện mua hàng thử trong Sandbox rồi phát hành ứng dụng.

Xem qua danh sách kiểm tra trước khi phát hành.

Thực hiện kiểm tra cuối cùng bằng danh sách của chúng tôi để xác nhận tích hợp hiện tại hoặc thêm các tính năng bổ sung như tích hợp attribution hay analytics.

(Tùy chọn) Xuất dữ liệu lịch sử RevenueCat dưới dạng CSV

Đừng vội import dữ liệu lịch sử

Bạn nên chờ ít nhất một tuần sau khi phát hành với SDK trước khi import dữ liệu lịch sử. Trong thời gian đó, chúng tôi sẽ thu thập đầy đủ thông tin về giá giao dịch từ SDK, giúp dữ liệu bạn import chính xác hơn.

Xuất dữ liệu lịch sử từ RevenueCat dưới dạng CSV theo hướng dẫn trong tài liệu chính thức của RevenueCat.

(Tùy chọn) Yêu cầu bộ phận hỗ trợ RevenueCat cung cấp Google Purchase Tokens

Nếu bạn cần import giao dịch Google Play, hãy liên hệ bộ phận hỗ trợ RevenueCat để lấy file CSV chứa Google Purchase Tokens qua trang hỗ trợ của họ. Google Purchase Token là mã định danh duy nhất do Google Play cung cấp cho mỗi giao dịch, cần thiết để theo dõi và xác minh giao dịch chính xác trong Adapty. Thông tin này không có trong file xuất tiêu chuẩn. File chứa ba cột sau:

  • user_id
  • google_purchase_token
  • google_product_id

Liên hệ chúng tôi để import dữ liệu lịch sử

Liên hệ với chúng tôi qua tin nhắn trên website hoặc gửi email đến [email protected] kèm theo file CSV của bạn.

  1. Gửi trực tiếp file CSV bạn đã xuất từ RevenueCat cho đội ngũ hỗ trợ của chúng tôi.
  2. Nếu import giao dịch Google Play, hãy đính kèm file CSV chứa Google Purchase Tokens mà bạn nhận được từ bộ phận hỗ trợ RevenueCat.
  3. Cho chúng tôi biết ID người dùng nào sẽ được dùng làm Customer User ID (định danh người dùng chính của Adapty): rc_original_app_user_id hay rc_last_seen_app_user_id_alias.

Đội ngũ hỗ trợ của chúng tôi sẽ import các giao dịch của bạn vào Adapty. Dữ liệu sau sẽ được import vào Adapty cho mỗi giao dịch:

Tham sốMô tả
user_idCustomer User ID, định danh chính của người dùng trong Adapty và hệ thống của bạn.
apple_original_transaction_idĐối với chuỗi gói đăng ký, đây là ngày mua của giao dịch gốc, được liên kết qua store_original_transaction_id.
google_product_idID sản phẩm trên Google Play Store.
google_purchase_tokenMã định danh duy nhất do Google Play cung cấp cho mỗi giao dịch, cần thiết để xác thực.
countryQuốc gia của người dùng.
created_atNgày và giờ tạo người dùng.
subscription_expiration_dateNgày và giờ gói đăng ký hết hạn.
emailEmail của người dùng cuối.
phone_numberSố điện thoại của người dùng cuối.
idfaIdentifier for Advertisers (IDFA), được Apple gán cho thiết bị của người dùng.
idfvIdentifier for Vendors (IDFV), mã được gán cho tất cả ứng dụng của một nhà phát triển và dùng chung trên các ứng dụng đó trong cùng một thiết bị.
advertising_idMã định danh duy nhất do hệ điều hành Android cung cấp, các nhà quảng cáo có thể dùng để theo dõi.
attribution_channelTên kênh marketing.
attribution_campaignTên chiến dịch marketing.
attribution_ad_groupNhóm quảng cáo attribution.
attribution_ad_setBộ quảng cáo attribution.
attribution_creativeTừ khóa creative của attribution.

Ngoài ra, các định danh tích hợp cho các tích hợp sau cũng sẽ được import: Amplitude, Mixpanel, AppsFlyer, Adjust và FacebookAds.

Câu hỏi thường gặp

Tôi đã cài đặt thành công Adapty SDK và phát hành phiên bản ứng dụng mới. Điều gì sẽ xảy ra với những người dùng cũ chưa cập nhật lên phiên bản có Adapty SDK?

Hầu hết người dùng sạc điện thoại qua đêm — đó là lúc App Store thường tự động cập nhật tất cả ứng dụng, vì vậy đây không phải vấn đề đáng lo ngại. Vẫn có thể có một số ít người dùng trả phí chưa cập nhật, nhưng họ vẫn có quyền truy cập vào nội dung premium. Bạn không cần lo lắng và không cần ép họ cập nhật.

Tôi có cần xuất dữ liệu lịch sử từ RevenueCat càng sớm càng tốt không, hay tôi sẽ mất dữ liệu đó?

Bạn không cần phải vội; hãy phát hành bản cập nhật với Adapty SDK trước, sau đó mới cung cấp dữ liệu lịch sử cho chúng tôi. Chúng tôi sẽ khôi phục lịch sử thanh toán của người dùng và điền vào hồ sơ người dùngbiểu đồ.

Tôi đang dùng MMP (AppsFlyer, Adjust, v.v.) và analytics (Mixpanel, Amplitude, v.v.). Làm sao để đảm bảo mọi thứ hoạt động bình thường?

Trước tiên bạn cần truyền cho chúng tôi các ID của các dịch vụ bên thứ ba mà bạn muốn chúng tôi gửi dữ liệu đến, thông qua SDK của chúng tôi. Đọc hướng dẫn về tích hợp attributiontích hợp analytics. Đối với dữ liệu lịch sử và người dùng cũ, hãy đảm bảo bạn truyền cho chúng tôi các ID đó từ dữ liệu bạn đã xuất từ RevenueCat.