---
title: "Adapty Unity SDK'yı v3.14'e Taşıma"
description: "Daha iyi performans ve yeni para kazanma özellikleri için Adapty Unity SDK v3.14'e geçin."
---

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 \{#separate-event-listener-for-paywall-events\}

[Paywall Builder](adapty-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.
```diff showLineNumbers
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](unity-handling-events).
## Görünüm oluşturma ve sunum metodlarını yeniden adlandırın \{#rename-view-creation-and-presentation-methods\}

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

```diff showLineNumbers
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ı:
```diff showLineNumbers
- AdaptyUI.DismissView(view, (error) => {
+ AdaptyUI.DismissPaywallView(view, (error) => {
    // handle the error
  });
```

## MakePurchase yöntemini güncelleme \{#update-makepurchase-method\}

`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.
```diff showLineNumbers
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:

```csharp showLineNumbers
using AdaptySDK;

void MakePurchase(AdaptyPaywallProduct product) {
  Adapty.MakePurchase(product, (result, error) => {
    // handle purchase result
  });
}
```
## Yedek paywall yöntemini güncelleme \{#update-fallback-method\}

:::important
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ı:
```diff showLineNumbers
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ı](unity-use-fallback-paywalls) sayfasında inceleyebilirsiniz.
## Paywall özellik erişimini güncelleme \{#update-paywall-property-access\}

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

```diff showLineNumbers
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 \{#update-remote-config-access\}

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

```diff showLineNumbers
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 \{#update-adaptypaywall-model-usage\}

`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.
```diff showLineNumbers
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 \{#update-getpaywall-fetch-policy\}

`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.

```diff showLineNumbers
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
  });
}
```