---
title: "Configurer un plan d'engagement de 12 mois"
description: "Configurez l'abonnement mensuel d'Apple avec un engagement de 12 mois dans App Store Connect et Adapty, ajoutez-le à un paywall personnalisé, et testez-le en sandbox."
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skills: `npx adapty skills install --yes`

:::important
Pour proposer un plan d'engagement, vous avez besoin d'un abonnement App Store annuel, d'un [paywall personnalisé](paywalls), et du SDK Adapty v4.3 ou version ultérieure. Les flows ne peuvent pas afficher le plan.
:::

Pour inciter vos abonnés à s'engager sur un an tout en payant mensuellement, ajoutez un [plan d'engagement de 12 mois](app-store-12-month-commitment) à votre produit annuel dans App Store Connect et dans Adapty.

## Avant de commencer \{#before-you-begin\}

Avant d'implémenter les plans d'engagement, assurez-vous de :

- **Ciblez le bon marché** : les plans d'engagement ne sont pas disponibles aux États-Unis. En Allemagne, en Israël, en Afrique du Sud et en Türkiye, les abonnés peuvent résilier immédiatement via le support Apple.
- **Ciblez la bonne version d'OS** : les abonnés doivent disposer d'iOS 26.4 ou version ultérieure, ou de la même version d'iPadOS, macOS, tvOS ou visionOS. Compilez votre application avec Xcode 26.5 ou version ultérieure.
- **Ciblez la bonne tranche de prix** : la somme des 12 paiements mensuels doit représenter entre 1x et 1,5x la valeur de l'abonnement annuel en paiement unique.
- **Utilisez le SDK Adapty v4.3 ou version ultérieure** : dans les versions de l'application avec un SDK antérieur, les utilisateurs ne peuvent acheter que le plan en paiement unique.
- **Mettez à jour le code qui lit les identifiants produit** : les webhooks, les intégrations, les exports de données et l'API côté serveur signalent les achats de plans d'engagement sous la forme `<product_id>:monthly`. Si votre code traite des identifiants produit, mettez à jour la logique avant le premier achat d'un plan d'engagement.

## 1. Configuration d'App Store Connect \{#1-app-store-connect-configuration\}

1. Ouvrez un abonnement annuel dans App Store Connect, ou [créez un nouvel abonnement](app-store-products) avec une durée de **1 an**.
2. Dans la section **Availability**, ajoutez les mêmes pays sous **1 Year Upfront** et sous **Monthly with 12-Month Commitment**. Apple ne propose la facturation par engagement que là où la facturation anticipée est disponible. L'inverse n'est pas obligatoire : vous pouvez proposer le forfait anticipé dans des pays sans le forfait par engagement.
3. Dans la section **Subscription Prices**, définissez le prix anticipé pour votre territoire de base, si l'abonnement n'en a pas encore. Apple exige le prix anticipé même si vous n'affichez que le forfait par engagement aux utilisateurs.
4. Définissez le prix mensuel pour votre territoire de base. Le prix mensuel doit représenter entre 1/12 et 1/8 du prix anticipé. Par exemple, avec un prix anticipé de 59,99 €, le prix mensuel peut être compris entre 5,00 € et 7,49 €.

App Store Connect calcule les prix des autres pays à partir des prix de votre territoire de base.

