---
title: "Migrer le SDK Adapty Unity vers la v3.14"
description: "Migrez vers le SDK Adapty Unity v3.14 pour de meilleures performances et de nouvelles fonctionnalités de monétisation."
---

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 \{#separate-event-listener-for-paywall-events\}

Si vous affichez des paywalls conçus avec le [Paywall Builder](adapty-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.

```diff showLineNumbers
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](unity-handling-events).

## Renommer les méthodes de création et de présentation de vue \{#rename-view-creation-and-presentation-methods\}

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

```diff showLineNumbers
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 :

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

## Mettre à jour la méthode MakePurchase \{#update-makepurchase-method\}

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.

```diff showLineNumbers
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 :

```csharp showLineNumbers
using AdaptySDK;

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

## Mettre à jour la méthode de fallback \{#update-fallback-method\}

:::important
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` :

```diff showLineNumbers
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](unity-use-fallback-paywalls).

## Mettre à jour l'accès aux propriétés du paywall \{#update-paywall-property-access\}

Les propriétés suivantes ont été déplacées de `AdaptyPaywall` vers `AdaptyPlacement` :

```diff showLineNumbers
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 \{#update-remote-config-access\}

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

```diff showLineNumbers
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 \{#update-adapty-paywall-model-usage\}

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.

```diff showLineNumbers
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 \{#update-getpaywall-fetch-policy\}

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.

```diff showLineNumbers
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
  });
}
```