ÿÿ Migrate từ Superwall sang Adapty | Tài liệu Adapty

Migration from Superwall

Hầu hết các migration từ Superwall sang Adapty mất khoảng hai tiếng. Bạn thay thế SDK, trá» thông báo server cá»§a cá»­a hàng vá» Adapty, và phát hành bản app má»›i. Ngưá»i dùng đã mua gói đăng ký vẫn giữ quyá»n truy cập — Adapty khôi phục từ receipt cá»§a App Store và Google Play ngay lần khởi chạy đầu tiên.

Ngưá»i dùng đăng ký sẽ được migrate tá»± động

Tất cả ngưá»i dùng đã từng kích hoạt gói đăng ký sẽ chuyển sang Adapty ngay khi há» mở phiên bản má»›i cá»§a app 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 được khôi phục tá»± động.

Cách tổ chức hướng dẫn này

Migration gồm sáu bước:

  1. Ãnh xạ các khái niệm Superwall sang Adapty
  2. Cài đặt Adapty SDK
  3. Thay thế các lệnh gá»i SDK
  4. Chuyển thông báo server App Store và Google Play
  5. Kiểm tra và phát hành
  6. (Tùy chá»n) Import dữ liệu lịch sá»­

Ãnh xạ các khái niệm Superwall sang Adapty

Hầu hết các khái niệm trong Superwall Ä‘á»u có khái niệm tương đương trong Adapty:

SuperwallAdaptyThay đổi gì
CampaignPlacement + AudienceLogic Campaign được tách thành placement (vị trí) và audience (quy tắc).
PlacementPlacementCùng khái niệm, cùng tên.
Audience filterAudienceCác bộ quy tắc nằm bên trong một placement.
EntitlementAccess levelTên định danh (ví dụ: premium).
WebView paywallPaywall Builder paywallÄÆ°á»£c Adapty SDK render theo native thay vì dùng WKWebView.
PurchaseControllerBuilt-inKhông cần implement protocol — Adapty xử lý mua hàng.
Feature gatingKiểm tra mức độ truy cậpKiểm tra profile.accessLevels["premium"]?.isActive.

Có hai điểm thay đổi tư duy đáng lưu ý trước khi bạn động đến code:

  • Fetch và present là hai bước riêng biệt: register cá»§a Superwall gá»™p việc fetch paywall, đánh giá campaign, và hiển thị UI vào má»™t lệnh gá»i duy nhất. Adapty tách hai bước này — bạn fetch paywall, lấy cấu hình cá»§a nó, rồi má»›i present. Cách này thêm vài dòng code nhưng cho phép bạn pre-load cấu hình, hiển thị trạng thái loading tùy chỉnh, hoặc há»§y việc hiển thị theo logic riêng.
  • Trạng thái gói đăng ký theo từng mức độ truy cập: Superwall cung cấp má»™t subscriptionStatus dạng published property duy nhất. Adapty trả vá» má»™t AdaptyProfile vá»›i các mức độ truy cập có tên, nên má»™t ngưá»i dùng có thể sở hữu cả mức độ truy cập sports và science độc lập vá»›i nhau. Äể Ä‘á»c đồng bá»™, hãy cache profile từ AdaptyDelegate thay vì gá»i getProfile() ở má»—i lần load view.

Cài đặt Adapty SDK

Cài đặt Adapty SDK cho ná»n tảng cá»§a bạn — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity, hoặc Capacitor — và đồng thá»i gỡ SuperwallKit khá»i dá»± án.

Thay thế các lệnh gá»i SDK

Äi qua từng phần trong tích hợp cá»§a bạn và thay thế lệnh gá»i Superwall bằng lệnh tương đương cá»§a Adapty. Các liên kết ở cuối má»—i mục bao gồm cả bảy ná»n tảng SDK — hãy chá»n đúng ná»n tảng cá»§a app bạn.

Khởi tạo SDK

Thay Superwall.configure bằng Adapty.activate.

Xem hướng dẫn cài đặt cho ná»n tảng cá»§a bạn — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity, hoặc Capacitor.

Xác định và đăng xuất ngưá»i dùng

Thay Superwall.shared.identify bằng Adapty.identify và Superwall.shared.reset bằng Adapty.logout. Cả hai SDK Ä‘á»u tạo hồ sÆ¡ ngưá»i dùng ẩn danh ngay lần khởi chạy đầu tiên, vì vậy các lệnh gá»i này chỉ cần thiết khi ngưá»i dùng đăng nhập hoặc đăng xuất. Hãy fetch lại paywall sau khi xác định ngưá»i dùng — ngưá»i dùng má»›i có thể thuá»™c vá» má»™t đối tượng khác.

Xem hướng dẫn xác định ngưá»i dùng cho ná»n tảng cá»§a bạn — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity, hoặc Capacitor.

Fetch và hiển thị paywall

Thay Superwall.shared.register bằng flow hai bước: fetch paywall với Adapty.getPaywall, load cấu hình view của nó với AdaptyUI.getPaywallConfiguration, rồi mới present.

Hai điểm khác biệt cần lưu ý:

  • Feature gating thay thế closure feature:: Sau khi paywall đóng, kiểm tra mức độ truy cập Ä‘ang hoạt động trên profile được trả vá» (hoặc trên Adapty.getProfile) rồi phân nhánh từ đó.
  • Paywall được render bởi SDK: Superwall render paywall bên trong WKWebView. Adapty render Paywall Builder paywall theo native — font chữ, thông tin sản phẩm, và các nút được SDK vẽ trá»±c tiếp.

