-
Conheça o Retention Messaging no App Store Connect
Descubra como você pode aproveitar todo o poder do Retention Messaging para entrar em contato com os assinantes antes que eles cancelem. Aprenda a configurar esse recurso no App Store Connect e adicionar ofertas de assinatura, além de aproveitar a API Retention Messaging para enviar mensagens em tempo real e opções alternativas que incentivam as pessoas a continuar assinando seu app ou jogo.
Capítulos
- 0:00 - Introdução
- 2:38 - Retention Messaging no App Store Connect
- 6:38 - Retention Messaging em Tempo Real
- 11:46 - Comparação de Retention Messaging
Recursos
- Interest form: Real-time Retention Messaging
- Supporting monthly subscriptions with a 12-month commitment
- Retention Messaging API
Vídeos relacionados
WWDC26
-
Buscar neste vídeo...
-
-
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…" } }
-