Миграция Adapty Unity SDK на версию 3.14
Adapty SDK 3.14.0 — это мажорный релиз, который принёс ряд улучшений, требующих шагов по миграции:
- Отдельный слушатель событий для событий пейвола.
- Переименование
AdaptyUI.CreateViewвAdaptyUI.CreatePaywallViewи связанных методов. - Обновление метода
MakePurchaseдля использованияAdaptyPurchaseParametersвместо отдельных параметров. - Замена
SetFallbackPaywallsна методSetFallback. - Обновление доступа к свойствам пейвола с использованием
AdaptyPlacement. - Обновление доступа к Remote Config через объект
AdaptyRemoteConfig. - Замена
VendorProductIdsнаProductIdentifiersв моделиAdaptyPaywall. - Обновление политики загрузки в
GetPaywallдля использованияAdaptyFetchPolicy.
Отдельный слушатель событий пейвола
Если вы показываете пейволы, созданные с помощью Paywall Builder, события представления пейвола теперь используют специальный интерфейс AdaptyPaywallsEventsListener и метод SetPaywallsEventsListener. Основной интерфейс AdaptyEventListener остаётся для обновлений профиля и данных об установке.
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
}
Подробнее об обработке событий пейвола.
Переименование методов создания и отображения представления
Методы создания и отображения представления были переименованы:
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
});
});
}
Аналогично был переименован метод закрытия:
- AdaptyUI.DismissView(view, (error) => {
+ AdaptyUI.DismissPaywallView(view, (error) => {
// handle the error
});
Обновление метода MakePurchase
Метод MakePurchase теперь использует AdaptyPurchaseParameters вместо отдельных аргументов subscriptionUpdateParams и isOfferPersonalized. Это обеспечивает более строгую типизацию и упрощает расширение параметров покупки в будущем.
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;
}
});
}
Если дополнительные параметры не нужны, можно использовать упрощённый вариант:
using AdaptySDK;
void MakePurchase(AdaptyPaywallProduct product) {
Adapty.MakePurchase(product, (result, error) => {
// handle purchase result
});
}
Обновление метода для резервного пейвола
При обновлении до Unity SDK 3.14 необходимо скачать новые резервные файлы из дашборда Adapty и заменить ими существующие в вашем проекте.
Метод установки резервных пейволов был обновлён. Метод SetFallbackPaywalls переименован в 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
});
}
Финальный пример кода можно найти на странице Использование резервных пейволов в Unity.
Обновление доступа к свойствам пейвола
Следующие свойства перенесены из AdaptyPaywall в 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;
}
Обновление доступа к Remote Config
Свойства Remote Config были реструктурированы в объект AdaptyRemoteConfig для лучшей организации:
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;
}
Обновление использования модели AdaptyPaywall
Свойство VendorProductIds объявлено устаревшим в пользу ProductIdentifiers. Новое свойство возвращает объекты AdaptyProductIdentifier вместо простых строк, предоставляя более структурированную информацию о продуктах.
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
+ }
}
Объект AdaptyProductIdentifier предоставляет доступ к идентификатору продукта поставщика через свойство VendorProductId, сохраняя прежнюю функциональность и предлагая лучшую структуру для будущих улучшений.
Обновление политики загрузки в GetPaywall
Тип параметра fetchPolicy в методе GetPaywall изменён с AdaptyPaywallFetchPolicy на AdaptyPlacementFetchPolicy. Это изменение унифицирует использование политики загрузки во всём 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
});
}