Migrate Adapty Unity SDK to v3.14
Adapty SDK 3.14.0 là một bản phát hành lớn mang lại một số cải tiến, tuy nhiên có thể yêu cầu bạn thực hiện một số bước migration:
- Event listener riêng cho các sự kiện paywall.
- Đổi tên
AdaptyUI.CreateViewthànhAdaptyUI.CreatePaywallViewvà các phương thức liên quan. - Cập nhật phương thức
MakePurchaseđể sử dụngAdaptyPurchaseParametersthay vì các tham số riêng lẻ. - Thay thế
SetFallbackPaywallsbằng phương thứcSetFallback. - Cập nhật cách truy cập thuộc tính paywall để sử dụng
AdaptyPlacement. - Cập nhật cách truy cập Remote Config để sử dụng đối tượng
AdaptyRemoteConfig. - Thay thế
VendorProductIdsbằngProductIdentifierstrong modelAdaptyPaywall. - Cập nhật fetch policy của
GetPaywallđể sử dụngAdaptyFetchPolicy.
Event listener riêng cho các sự kiện paywall
Nếu bạn hiển thị các paywall được thiết kế bằng Paywall Builder, các sự kiện của paywall view giờ đây sử dụng interface AdaptyPaywallsEventsListener và phương thức SetPaywallsEventsListener riêng biệt. Interface AdaptyEventListener cốt lõi vẫn dùng để nhận cập nhật hồ sơ người dùng và thông tin chi tiết về cài đặt.
using UnityEngine;
using AdaptySDK;
public class AdaptyListener : MonoBehaviour,
- AdaptyEventListener {
+ AdaptyEventListener,
+ AdaptyPaywallsEventsListener {
void Start() {
Adapty.SetEventListener(this);
+ Adapty.SetPaywallsEventsListener(this);
}
// AdaptyEventListener methods
public void OnLoadLatestProfile(AdaptyProfile profile) { }
public void OnInstallationDetailsSuccess(AdaptyInstallationDetails details) { }
public void OnInstallationDetailsFail(AdaptyError error) { }
+ // AdaptyPaywallsEventsListener methods
+ // Implement paywall event handlers here
}
Tìm hiểu thêm về cách xử lý sự kiện paywall.
Đổi tên các phương thức tạo và hiển thị view
Các phương thức tạo và hiển thị view đã được đổi tên:
using AdaptySDK;
- AdaptyUI.CreateView(paywall, parameters, (view, error) => {
+ AdaptyUI.CreatePaywallView(paywall, parameters, (view, error) => {
if (error != null) {
// handle the error
return;
}
- AdaptyUI.PresentView(view, (error) => {
+ AdaptyUI.PresentPaywallView(view, (error) => {
// handle the error
});
});
}
Tương tự, phương thức dismiss cũng được đổi tên:
- AdaptyUI.DismissView(view, (error) => {
+ AdaptyUI.DismissPaywallView(view, (error) => {
// handle the error
});
Cập nhật phương thức MakePurchase
Phương thức MakePurchase giờ đây sử dụng AdaptyPurchaseParameters thay vì các đối số subscriptionUpdateParams và isOfferPersonalized riêng lẻ. Điều này giúp đảm bảo an toàn kiểu dữ liệu tốt hơn và cho phép mở rộng các tham số mua hàng trong tương lai.
using AdaptySDK;
void MakePurchase(
AdaptyPaywallProduct product,
AdaptySubscriptionUpdateParameters subscriptionUpdate,
bool? isOfferPersonalized
) {
- Adapty.MakePurchase(product, subscriptionUpdate, isOfferPersonalized, (result, error) => {
+ var parameters = new AdaptyPurchaseParametersBuilder()
+ .SetSubscriptionUpdateParams(subscriptionUpdate)
+ .SetIsOfferPersonalized(isOfferPersonalized)
+ .Build();
+
+ Adapty.MakePurchase(product, parameters, (result, error) => {
switch (result.Type) {
case AdaptyPurchaseResultType.Pending:
// handle pending purchase
break;
case AdaptyPurchaseResultType.UserCancelled:
// handle purchase cancellation
break;
case AdaptyPurchaseResultType.Success:
var profile = result.Profile;
// handle successful purchase
break;
default:
break;
}
});
}
Nếu không cần thêm tham số nào, bạn có thể dùng đơn giản như sau:
using AdaptySDK;
void MakePurchase(AdaptyPaywallProduct product) {
Adapty.MakePurchase(product, (result, error) => {
// handle purchase result
});
}
Cập nhật phương thức fallback
Khi nâng cấp lên Unity SDK 3.14, bạn cần tải xuống các file fallback mới từ Adapty dashboard và thay thế các file hiện có trong dự án của mình.
Phương thức để thiết lập fallback đã được cập nhật. Phương thức SetFallbackPaywalls đã được đổi tên thành SetFallback:
using AdaptySDK;
void SetFallBackPaywalls() {
#if UNITY_IOS
var assetId = "adapty_fallback_ios.json";
#elif UNITY_ANDROID
var assetId = "adapty_fallback_android.json";
#else
var assetId = "";
#endif
- Adapty.SetFallbackPaywalls(assetId, (error) => {
+ Adapty.SetFallback(assetId, (error) => {
// handle the error
});
}
Xem ví dụ code hoàn chỉnh tại trang Sử dụng paywall dự phòng trong Unity.
Cập nhật cách truy cập thuộc tính paywall
Các thuộc tính sau đã được chuyển từ AdaptyPaywall sang AdaptyPlacement:
using AdaptySDK;
void ProcessPaywall(AdaptyPaywall paywall) {
- var abTestName = paywall.ABTestName;
- var audienceName = paywall.AudienceName;
- var revision = paywall.Revision;
- var placementId = paywall.PlacementId;
+ var abTestName = paywall.Placement.ABTestName;
+ var audienceName = paywall.Placement.AudienceName;
+ var revision = paywall.Placement.Revision;
+ var placementId = paywall.Placement.Id;
}
Cập nhật cách truy cập Remote Config
Các thuộc tính Remote Config đã được tái cấu trúc vào đối tượng AdaptyRemoteConfig để tổ chức tốt hơn:
using AdaptySDK;
void ProcessRemoteConfig(AdaptyPaywall paywall) {
- var remoteConfigString = paywall.RemoteConfigString;
- var locale = paywall.Locale;
- var remoteConfigDict = paywall.RemoteConfig;
+ var remoteConfigString = paywall.RemoteConfig.Data;
+ var locale = paywall.RemoteConfig.Locale;
+ var remoteConfigDict = paywall.RemoteConfig.Dictionary;
}
Cập nhật cách sử dụng model AdaptyPaywall
Thuộc tính VendorProductIds đã bị deprecated và thay thế bằng ProductIdentifiers. Thuộc tính mới trả về các đối tượng AdaptyProductIdentifier thay vì chuỗi đơn giản, cung cấp thông tin sản phẩm có cấu trúc hơn.
using AdaptySDK;
void ProcessPaywallProducts(AdaptyPaywall paywall) {
- var productIds = paywall.VendorProductIds;
- foreach (var vendorId in productIds) {
- // use vendorId
- }
+ var productIdentifiers = paywall.ProductIdentifiers;
+ foreach (var productId in productIdentifiers) {
+ var vendorId = productId.VendorProductId;
+ // use vendorId
+ }
}
Đối tượng AdaptyProductIdentifier cho phép truy cập ID sản phẩm của nhà cung cấp thông qua thuộc tính VendorProductId, duy trì chức năng tương đương đồng thời cung cấp cấu trúc tốt hơn cho các cải tiến trong tương lai.
Cập nhật fetch policy của GetPaywall
Kiểu tham số fetchPolicy trong phương thức GetPaywall đã được đổi từ AdaptyPaywallFetchPolicy sang AdaptyPlacementFetchPolicy. Thay đổi này giúp thống nhất cách sử dụng fetch policy trong toàn bộ SDK.
using AdaptySDK;
void GetPaywall(string placementId) {
- Adapty.GetPaywall(placementId, AdaptyPaywallFetchPolicy.ReloadRevalidatingCacheData, null, (paywall, error) => {
+ Adapty.GetPaywall(placementId, AdaptyPlacementFetchPolicy.ReloadRevalidatingCacheData, null, (paywall, error) => {
// handle the result
});
}