Migrer le SDK Adapty Unity vers la v3.14

Le SDK Adapty 3.14.0 est une version majeure qui apporte des améliorations nécessitant toutefois quelques étapes de migration de votre part :

  1. Écouteur d’événements distinct pour les événements de paywall.
  2. Renommer AdaptyUI.CreateView en AdaptyUI.CreatePaywallView et les méthodes associées.
  3. Mettre à jour la méthode MakePurchase pour utiliser AdaptyPurchaseParameters à la place des paramètres individuels.
  4. Remplacer SetFallbackPaywalls par la méthode SetFallback.
  5. Mettre à jour l’accès aux propriétés du paywall pour utiliser AdaptyPlacement.
  6. Mettre à jour l’accès à la configuration distante pour utiliser l’objet AdaptyRemoteConfig.
  7. Remplacer VendorProductIds par ProductIdentifiers dans le modèle AdaptyPaywall.
  8. Mettre à jour la politique de récupération de GetPaywall pour utiliser AdaptyFetchPolicy.

Écouteur d’événements distinct pour les événements de paywall

Si vous affichez des paywalls conçus avec le Paywall Builder, les événements de vue de paywall utilisent désormais l’interface dédiée AdaptyPaywallsEventsListener et la méthode SetPaywallsEventsListener. L’interface principale AdaptyEventListener reste utilisée pour les mises à jour de profil et les détails d’installation.

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
}

En savoir plus sur la gestion des événements de paywall.

Renommer les méthodes de création et de présentation de vue

Les méthodes de création et de présentation de vue ont été renommées :

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

De même, la méthode de fermeture a été renommée :

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

Mettre à jour la méthode MakePurchase

La méthode MakePurchase utilise désormais AdaptyPurchaseParameters à la place des arguments individuels subscriptionUpdateParams et isOfferPersonalized. Cela offre une meilleure sécurité de type et permet d’étendre plus facilement les paramètres d’achat à l’avenir.

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

Si aucun paramètre supplémentaire n’est nécessaire, vous pouvez simplement utiliser :

using AdaptySDK;

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

Mettre à jour la méthode de fallback

Lors de la mise à niveau vers le SDK Unity 3.14, vous devrez télécharger les nouveaux fichiers de fallback depuis l’Adapty Dashboard et remplacer ceux existants dans votre projet.

La méthode de définition des fallbacks a été mise à jour. La méthode SetFallbackPaywalls a été renommée en 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
  });
}

Consultez l’exemple de code final sur la page Utiliser des paywalls de secours dans Unity.

Mettre à jour l’accès aux propriétés du paywall

Les propriétés suivantes ont été déplacées de AdaptyPaywall vers 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;
}

Mettre à jour l’accès à la configuration distante

Les propriétés du Remote Config ont été restructurées dans un objet AdaptyRemoteConfig pour une meilleure organisation :

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

Mettre à jour l’utilisation du modèle AdaptyPaywall

La propriété VendorProductIds est désormais dépréciée au profit de ProductIdentifiers. La nouvelle propriété retourne des objets AdaptyProductIdentifier au lieu de simples chaînes de caractères, offrant une information produit mieux structurée.

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

L’objet AdaptyProductIdentifier donne accès à l’identifiant de produit du vendeur via la propriété VendorProductId, conservant la même fonctionnalité tout en offrant une meilleure structure pour les améliorations futures.

Mettre à jour la politique de récupération de GetPaywall

Le type du paramètre fetchPolicy dans la méthode GetPaywall a été modifié de AdaptyPaywallFetchPolicy en AdaptyPlacementFetchPolicy. Ce changement unifie l’utilisation de la politique de récupération dans l’ensemble du 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
  });
}