-
Explorez Retention Messaging dans App Store Connect
Découvrez comment exploiter la puissance de Retention Messaging pour toucher vos abonnés avant qu'ils ne se désabonnent. Découvrez comment configurer cette fonctionnalité dans App Store Connect et ajouter des offres d'abonnement. Exploitez l'API Retention Messaging pour envoyer des messages en temps réel, proposer des options alternatives et encourager les utilisateurs à rester abonnés à votre app ou à votre jeu.
Chapitres
- 0:00 - Introduction
- 2:38 - Retention Messaging dans App Store Connect
- 6:38 - Retention Messaging en temps réel
- 11:46 - Comparaison des solutions Retention Messaging
Ressources
- Interest form: Real-time Retention Messaging
- Supporting monthly subscriptions with a 12-month commitment
- Retention Messaging API
Vidéos connexes
WWDC26
-
Rechercher dans cette vidéo…
-
-
6:08 - Signed transaction updates
// Signed transaction updates { "bundleId": "com.example.app", "productId": "Yoga_summer_2026", "type": "Auto-Renewable Subscription", "transactionReason": "RENEWAL", "inAppOwnershipType": "PURCHASED", "quantity": 1, "price": 0, "currency": "USD", "offerType": 5, // retention offer "offerIdentifier": "Yoga_2026_cancel_free_3m", "offerDiscountType": "FREE_TRIAL", "offerPeriod": "P3M", "transactionId": "1000098916194" "originalTransactionId": "1000011859217", "appAccountToken": "23a91ca7-06f3-425f-bff6-820904b510a9", ... } -
7:50 - Retention Messaging API
// Retention Messaging API: https://api.storekit.apple.com/inApps/v1/messaging // URL configuration PUT /realtime/url GET /realtime/url DELETE /realtime/url // Message configuration PUT /message/{messageIdentifier} DELETE /message/{messageIdentifier} GET /message/list PUT /default/{productId}/{locale} DELETE /default/{productId}/{locale} GET /default/{productId}/{locale} // Image configuration PUT /image/{imageIdentifier} DELETE /image/{imageIdentifier} GET /image/list // Performance testing - Sandbox only POST /performanceTest // initiate test GET /performanceTest/result/{requestId} // get results -
8:34 - Real-time requests
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } -
8:57 - Real-time requests with message
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } // Your response { "message": { "messageIdentifier": "551ee7c0-c097-418e-9dd5-2a98533a7390" } } -
9:11 - Real-time request with alternate product
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } // Your response { "alternateProduct": { "messageIdentifier": "ed7f25fc-5741-46a3-8502-062e0fb8afd0", "productId": "Yoga_summer_2026_annual" } } -
9:24 - Real-time request with promotional offer
// Real-time requests // Request from the App Store { "originalTransactionId": "123456789", "appAppleId": 6745974591, "productId": "Yoga_summer_2026", "userLocale": "en-US", "requestIdentifier": "c03248af-dd76-4e9b-9c1e-4489cd19a768", "environment": "Production", // or Sandbox "signedDate": 1780920000000 } // Your response { "promotionalOffer": { "messageIdentifier": "80135e2b-ae15-4ec4-8c5c-9ecc8045c0dc", "promotionalOfferSignatureV2": "eyJhbGciOiJFUzI…" } }
-