-
Novidades do StoreKit e das compras dentro do app
Saiba mais sobre os aprimoramentos mais recentes da API StoreKit para ajudar você a oferecer ótimas experiências de compras dentro do app aos seus clientes. Vamos conferir os novos campos adicionados a AppTransaction, Transaction e RenewalInfo, além das atualizações nos códigos de oferta de compras dentro do app. Também abordaremos a criação de solicitações assinadas de compras dentro do app usando a Biblioteca do Servidor da App Store e as atualizações em assinaturas de merchandising usando o SwiftUI.
Capítulos
- 0:00 - Introdução
- 0:36 - Explorar os novos recursos
- 10:24 - Assinar solicitações de compras dentro do app
- 14:21 - Assinaturas de merchandising
Recursos
- Set up offer codes
- Advanced Commerce API
- Simplifying your implementation by using the App Store Server Library
- Implementing a store in your app using the StoreKit API
- Human Interface Guidelines: In-app purchase
- StoreKit
Vídeos relacionados
WWDC25
WWDC24
WWDC23
WWDC21
-
Buscar neste vídeo...
-
-
- 0:00 - Introdução
Conheça os novos recursos do StoreKit, que incluem atualizações principais de framework, App Store Server Library para a assinatura de solicitações de compra dentro do app e views do SwiftUI para assinaturas de merchandising.
- 0:36 - Explorar os novos recursos
Há novas atualizações para três tipos principais no StoreKit: AppTransaction, Transaction e RenewalInfo. Esses tipos fornecem informações valiosas sobre a compra do seu app, bem como o histórico de transação e o status das assinaturas de clientes. No iOS 18.4, o AppTransaction inclui dois novos campos. O "appTransactionID" é um valor globalmente exclusivo a cada Conta Apple que baixa o app e foi implementado novamente no iOS 15. Esse ID também é exclusivo para cada membro do grupo familiar de apps que podem ser usados no Compartilhamento Familiar. O campo "originalPlatform" indica a plataforma na qual o cliente comprou o app, como iOS, macOS, tvOS ou visionOS. Essas informações ajudam você a se adequar às mudanças no modelo de negócios e conceder direitos a clientes de modo apropriado. O "Transaction" representa um compra dentro do app bem-sucedida e inclui informações, como a data da compra, o ID do produto e a data de validade das assinaturas de renovação automática. No iOS 18.4, a API Transaction.currentEntitlement(for:)' foi substituída pela API Transaction.currentEntitlements(for:). Essa nova API retorna uma sequência assíncrona de transações que dão ao cliente direito a determinado produto, já que um cliente pode ter vários direitos por meios diferentes. O modelo "Transaction" ganhou três novos campos: São eles: "appTransactionID", "offerPeriod", que detalha o período de assinatura associado a uma oferta resgatada, e "advancedCommerceInfo", que se aplica apenas aos apps que usam a API Advanced Commerce. A API Advanced Commerce facilita o suporte a compras dentro do app de grandes catálogos de conteúdo, experiências de criação e assinaturas com complementos opcionais. Por fim, o tipo "RenewalInfo", específico para assinaturas de renovação automática, contém informações sobre o status de renovação da assinatura, o que ajuda você a gerenciar e entender com mais eficiência os negócios baseados em assinatura. Essas informações incluem a data da próxima renovação da assinatura e, no caso de assinaturas expiradas, o motivo da expiração. Esses motivos podem ser importantes para você entender o comportamento do cliente e adaptar as estratégias. Por exemplo, se uma assinatura expira como resultado do aumento de preço, você pode usar essas informações para oferecer promoções com o objetivo de reconquistar clientes e incentivá-los a refazer a assinatura. A API SubscriptionStatus foi aprimorada no iOS 18.4 para permitir que você consulte os status das assinaturas usando um ID de transação, o que oferece mais flexibilidade e melhor acesso aos dados. Além disso, quatro novos campos foram inseridos no tipo "RenewalInfo", disponibilizando informações mais completas sobre a assinatura.
- 10:24 - Assinar solicitações de compras dentro do app
Este ano, as novas APIs Purchase Option e View Modifier exigem o formato JWS (JSON Web Signatures). Com elas, você pode definir a qualificação do cliente para preços introdutórios e assinar ofertas promocionais usando o formato JWS. A App Store Server Library simplifica o processo de assinatura no formato JWS. Você precisa recuperar a chave de assinatura de compra dentro do app do App Store Connect e usá-la na Server Library para criar as solicitações assinadas.
- 14:21 - Assinaturas de merchandising
Criamos uma view nova do SwiftUI, chamada SubscriptionOfferView, para ajudar você a mostrar e promover as assinaturas de renovação automática nos apps. Essa view simplifica o processo de assinatura de merchandising, pois carrega automaticamente os metadados dos produtos da App Store quando estes são declarados usando um ID de assinatura de renovação automática. Você pode personalizar a aparência de "SubscriptionOfferView" usando a imagem da assinatura configurada no App Store Connect ou fornecendo um ícone personalizado. Também pode definir um ícone de marcador de posição para ser exibido durante o download dos metadados da assinatura. E aprimorar a view com o modificador "subscriptionOfferViewDetailAction", que adiciona um botão "detailLink". Após o toque, esse botão executa uma ação personalizada e definida por você. Um padrão comum nessa ação é direcionar clientes para uma loja de assinatura dentro do app, permitindo que explorem e comprem os planos disponíveis. Para determinar o plano de assinatura que deve ser exibido em SubscriptonOfferView, considere os status das assinaturas de clientes com o modificador "subscriptionStatusTask", introduzido no iOS 17. Depois de converter os status das assinaturas do StoreKit em um modelo específico do app, você poderá atualizar a hierarquia de view. Você pode configurar "SubscriptionOfferView" para exibir planos diferentes com base no status atual de clientes, usando o parâmetro "visibleRelationship". As opções incluem "upgrade", "downgrade", "crossgrade", "current" e "all".