Açık kaynaklı bir SDK, uygulama içi satın alımları Android ile entegre etmek için

Uygulama içi satın alımları 30 dakikada uygulayın.

Android in-app purchases için kutudan çıkar çıkmaz arka uç

Uygulama içi satın alımlar, abonelik olayları için bir arka alt yapısı ve sunucu oluşturmaya ihtiyaç duyar. Bu, yüzlerce saatlik iş alabilir ve sürdürmek zorlu olabilir.
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
  }
}
Adapty SDK, uygulamanızda uygulama içi abonelikleri entegre etmenizi sağlar ve hazır alt yapımız, tüm abonelik olaylarını yönetir ve gelir artırıcı özellikler sunar.
// 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
		}
	}
}
Entegrasyondan bakıma – Adapty, IAP ile çalışmayı daha kolay hale getirmek için oluşturulmuştur.
Demo talep et

Neden Adapty SDK'sını seçmelisiniz?

Her an doğru abonelik durumu

Tüm platformlarda her zaman doğru abone durumunu alacağınızdan emin olabilirsiniz.

Sunucu tarafı makbuz doğrulaması

Satın alma doğrulamanızın doğru ve güvenli olduğu konusunda endişelenmenize gerek yok.

Her türlü abonelik durumunu yönetme

Ücretsiz denemeler, yükseltmeler, promosyon teklifleri, aile paylaşımı, yenilemeler ve daha fazlası.

Kısa bir sürüm döngüsü ile kurumsal hazır platform

>%99.99 SLA güvenilirliği ve düzenli ürün güncellemeleri.
Platformları yapılandırma
Adapty SDK'sını yükleme
Adapty.activate(
   "PUBLIC_SDK_KEY",
   customerUserId: "YOUR_USER_ID"
)
Satın alma olaylarını işleme

Hızlı ve kolay entegrasyon

iOS uygulamanıza Adapty SDK'sını entegre etmek için sadece birkaç saat harcayın ve geri kalanını biz hallederiz.

Sadece 5 SDK yöntemi ile Android uygulama içi satın alma işlemlerini uygulamak için

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
    }
}
 
 
 
 
 
 
Ücretsiz deneyin

Her türlü iş kolundan insanlar, gelirlerini artırmak için Adapty'e yöneliyor.

Adapty ile ne elde edersiniz?

Adapty SDK, uygulama gelirini artırmak için muazzam olanaklar sunar

Gerçek zamanlı analizler için senin Android Uygulaması

Verilerle %99.5 doğrulukla güvenin App Store Connect.
Başlayın
App Icon Gravity
Gravity Fit
Sağlık & Fitness
“Şeffaf ve gelişmiş analitik paneller, ek araçlar kullanmadan daha hızlı karar vermemize yardımcı oluyor. Bu bize çok zaman kazandırıyor ve dolayısıyla para.”
Ekaterina K,
Gravity Fit'te PM
Accuracy Adapty Appstore
ABC testing

Paywall A/B testi

En kârlı paywall'ı bulun ve uygulamanızın gelirini artırın.
A/B testini keşfedin
MentalGrowth
MentalGrowth
Sağlık & Wellness uygulaması
“Adapty’nin hızlı analizleri ve kolayca başlatılabilen A/B testi özelliği, hipotezleri hızla doğrulamamıza ve büyük sonuçlar elde etmemize olanak tanıdı.”
Vadim Nemchenko,
MentalGrowth'te Ürün Müdürü

Paywall'lar için uzaktan yapılandırma

Uygulamayı yeniden yayınlamaya gerek kalmadan paywall'ınızı uzaktan değiştirin.
Şimdi deneyin
Smitten
Smitten - Dating
Yaşam Tarzı
“Büyüme ve gelir ekibimiz, paywall'ları, ürün tekliflerini hızla uygulayıp yönetebiliyor ve birçok farklı pazarda fiyatlandırma seviyelerini test edebiliyor.”
Kyle Smith,
Smitten Dating'te veri yöneticisi
Table Json Table Locale

Kullanılabilirlik ve müşteri hizmetleri konusunda güvenilir

500'den fazla incelemeye göre
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