Adapty Unity SDK を v3.14 へ移行する

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

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

ペイウォールイベント用の専用イベントリスナーの分離

ペイウォールビルダーでデザインしたペイウォールを表示する場合、ペイウォールビューのイベントは専用の 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 メソッドは、個別の subscriptionUpdateParams および isOfferPersonalized 引数の代わりに AdaptyPurchaseParameters を使用するようになりました。これにより型安全性が向上し、将来的な購入パラメーターの拡張にも対応しやすくなります。

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

リモートコンフィグアクセスの更新

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

GetPaywall フェッチポリシーの更新

GetPaywall メソッドの fetchPolicy パラメーターの型が 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
  });
}