Adapty Unity SDK'yı v3.14'e Taşıma

Adapty SDK 3.14.0, bazı geliştirmeler getiren büyük bir sürümdür. Bu geliştirmeler sizin tarafınızdan bazı taşıma adımları gerektirebilir:

  1. Paywall olayları için ayrı event listener.
  2. AdaptyUI.CreateView’i AdaptyUI.CreatePaywallView ve ilgili metodlara yeniden adlandırın.
  3. MakePurchase metodunu bireysel parametreler yerine AdaptyPurchaseParameters kullanacak şekilde güncelleyin.
  4. SetFallbackPaywalls’u SetFallback metoduyla değiştirin.
  5. Paywall özellik erişimini AdaptyPlacement kullanacak şekilde güncelleyin.
  6. Remote config erişimini AdaptyRemoteConfig nesnesi kullanacak şekilde güncelleyin.
  7. AdaptyPaywall modelinde VendorProductIds’i ProductIdentifiers ile değiştirin.
  8. GetPaywall fetch policy’sini AdaptyFetchPolicy kullanacak şekilde güncelleyin.

Paywall olayları için ayrı olay dinleyicisi

Paywall Builder ile tasarlanmış paywallları görüntülüyorsanız, paywall görünüm olayları artık özel AdaptyPaywallsEventsListener arayüzünü ve SetPaywallsEventsListener metodunu kullanmaktadır. AdaptyEventListener arayüzü ise profil güncellemeleri ve kurulum detayları 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 olaylarını işleme hakkında daha fazla bilgi edinin.

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

Görünüm oluşturma ve sunum metodları 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 yöntemini güncelleme

MakePurchase yöntemi artık ayrı subscriptionUpdateParams ve isOfferPersonalized argümanları yerine AdaptyPurchaseParameters kullanıyor. Bu, daha iyi tür güvenliği sağlar ve gelecekte satın alma parametrelerinin genişletilebilmesine 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 parametreye ihtiyaç duyulmuyorsa şunu kullanabilirsiniz:

using AdaptySDK;

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

Yedek paywall yöntemini güncelleme

Unity SDK 3.14 sürümüne yükseltirken, Adapty Kontrol Paneli’nden yeni yedek dosyaları indirip projenizdeki mevcut dosyaların yerine koymanız gerekecektir.

Yedekleri ayarlama yöntemi güncellendi. SetFallbackPaywalls yöntemi 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
  });
}

Son kod örneğini Unity’de yedek paywall kullanımı sayfasında inceleyebilirsiniz.

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 kullanımdan kaldırılmış olup yerine ProductIdentifiers geçmiştir. Yeni özellik, basit string’ler yerine AdaptyProductIdentifier nesneleri döndürerek daha yapılandırılmış ürün bilgisi sağlar.

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 satıcı ürün kimliğine erişim sağlar; aynı işlevselliği korurken gelecekteki 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
  });
}