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 を使用するよう更新。

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

ペイウォールビルダーでデザインしたペイウォールを表示する場合、ペイウォールビューのイベントは専用の 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
  });
}

フォールバックメソッドの更新

Important

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