---
title: "Adapty Unity SDK を v3.14 へ移行する"
description: "より高いパフォーマンスと新しいマネタイズ機能のために Adapty Unity SDK v3.14 へ移行します。"
---

Adapty SDK 3.14.0 はメジャーリリースであり、いくつかの改善が含まれています。ただし、以下の移行手順が必要になる場合があります。

1. ペイウォールイベント用の専用イベントリスナーの分離。
2. `AdaptyUI.CreateView` を `AdaptyUI.CreatePaywallView` およびその関連メソッドにリネーム。
3. `MakePurchase` メソッドで個別パラメーターの代わりに `AdaptyPurchaseParameters` を使用するよう更新。
4. `SetFallbackPaywalls` を `SetFallback` メソッドに置き換え。
5. `AdaptyPlacement` を使用してペイウォールプロパティにアクセスするよう更新。
6. `AdaptyRemoteConfig` オブジェクトを使用してリモートコンフィグにアクセスするよう更新。
7. `AdaptyPaywall` モデルの `VendorProductIds` を `ProductIdentifiers` に置き換え。
8. `GetPaywall` のフェッチポリシーで `AdaptyFetchPolicy` を使用するよう更新。

## ペイウォールイベント用の専用イベントリスナーの分離 \{#separate-event-listener-for-paywall-events\}

[ペイウォールビルダー](adapty-paywall-builder)でデザインしたペイウォールを表示する場合、ペイウォールビューのイベントは専用の `AdaptyPaywallsEventsListener` インターフェースと `SetPaywallsEventsListener` メソッドを使用するようになりました。コアの `AdaptyEventListener` インターフェースは、プロファイル更新とインストール詳細のために引き続き使用されます。

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

[ペイウォールイベントの処理について詳しく見る](unity-handling-events)。

## ビュー作成・表示メソッドのリネーム \{#rename-view-creation-and-presentation-methods\}

ビューの作成と表示に使用するメソッドがリネームされました。

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

同様に、閉じるメソッドもリネームされました。

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

## MakePurchase メソッドの更新 \{#update-makepurchase-method\}

`MakePurchase` メソッドは、個別の `subscriptionUpdateParams` および `isOfferPersonalized` 引数の代わりに `AdaptyPurchaseParameters` を使用するようになりました。これにより型安全性が向上し、将来的な購入パラメーターの拡張にも対応しやすくなります。

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

追加パラメーターが不要な場合は、次のように簡単に記述できます。

```csharp showLineNumbers
using AdaptySDK;

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

## フォールバックメソッドの更新 \{#update-fallback-method\}

:::important
Unity SDK 3.14 にアップグレードする際は、Adapty ダッシュボードから新しいフォールバックファイルをダウンロードし、プロジェクト内の既存ファイルと置き換える必要があります。
:::

フォールバックを設定するメソッドが更新されました。`SetFallbackPaywalls` メソッドは `SetFallback` にリネームされました。

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

最終的なコード例は [Unity でフォールバックペイウォールを使用する](unity-use-fallback-paywalls) のページをご覧ください。

## ペイウォールプロパティアクセスの更新 \{#update-paywall-property-access\}

以下のプロパティが `AdaptyPaywall` から `AdaptyPlacement` に移動されました。

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

## リモートコンフィグアクセスの更新 \{#update-remote-config-access\}

リモートコンフィグのプロパティが `AdaptyRemoteConfig` オブジェクトに再構成され、より整理された形になりました。

```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 モデルの使用方法の更新 \{#update-adapty-paywall-model-usage\}

`VendorProductIds` プロパティは非推奨となり、`ProductIdentifiers` に置き換えられました。新しいプロパティは単純な文字列ではなく `AdaptyProductIdentifier` オブジェクトを返すため、プロダクト情報がより構造化されています。

```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` オブジェクトは `VendorProductId` プロパティを通じてベンダープロダクト ID にアクセスでき、従来と同じ機能を維持しつつ、将来の拡張に向けてより良い構造を提供します。

## GetPaywall フェッチポリシーの更新 \{#update-getpaywall-fetch-policy\}

`GetPaywall` メソッドの `fetchPolicy` パラメーターの型が `AdaptyPaywallFetchPolicy` から `AdaptyPlacementFetchPolicy` に変更されました。この変更により、SDK 全体でフェッチポリシーの使用が統一されます。

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