Pour des instructions complètes, suivez le guide Apple sur la [souscription mensuelle avec engagement de 12 mois](https://developer.apple.com/help/app-store-connect/manage-subscriptions/set-availability-for-an-auto-renewable-subscription#offer-monthly-subscriptions-with-12-month-commitment).

## 2. Configuration Adapty \{#2-adapty-configuration\}

Pour afficher le plan d'engagement dans les paywalls personnalisés, activez-le pour le produit annuel dans Adapty. Si vous n'utilisez pas de paywalls personnalisés, vous pouvez ignorer cette étape.

1. Ouvrez le produit annuel. S'il n'existe pas encore, [créez-le et connectez](create-product#create-product-and-connect-existing-store-products) l'abonnement que vous avez configuré dans App Store Connect. Ne publiez pas un nouveau produit depuis Adapty : cela créerait un abonnement distinct sans le plan d'engagement.
2. Ouvrez l'onglet **App Store**, puis sélectionnez **Offer monthly payments with a 12-month commitment**.

3. Dans la fenêtre contextuelle, dans la liste **Monthly price, USD**, sélectionnez le prix d'acompte correspondant à App Store Connect. La liste contient uniquement les tarifs App Store dans la plage autorisée. Ce prix est une valeur de référence : Adapty ne l'envoie pas à App Store Connect.

## 3. Configurer les offres \{#3-set-up-offers\}

Dans App Store Connect, chaque formule de facturation possède ses propres offres de lancement, offres promotionnelles, offres de reconquête et codes de réduction. Une offre associée à la formule de paiement immédiat ne s'applique pas à la formule avec engagement.

- **Essais gratuits et autres offres de lancement** : Dans App Store Connect, configurez l'offre pour le plan d'engagement. Adapty applique les [offres de lancement](app-store-offers#introductory-offers) automatiquement. Quand une offre de lancement se termine, l'abonnement de 12 mois de l'abonné commence.
- **Offres promotionnelles et offres de reconquête** : Configurez des [offres promotionnelles](app-store-offers#promotional-offers) ou des [offres de reconquête](app-store-offers#win-back-offers) pour le plan d'engagement dans App Store Connect. Ensuite, [ajoutez les offres à Adapty](create-offer) et définissez leur **App Store plan** sur **Monthly with 12-month commitment**. Une ligne de paywall n'affiche que les offres correspondant à son propre plan de facturation. Si vous n'utilisez pas de paywalls personnalisés, vous n'avez pas besoin d'ajouter les offres à Adapty.
- **Codes d'offre** : Configurez des codes d'offre pour le plan d'engagement dans App Store Connect.

## 4. Ajouter à un paywall personnalisé \{#4-add-to-a-custom-paywall\}

:::warning
Apple exige que vous affichiez à la fois le prix par versement et le total annuel avant l'achat.
:::

1. Dans le paywall personnalisé, [ajoutez le produit annuel](add-product-to-paywall) et définissez son **Billing plan** sur **Monthly**. Pour vendre également le plan prépayé sur le même paywall, ajoutez de nouveau le produit annuel avec le **Billing plan** **Upfront**.
   - Pour proposer une offre prépayée aux utilisateurs qui achètent le plan prépayé à la place — sur une version antérieure du SDK, ou lorsque le plan d'engagement ne s'applique pas — sélectionnez-la sous **Fallback offer**.
2. Dans votre app, affichez le prix provenant de `product.subscriptionPricingTerms`. Pour les utilisateurs pouvant acheter le plan d'engagement, le SDK Adapty retourne la tarification de ce plan. Pour tous les autres, le SDK retourne la tarification du plan prépayé :
   - Pour savoir quel plan le SDK a retourné, vérifiez `product.subscriptionPricingTerms?.billingPlan`. La valeur est `.monthly` pour le plan d'engagement et `.upFront` pour le plan prépayé.
   - Pour afficher le prix par versement, utilisez `subscriptionPricingTerms.localizedBillingPrice` et `subscriptionPricingTerms.billingPeriod`.
   - Pour afficher le total annuel, utilisez `subscriptionPricingTerms.commitmentInfo.localizedPrice` et `subscriptionPricingTerms.commitmentInfo.period`. Pour le plan d'engagement, `product.localizedPrice` et `product.subscriptionPeriod` retournent les mêmes valeurs annuelles.

Les utilisateurs ne peuvent pas acheter le plan d'engagement dans les cas suivants :

- **Version de l'OS ou pays non pris en charge** : l'appareil Apple de l'utilisateur tourne sur une version du système antérieure à 26.4, ou le plan n'est pas disponible dans le pays de leur App Store. Le SDK Adapty renvoie alors le tarif du plan initial.
- **Abonnement initial existant** : StoreKit indique que l'utilisateur est déjà abonné. Pour changer de plan, les abonnés utilisent leurs réglages d'abonnement Apple.
- **[Achat intégré promu](making-purchases#in-app-purchases-from-the-app-store)** : l'utilisateur sélectionne le produit dans l'App Store, puis le SDK Adapty lance l'achat dans votre application. Pour ces achats, le SDK ne prend en charge que le plan initial.

Pour ne plus proposer l'offre d'engagement, dans vos paywalls personnalisés, définissez le **Billing plan** du produit annuel sur **Upfront**, ou supprimez la ligne **Monthly**. Vous ne pouvez pas décocher la case **Offer monthly payments with a 12-month commitment** dans Adapty. Les abonnés actuels continuent à renouveler leur engagement chaque année, sauf si vous cliquez sur **Remove Monthly Billing** pour l'abonnement annuel dans App Store Connect. Les abonnés qui se sont déjà engagés continuent à payer jusqu'à la fin de leur engagement.

## 5. Tester le plan dans un sandbox \{#test-the-plan-in-a-sandbox\}

Suivez le [guide de test en sandbox](test-purchases-in-sandbox) avec deux comptes sandbox :

- **Un compte d'un pays où vous proposez le plan d'engagement** : le paywall doit afficher le plan d'engagement avec le prix mensuel ainsi que le prix total. Après l'achat, le profil de l'utilisateur sandbox doit avoir le niveau d'accès du produit annuel.
- **Un compte américain** : le paywall ne doit afficher que le plan en paiement unique.

Si votre code traite des identifiants de produits provenant de webhooks ou de l'API côté serveur, vérifiez qu'il reçoit les achats de plans d'engagement sous la forme `<product_id>:monthly`.

Pour tester la logique d'achat en local, utilisez [StoreKit Testing dans Xcode](local-sk-files) 26.5 ou version ultérieure. Les achats effectués dans StoreKit Testing n'atteignent pas Adapty.

## Dépannage \{#troubleshooting\}

- **La case à cocher pour les paiements mensuels est manquante** : La case **Offer monthly payments with a 12-month commitment** n'apparaît que sur un produit **Annual** avec un identifiant de produit App Store. Elle reste inactive tant que le produit n'a pas de **Price (USD)**.
- **Les utilisateurs ne voient pas d'essai gratuit ni d'autre offre pour le plan à engagement** : Dans App Store Connect, chaque offre appartient à un plan de facturation. [Configurez l'offre](#3-set-up-offers) pour le plan à engagement. Pour une offre promotionnelle ou de reconquête, définissez également l'**App Store plan** de l'offre dans Adapty sur **Monthly with 12-month commitment**.
- **Tous les utilisateurs voient le prix initial** : Vérifiez les deux points suivants :
  - L'application est compilée avec Xcode 26.5 ou une version ultérieure. Avec une version antérieure de Xcode, le SDK Adapty renvoie toujours la tarification du plan initial.
  - Dans le paywall personnalisé, le **Billing plan** du produit annuel est **Monthly**.
- **Certains utilisateurs voient le prix initial** : Ces utilisateurs [ne peuvent pas acheter le plan à engagement](#4-add-to-a-custom-paywall).
- **Le paywall affiche le total annuel au lieu du prix de l'acompte mensuel** : Pour le plan à engagement, `product.localizedPrice` renvoie le total annuel. Pour afficher le prix de l'acompte, utilisez `subscriptionPricingTerms.localizedBillingPrice`.