Migrar el SDK de Adapty para Unity a la v. 3.14

El SDK de Adapty 3.14.0 es una versión mayor que incorpora mejoras que pueden requerir algunos pasos de migración:

  1. Listener de eventos independiente para eventos de paywall.
  2. Renombrar AdaptyUI.CreateView a AdaptyUI.CreatePaywallView y métodos relacionados.
  3. Actualizar el método MakePurchase para usar AdaptyPurchaseParameters en lugar de parámetros individuales.
  4. Reemplazar SetFallbackPaywalls por el método SetFallback.
  5. Actualizar el acceso a propiedades del paywall para usar AdaptyPlacement.
  6. Actualizar el acceso a la configuración remota usando el objeto AdaptyRemoteConfig.
  7. Reemplazar VendorProductIds por ProductIdentifiers en el modelo AdaptyPaywall.
  8. Actualizar la política de obtención en GetPaywall para usar AdaptyFetchPolicy.

Listener de eventos independiente para eventos de paywall

Si muestras paywalls diseñados con el Paywall Builder, los eventos de la vista de paywall ahora usan la interfaz dedicada AdaptyPaywallsEventsListener y el método SetPaywallsEventsListener. La interfaz principal AdaptyEventListener sigue siendo la encargada de las actualizaciones de perfil y los detalles de instalación.

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
}

Más información sobre cómo gestionar eventos de paywall.

Renombrar los métodos de creación y presentación de vistas

Los métodos de creación y presentación de vistas han sido renombrados:

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

Del mismo modo, el método de cierre ha sido renombrado:

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

Actualizar el método MakePurchase

El método MakePurchase ahora usa AdaptyPurchaseParameters en lugar de los argumentos individuales subscriptionUpdateParams e isOfferPersonalized. Esto mejora la seguridad de tipos y permite ampliar los parámetros de compra en el futuro.

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 no necesitas parámetros adicionales, puedes usar simplemente:

using AdaptySDK;

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

Actualizar el método de respaldo

Al actualizar al SDK de Unity 3.14, deberás descargar los nuevos archivos de respaldo desde el Adapty Dashboard y reemplazar los existentes en tu proyecto.

El método para configurar los paywall de respaldo ha sido actualizado. El método SetFallbackPaywalls ha sido renombrado a 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
  });
}

Consulta el ejemplo de código final en la página Usar paywalls de respaldo en Unity.

Actualizar el acceso a propiedades del paywall

Las siguientes propiedades se han movido de AdaptyPaywall a 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;
}

Actualizar el acceso a la configuración remota

Las propiedades de Remote Config se han reestructurado en un objeto AdaptyRemoteConfig para una mejor organización:

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

Actualizar el uso del modelo AdaptyPaywall

La propiedad VendorProductIds ha quedado obsoleta en favor de ProductIdentifiers. La nueva propiedad devuelve objetos AdaptyProductIdentifier en lugar de cadenas simples, lo que proporciona información de producto más estructurada.

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

El objeto AdaptyProductIdentifier da acceso al ID del producto del proveedor a través de la propiedad VendorProductId, manteniendo la misma funcionalidad y ofreciendo una mejor estructura para futuras mejoras.

Actualizar la política de obtención en GetPaywall

El tipo del parámetro fetchPolicy en el método GetPaywall ha cambiado de AdaptyPaywallFetchPolicy a AdaptyPlacementFetchPolicy. Este cambio unifica el uso de la política de obtención en todo el 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
  });
}