Xem hướng dẫn nhanh vá» paywall cho ná»n tảng cá»§a bạn — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity, hoặc Capacitor.

Kiểm tra trạng thái gói đăng ký

Thay Superwall.shared.subscriptionStatus bằng cách kiểm tra mức độ truy cập có tên trên profile: profile.accessLevels["premium"]?.isActive. Theo dõi thay đổi qua AdaptyDelegate.didLoadLatestProfile(_:) thay vì dùng pattern @Published property, và cache profile ở phía bạn để Ä‘á»c đồng bá»™.

Xem hướng dẫn kiểm tra trạng thái gói đăng ký cho ná»n tảng cá»§a bạn — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity, hoặc Capacitor.

Xử lý mua hàng và khôi phục

Vá»›i Paywall Builder, cả hai SDK Ä‘á»u tá»± động xá»­ lý giao dịch mua bên trong giao diện paywall — bạn có thể bá» qua bước này.

Với paywall tùy chỉnh, Superwall yêu cầu implement PurchaseController. Adapty thì không: thay PurchaseController.purchase bằng Adapty.makePurchase và PurchaseController.restorePurchases bằng Adapty.restorePurchases. SDK tự xử lý việc xác thực.

Xem hướng dẫn nhanh vá» custom paywall cho ná»n tảng cá»§a bạn — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity, hoặc Capacitor.

Thiết lập thuá»™c tính ngưá»i dùng

Thay Superwall.shared.setUserAttributes bằng Adapty.updateProfile.

Xem hướng dẫn thuá»™c tính ngưá»i dùng cho ná»n tảng cá»§a bạn — iOS, Android, React Native, Flutter, Kotlin Multiplatform, Unity, hoặc Capacitor.

Chuyển thông báo server App Store và Google Play

Trá» thông báo server cá»§a cá»­a hàng vá» Adapty. Adapty vẫn hoạt động mà không cần chúng, nhưng analytics, các tích hợp bên thứ ba, và chỉ số A/B test Ä‘á»u phụ thuá»™c vào đây:

Nếu bạn muốn chạy song song Superwall và Adapty trong quá trình triển khai, hãy dùng raw events forwarding — Adapty sẽ proxy các sự kiện từ cửa hàng vỠlại Superwall trong khi bạn xác minh tích hợp mới.

Kiểm tra và phát hành

Trước khi phát hành, hãy kiểm tra từng mục:

  • Äã cấu hình Adapty Dashboard (sản phẩm, paywall, placement, mức độ truy cập)
  • Äã cài đặt Adapty SDK
  • Äã thay thế các lệnh gá»i Superwall SDK bằng các lệnh tương đương cá»§a Adapty
  • Äã trá» thông báo server App Store và Google Play vá» Adapty
  • Äã thá»±c hiện giao dịch mua trong sandbox
  • Äã ná»™p bản phát hành app má»›i

Xem qua danh sách kiểm tra trước khi phát hành để xác thực lần cuối.

(Tùy chá»n) Import dữ liệu lịch sá»­

Superwall không sở hữu trạng thái gói đăng ký cá»§a bạn — App Store và Google Play má»›i là nÆ¡i lưu trữ. Adapty xác thá»±c receipt ngay lần khởi chạy đầu tiên, nên ngưá»i dùng đã mua vẫn giữ quyá»n truy cập mà không cần import gì.

Nếu bạn muốn backfill các giao dịch lịch sá»­ vào Adapty analytics, hãy làm theo Import dữ liệu lịch sá»­ vào Adapty. Äợi ít nhất má»™t tuần sau khi phát hành SDK để SDK có thá»i gian thu thập giá mua hàng má»›i.

Câu há»i thưá»ng gặp

Äiá»u gì xảy ra vá»›i ngưá»i dùng đã mua gói đăng ký nhưng chưa cập nhật app?

Hầu hết ngưá»i dùng tá»± động cập nhật app qua đêm, nên tá»· lệ ngưá»i dùng còn dùng phiên bản cÅ© giảm nhanh. Ngưá»i dùng đăng ký trên phiên bản cÅ© vẫn giữ quyá»n truy cập trá»±c tiếp qua App Store hoặc Google Play — bạn không cần ép buá»™c cập nhật.

Audience của Superwall campaign có chuyển sang được không?

Không. Bá»™ lá»c audience cá»§a Superwall và đối tượng trong Adapty được cấu hình ở hai dashboard khác nhau và dùng các định danh khác nhau. Hãy tạo lại targeting cá»§a bạn dưới dạng đối tượng bên trong placement Adapty. Hầu hết các app chỉ có má»™t hoặc hai placement (onboarding và má»™t trigger troÿÿng app), nên việc tái tạo thưá»ng khá nhanh.

Adapty có tương đương với getPresentationResult không?

Không có lệnh gá»i đơn lẻ nào tương đương. Äể kiểm tra xem má»™t placement có hiển thị paywall không, hãy gá»i Adapty.getPaywall(placementId:) và phân nhánh dá»±a trên kết quả. Nếu lệnh gá»i thành công, má»™t paywall đã được gán cho đối tượng cá»§a ngưá»i dùng đó. Nếu thất bại vì không có paywall nào được cấu hình, hãy bá» qua việc hiển thị và chạy logic dá»± phòng cá»§a bạn.

ÿÿÿÿ