ÿÿ Adapty Unity SDK v3.14 ã¸ã®ç§»è¡Œ | Adapty ドキュメント

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

フォールãƒãƒƒã‚¯ãƒ¡ã‚½ãƒƒãƒ‰ã®æ›´æ–°

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