Adapty Unity SDK'yı v. 3.14'e Geçirme

Adapty SDK 3.14.0, bazı iyileştirmeler getiren büyük bir sürümdür; ancak bu iyileştirmeler sizin tarafınızdan birkaç geçiş adımı gerektiriyor olabilir:

  1. Paywall etkinlikleri için ayrı olay dinleyicisi.
  2. AdaptyUI.CreateView’ı AdaptyUI.CreatePaywallView olarak ve ilgili metotları yeniden adlandırma.
  3. MakePurchase metodunu ayrı parametreler yerine AdaptyPurchaseParameters kullanacak şekilde güncelleme.
  4. SetFallbackPaywalls’ı SetFallback metoduyla değiştirme.
  5. Paywall özellik erişimini AdaptyPlacement kullanacak şekilde güncelleme.
  6. Remote config erişimini AdaptyRemoteConfig nesnesi kullanacak şekilde güncelleme.
  7. AdaptyPaywall modelinde VendorProductIds’i ProductIdentifiers ile değiştirme.
  8. GetPaywall fetch policy’sini AdaptyFetchPolicy kullanacak şekilde güncelleme.

Paywall etkinlikleri için ayrı olay dinleyicisi

Paywall Builder ile tasarlanmış paywallları gösteriyorsanız, paywall görünüm etkinlikleri artık özel AdaptyPaywallsEventsListener arayüzünü ve SetPaywallsEventsListener metodunu kullanıyor. Temel AdaptyEventListener arayüzü, profil güncellemeleri ve kurulum bilgileri için kullanılmaya devam etmektedir.

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
}

Paywall etkinliklerini işleme hakkında daha fazla bilgi edinin.

Görünüm oluşturma ve sunum metotlarını yeniden adlandırma

Görünüm oluşturma ve sunum metotları yeniden adlandırıldı:

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
    });
  });
}

Benzer şekilde, kapatma metodu da yeniden adlandırıldı:

- AdaptyUI.DismissView(view, (error) => {
+ AdaptyUI.DismissPaywallView(view, (error) => {
    // handle the error
  });

MakePurchase metodunu güncelleme

MakePurchase metodu artık ayrı subscriptionUpdateParams ve isOfferPersonalized argümanları yerine AdaptyPurchaseParameters kullanıyor. Bu değişiklik daha iyi tip güvenliği sağlar ve satın alma parametrelerinin ileriye dönük genişletilebilirliğine olanak tanır.

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;
    }
  });
}

Ek parametre gerekmiyorsa şu şekilde kullanabilirsiniz:

using AdaptySDK;

void MakePurchase(AdaptyPaywallProduct product) {
  Adapty.MakePurchase(product, (result, error) => {
    // handle purchase result
  });
}

Fallback metodunu güncelleme

Unity SDK 3.14’e yükseltirken, Adapty kontrol panelinden yeni yedek dosyaları indirmeniz ve projenizdeki mevcut dosyaları bunlarla değiştirmeniz gerekecektir.

Fallback ayarlama metodu güncellendi. SetFallbackPaywalls metodu SetFallback olarak yeniden adlandırıldı:

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
  });
}

Nihai kod örneğine Unity’de yedek paywall kullanımı sayfasından ulaşabilirsiniz.

Paywall özellik erişimini güncelleme

Aşağıdaki özellikler AdaptyPaywall’dan AdaptyPlacement’a taşındı:

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 erişimini güncelleme

Remote config özellikleri, daha iyi bir yapı için AdaptyRemoteConfig nesnesi altında yeniden düzenlendi:

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 model kullanımını güncelleme

VendorProductIds özelliği, ProductIdentifiers lehine kullanımdan kaldırıldı. Yeni özellik, basit string’ler yerine AdaptyProductIdentifier nesneleri döndürerek daha yapılandırılmış ürün bilgisi sunar.

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 nesnesi, VendorProductId özelliği aracılığıyla vendor ürün kimliğine erişim sağlar; mevcut işlevselliği korurken ileriye dönük geliştirmeler için daha iyi bir yapı sunar.

GetPaywall fetch policy’sini güncelleme

GetPaywall metodundaki fetchPolicy parametre türü AdaptyPaywallFetchPolicy’den AdaptyPlacementFetchPolicy’ye değiştirildi. Bu değişiklik, SDK genelinde fetch policy kullanımını birleştiriyor.

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
  });
}