Um SDK de código aberto para integrar compras no aplicativo no Android

Implemente compras no aplicativo em 30 minutos.

Back end pronto para Android compras in-app

Integrar compras in-app requer a criação de uma infraestrutura de backend e servidor para eventos de assinatura. Isso pode levar centenas de horas de trabalho e ser desafiador de manter.
import StoreKit
class Store: ObservableObject {
    private var productIDs = ["stone"]
    @Published var products = [Product]()
    init() {
        Task {
            await requestProducts()
        }
    }  
    @MainActor
    func requestProducts() async {
        do {
            products = try await Product.products(for: productIDs)
        } catch {
            print(error)
    }
  }
}
Section(header: Text("To buy")) {
 }
ForEach(store.products, id: .id) {
  product in
    HStack {
      Text(product.displayName)
      Spacer()
      Button("(product.displayPrice)") {
    }
  }
}
@Published var purchasedNonConsumables = [Product]()
@MainActor
func purchase(_ product: Product) async throws -> Transaction ? {
  let result =
    try await product.purchase()
  switch result {
    case .success(.verified(let transaction)):
      purchasedNonConsumables.append(product)
      await transaction.finish()
      return transaction
    default:
      return nil
  }
}
Button("(product.displayPrice)") {
 Task {
  try await store.purchase(product)
  }
}
ProductView(
 icon: "❀",
 quantity: "(store.purchasedNonConsumables.count)"
 )
 func listenForTransactions() -> Task < Void, Error > {
  return Task.detached {
    for await result in Transaction.updates {
      switch result {
        case let.verified(transaction):
          guard
          let product = self.products.first(where: {
            $0.id == transaction.productID
          })
          else {
            continue
          }
          self.purchasedNonConsumables.append(product)
          await transaction.finish()
        default:
          continue
      }
    }
  }
}
var transacitonListener: Task<Void, Error>?
init() {
   transacitonListener = listenForTransactions()
   Task {
     await requestProducts()
 }
}
@MainActor
private func handle(transactionVerification result: VerificationResult <Transaction> ) async {
  switch result {
    case let.verified(transaction):
      guard
      let product = self.products.first(where: {
        $0.id == transaction.productID
      })
      else {
        return
      }
      self.purchasedNonConsumables.insert(product)
      await transaction.finish()
    default:
      return
  }
}
O SDK Adapty permite que você integre assinaturas in-app em seu aplicativo iOS com nossa infraestrutura pronta, que lida com todos os eventos de assinatura e oferece recursos para aumentar a receita.
// Your app's code
Adapty.activate(this, "YOUR_APP_KEY")
 
// Make a purchase, Adapty handles the rest
Adapty.makePurchase(activity, product) { result ->
	when (result) {
		is AdaptyResult.Success -> {
			// successful purchase
		}
		is AdaptyResult.Error -> {
			// handle the error
		}
	}
}
Da integração à manutenção – a Adapty foi criada para facilitar o trabalho com IAP.
Solicitar uma demonstração

Por que escolher o SDK Adapty?

Estado de assinatura correto a qualquer momento

Fique tranquilo, você sempre obterá o estado correto do assinante em todas as plataformas.

Validação de recibo do lado do servidor

Não precisa se preocupar com a correção e segurança da validação de compras.

Tratando todos os tipos de estados de assinatura

Testes gratuitos, upgrades, ofertas promocionais, compartilhamento familiar, renovações e mais.

Plataforma pronta para empresas com um ciclo de lançamento curto

>99,99% de confiabilidade SLA e atualizações regulares do produto.
Configurando plataformas
Instalando o SDK Adapty
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
Processando eventos de compra

Integração rápida e fácil

Gaste apenas algumas horas para integrar o SDK Adapty em seu aplicativo iOS e nós cuidaremos do resto.

Apenas 5 métodos de SDK a serem implementados para Android compras in-app

Adapty.makePurchase(activity, product) { result ->
    when (result) {
        is AdaptyResult.Success -> {
            val info = result.value
            //NOTE: info is null in case of cross-grade with DEFERRED proration mode
            val profile = info?.profile
 
            if (profile?.accessLevels?.get("YOUR_ACCESS_LEVEL")?.isActive == true) {
                // grant access to premium features
            }
        }
        is AdaptyResult.Error -> {
            val error = result.error
            // handle the error
        }
    }
}
// Your app's code
Adapty.restorePurchases { [weak self] result in
    switch result {
        case let .success(profile):
            if info.profile.accessLevels["YOUR_ACCESS_LEVEL"]?.isActive ?? false {
	            // successful access restore
            }
        case let .failure(error):
            // handle the error
    }
}
&nbsp
// Your app's code
Adapty.identify("YOUR_USER_ID") { error ->
    if (error == null) {
        // successful identify
    }
}
 
 
 
 
 
 
// Your app's code
val builder = AdaptyProfileParameters.Builder()
    .with("Profile_Parameters")
 
Adapty.updateProfile(builder.build()) { error ->
    if (error != null) {
        // handle the error
    }
}
 
 
 
// Your app's code
Adapty.updateAttribution(attribution, AdaptyAttributionSource.CUSTOM) { error ->
    if (error != null) {
        //handle error
    }
}
 
 
 
 
 
 
Experimente gratuitamente

Pessoas de todos os tipos de negócios recorrem à Adapty para aumentar sua receita

O que você ganha com a Adapty?

O SDK Adapty oferece enormes possibilidades para aumentar a receita do aplicativo.

Análise em tempo real para o seu Android App

Confie nos dados com 99,5% de precisão com o App Store Connect.
Começar agora
App Icon Gravity
Gravity Fit
Saúde & Fitness
“Painéis analíticos transparentes e avançados nos ajudam a tomar decisões mais rápido sem usar ferramentas adicionais. Isso nos economiza muito tempo e, portanto, dinheiro.”
Ekaterina K,
PM na Gravity Fit
Accuracy Adapty Appstore
ABC testing

Teste A/B de paywall

Encontre o paywall mais lucrativo e aumente a receita do seu aplicativo.
Explore o teste A/B
MentalGrowth
MentalGrowth
Aplicativo de Saúde & Bem-estar
“A rápida análise da Adapty e a fácil implementação do recurso de teste A/B nos permitiram validar hipóteses rapidamente e obter ótimos resultados.”
Vadim Nemchenko,
Gerente de Produto na MentalGrowth

Configuração remota para paywalls

Altere seu paywall remotamente sem precisar re-lançar o aplicativo.
Experimente agora
Smitten
Smitten - Dating
Estilo de vida
“Nossa equipe de crescimento e receita consegue implementar e gerenciar rapidamente paywalls, ofertas de produtos e testar níveis de preços em muitos mercados diferentes.”
Kyle Smith,
Chefe de dados na Smitten Dating
Table Json Table Locale

Confiança na usabilidade e no serviço ao cliente

Com base em mais de 500 avaliações
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025
G2 Award: Leader (EMEA), winter 2025