Kotlin Multiplatform SDK'da özel paywallınızda satın almaları etkinleştirin
Bu kılavuz, Adapty’yi özel paywalllarınıza nasıl entegre edeceğinizi açıklar. Paywall implementasyonu üzerinde tam kontrolü elinizde tutarken Adapty SDK ürünleri getirir, yeni satın almaları yönetir ve önceki satın almaları geri yükler. Bu kılavuz, Adapty Kotlin Multiplatform SDK v4 (beta) API’lerini kullanmaktadır. v3 kullanıyorsanız, karşılık gelen metod adları için migration kılavuzuna bakın.
Bu kılavuz, özel paywall’lar uygulayan geliştiriciler içindir. Satın alma işlemlerini etkinleştirmenin en kolay yolunu arıyorsanız, Adapty Flow Builder’ı kullanın. Flow Builder ile no-code görsel editörde flow’lar oluşturursunuz, Adapty tüm satın alma mantığını otomatik olarak yönetir ve uygulamanızı yeniden yayınlamadan farklı tasarımları test edebilirsiniz.
Başlamadan önce
Ürünleri ayarlama
Uygulama içi satın almaları etkinleştirmek için üç temel kavramı anlamanız gerekir:
- Ürünler – kullanıcıların satın alabileceği her şey (abonelikler, consumable’lar, süresiz erişim)
- Paywalllar – hangi ürünlerin sunulacağını tanımlayan yapılandırmalar. Adapty’de ürünlere yalnızca paywalllar aracılığıyla ulaşılabilir; bu tasarım sayesinde uygulama koduna dokunmadan ürünleri, fiyatları ve teklifleri değiştirebilirsiniz. SDK v4’te bir placement’a ait paywall varyantları bir flow nesnesi tarafından taşınır; bir flow çeker ve ürünlerini sorgularsınız.
- Placement’lar – uygulamanızda paywallların nerede ve ne zaman gösterileceği (
main,onboarding,settingsgibi). Kontrol panelinde placement’lar için paywalllar ayarlarsınız, ardından kodunuzda placement ID’siyle bunları talep edersiniz. Bu yaklaşım A/B testi çalıştırmayı ve farklı kullanıcılara farklı paywalllar göstermeyi kolaylaştırır.
Özel paywall kullanıyor olsanız bile bu kavramları anladığınızdan emin olun. Temel olarak, bunlar uygulamanızda sattığınız ürünleri yönetmenin yoludur.
Özel paywall’unuzu uygulamak için bir paywall oluşturmanız ve bunu bir placement’a eklemeniz gerekir. Bu kurulum, ürünlerinizi almanızı sağlar. Kontrol panelinde yapmanız gerekenleri anlamak için buradaki hızlı başlangıç kılavuzunu takip edin.
Kullanıcıları yönetme
Backend kimlik doğrulaması ile veya olmadan çalışabilirsiniz.
Ancak Adapty SDK, anonim ve tanımlı kullanıcıları farklı şekilde ele alır. Ayrıntıları anlamak ve kullanıcılarla doğru şekilde çalıştığınızdan emin olmak için kimlik belirleme hızlı başlangıç kılavuzunu okuyun.
Adım 1. Ürünleri alın
Özel paywallınız için ürünleri almak üzere şunları yapmanız gerekir:
- placement ID’sini
getFlowmetoduna geçirerekflownesnesini alın. - Bu flow için
getPaywallProductsmetodunu kullanarak ürünler dizisini alın.
fun loadPaywall() {
Adapty.getFlow(placementId = "YOUR_PLACEMENT_ID")
.onSuccess { flow ->
Adapty.getPaywallProducts(flow = flow)
.onSuccess { products ->
// Use products to build your custom paywall UI
}
.onError { error ->
// Handle the error
}
}
.onError { error ->
// Handle the error
}
}
Adım 2. Satın almaları kabul edin
Kullanıcı özel paywall’unuzda bir ürüne dokunduğunda, seçilen ürünle makePurchase metodunu çağırın. Bu işlem satın alma akışını yönetir ve güncellenmiş profili döndürür.
fun purchaseProduct(product: AdaptyPaywallProduct) {
Adapty.makePurchase(product = product)
.onSuccess { purchaseResult ->
when (purchaseResult) {
is AdaptyPurchaseResult.Success -> {
val profile = purchaseResult.profile
// Purchase successful, profile updated
}
is AdaptyPurchaseResult.UserCanceled -> {
// User canceled the purchase
}
is AdaptyPurchaseResult.Pending -> {
// Purchase is pending (e.g., user will pay offline with cash)
}
}
}
.onError { error ->
// Handle the error
}
}
Adım 3. Satın almaları geri yükleyin
Uygulama mağazaları, abonelik içeren tüm uygulamaların kullanıcılara satın almalarını geri yükleme imkânı sunmasını zorunlu kılar.
Kullanıcı geri yükleme düğmesine dokunduğunda restorePurchases metodunu çağırın. Bu işlem, satın alma geçmişini Adapty ile senkronize eder ve güncellenmiş profili döndürür.
fun restorePurchases() {
Adapty.restorePurchases()
.onSuccess { profile ->
// Restore successful, profile updated
}
.onError { error ->
// Handle the error
}
}
Adım 4. Abonelik durumunu kontrol edin
Satın alma veya geri yükleme işleminin ardından, paywall’ı gösterip göstermeyeceğinize ya da ücretli özellikleri açıp açmayacağınıza karar vermek için kullanıcının access level bilgisini kontrol edin. makePurchase ve restorePurchases metodları güncel profili zaten döndürür; uygulamanın başka bir yerinde mevcut duruma ihtiyaç duyduğunuzda getProfile metodunu kullanın:
fun checkPremiumAccess() {
Adapty.getProfile()
.onSuccess { profile ->
val hasPremiumAccess = profile.accessLevels["premium"]?.isActive == true
// Grant access to paid features if hasPremiumAccess is true
}
.onError { error ->
// Handle the error
}
}
Abonelik durumunu kontrol etmenin ve gerçek zamanlı güncellemeleri dinlemek de dahil olmak üzere izlemenin daha fazla yolunu öğrenmek için bkz. Abonelik durumunu kontrol etme.
Sonraki adımlar
Sorularınız mı var ya da sorunlarla mı karşılaşıyorsunuz? Sık sorulan soruların yanıtlarını bulabileceğiniz veya kendi sorularınızı sorabileceğiniz destek forumumuza göz atın. Ekibimiz ve topluluğumuz yardımcı olmak için burada!
Paywall’unuz uygulamada gösterilmeye hazır. Paywall üzerinden bir test satın alması tamamlayabildiğinizi doğrulamak için satın almalarınızı App Store sandbox’ta veya Google Play Store’da test edin. Bunun üretim ortamında nasıl çalıştığını görmek için uygun hata yönetimi ve durum yönetimiyle satın alma işlemini gösteren örnek uygulamamızdaki AppViewModel.kt dosyasına bakabilirsiniz.