-
Explora Retention Messaging en App Store Connect
Descubre cómo puedes aprovechar la potencia de Retention Messaging para llegar a los suscriptores antes de que cancelen su suscripción. Obtén información sobre cómo configurar esta funcionalidad en App Store Connect y agregar ofertas de suscripción, así como sobre cómo aprovechar la API Retention Messaging para enviar mensajes en tiempo real y ofrecer opciones alternativas que animen a los usuarios a seguir suscritos a tu app o juego.
Capítulos
- 0:00 - Introducción
- 2:38 - Retention Messaging en App Store Connect
- 6:38 - Retention Messaging en tiempo real
- 11:46 - Compara los tipos de Retention Messaging
Recursos
- Interest form: Real-time Retention Messaging
- Supporting monthly subscriptions with a 12-month commitment
- Retention Messaging API
Videos relacionados
WWDC26
-
Buscar este video…
-
-
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…" } }
-