Migrar el SDK de Adapty para Unity a v3.14

El SDK de Adapty 3.14.0 es una versión mayor que incluye mejoras que, sin embargo, pueden requerir algunos pasos de migración por tu parte:

  1. Listener de eventos separado para eventos de paywall.
  2. Cambiar el nombre de 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 con el método SetFallback.
  5. Actualizar el acceso a propiedades del paywall para usar AdaptyPlacement.
  6. Actualizar el acceso a la configuración remota para usar el objeto AdaptyRemoteConfig.
  7. Reemplazar VendorProductIds con ProductIdentifiers en el modelo AdaptyPaywall.
  8. Actualizar la política de fetch de GetPaywall para usar AdaptyFetchPolicy.

Receptor de eventos separado para eventos de paywall

Si muestras paywalls diseñados con el Paywall Builder, los eventos de vista de paywall ahora utilizan la interfaz AdaptyPaywallsEventsListener y el método SetPaywallsEventsListener dedicados. La interfaz principal AdaptyEventListener se mantiene para 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 el manejo de 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 proporciona mayor 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 se necesitan 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 respaldos 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 completo 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;
}

Actualización del uso del modelo AdaptyPaywall

La propiedad VendorProductIds ha quedado obsoleta en favor de ProductIdentifiers. La nueva propiedad devuelve objetos AdaptyProductIdentifier en lugar de simples cadenas de texto, 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 proporciona acceso al ID del producto del proveedor a través de la propiedad VendorProductId, manteniendo la misma funcionalidad y ofreciendo una mejor estructura para mejoras futuras.

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