Kotlin Multiplatform SDK'da Flow & Paywall Builder ile satın almaları etkinleştirin
Bu kılavuz, Adapty Kotlin Multiplatform SDK v4 (beta) API’lerini kullanmaktadır. v3 kullanıyorsanız, ilgili metod adları için geçiş kılavuzuna bakın.
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)
- Flow’lar – ürünleri kullanıcılara sunan ekran dizileri; no-code Flow & Paywall Builder ile oluşturulur. SDK bunları
getFlowaracılığıyla alır. Kullanıcı arayüzünü kendi kodunuzla oluşturmayı tercih ediyorsanız bunun yerine paywall kullanın — bkz. Paywall’ları manuel olarak uygulama. - Placement’lar – uygulamanızda flow’ları nerede ve ne zaman göstereceğiniz (
main,onboarding,settingsgibi). Flow’ları kontrol panelinde placement’lara bağlar, ardından kodunuzda placement ID’si ile talep edersiniz. Bu sayede A/B testleri çalıştırmak ve farklı kullanıcılara farklı flow’lar göstermek kolaylaşır.
Adapty, uygulamanızda satın alımları etkinleştirmek için üç yol sunar. Uygulama gereksinimlerinize göre birini seçin:
| Uygulama | Karmaşıklık | Ne zaman kullanılır |
|---|---|---|
| Adapty Flow & Paywall Builder | ✅ Kolay | No-code builder’da eksiksiz, satın almaya hazır bir flow oluşturursunuz. Adapty bunu otomatik olarak render eder ve tüm karmaşık satın alma akışını, makbuz doğrulamasını ve abonelik yönetimini arka planda halleder. |
| Manuel oluşturulan paywall’lar | 🟡 Orta | Paywall arayüzünüzü uygulama kodunuzda kendiniz uygularsınız, ancak ürün tekliflerinde esnekliği korumak için flow nesnesini yine de Adapty’den alırsınız. Kılavuza bakın. |
| Observer mode | 🔴 Zor | Halihazırda kendi satın alma altyapınız var ve bunu kullanmaya devam etmek istiyorsunuz. Observer mode’un Adapty’de bazı kısıtlamaları olduğunu unutmayın. Makaleye bakın. |
Aşağıdaki adımlar, Adapty Flow & Paywall Builder’da oluşturulan bir flow’un nasıl uygulanacağını göstermektedir.
Paywall arayüzünü kendiniz oluşturmayı tercih ediyorsanız, bkz. Paywallları manuel olarak uygulama.
Adapty Flow & Paywall Builder’da oluşturulan bir flow’u uygulamanızda görüntülemek için yalnızca şunları yapmanız gerekir:
- Flow’u alın: Adapty’den alın.
- Gösterin, satın alma işlemlerini Adapty halletsin: View’ı uygulamanızda gösterin.
- Buton aksiyonlarını yönetin: Kullanıcı etkileşimlerini uygulamanızın yanıtlarıyla ilişkilendirin. Örneğin, kullanıcılar butonlara tıkladığında bağlantılar açın veya flow’u kapatın.
Başlamadan Önce
Başlamadan önce şu adımları tamamlayın:
- Adapty Kontrol Paneli’nde uygulamanızı App Store ve/veya Google Play’e bağlayın.
- Adapty’de ürünlerinizi oluşturun.
- Bir flow oluşturun ve içine ürün ekleyin.
- Bir placement oluşturun ve flow’unuzu ekleyin.
- Uygulama kodunuza Adapty SDK’yı yükleyip etkinleştirin.
Bu adımları tamamlamanın en hızlı yolu hızlı başlangıç kılavuzunu takip etmek veya Developer CLI kullanarak flow’lar ve placement’lar oluşturmaktır.
1. Flow’u al
Flow’larınız, kontrol panelinde yapılandırılmış placement’larla ilişkilendirilmiştir. Placement’lar, farklı kitleler için farklı flow’lar çalıştırmanıza veya A/B testleri yapmanıza olanak tanır.
Adapty Flow & Paywall Builder’da oluşturulan bir flow’u almak için şunları yapmanız gerekir:
-
getFlowmetodunu kullanarak placement ID’sine göreflownesnesini alın. -
createFlowViewmetodunu kullanarak flow view’ını oluşturun. View, flow’u görüntülemek için gereken UI öğelerini ve stilini içerir. Flow’un yapılandırılmış bir view’ı yoksacreateFlowViewbir hata döndürür — bunuonErroriçinde ele alın.
Görünümü almak için flow’u yayınlayın. Yayınlanmamış düzenlemeleri olan bir flow Dirty statüsündedir ve placement’ı son yayınlanan sürümü sunmaya devam eder.
Adapty.getFlow("YOUR_PLACEMENT_ID")
.onSuccess { flow ->
AdaptyUI.createFlowView(flow)
.onSuccess { view ->
view.present()
}
.onError { error ->
// the flow has no view configured, or view creation failed
}
}
.onError { error ->
// handle the error
}
2. Flow’u görüntüleme
Artık flow’a sahip olduğunuzda, onu görüntülemek için birkaç satır eklemek yeterlidir.
Görsel flow’u cihaz ekranında göstermek için önce view’ı oluşturmanız gerekir. Bunun için AdaptyUI.createFlowView() metodunu çağırın:
AdaptyUI.createFlowView(flow)
.onSuccess { view ->
view.present()
}
.onError { error ->
// handle the error
}
Görünüm başarıyla oluşturulduktan sonra cihaz ekranında gösterebilirsiniz. Her görünüm yalnızca bir kez kullanılabilir: dismiss() çağrısından sonra flow’u tekrar göstermek için createFlowView fonksiyonunu tekrar çağırmanız gerekir.
Bir flow’un nasıl görüntüleneceğine ilişkin daha fazla ayrıntı için kılavuzumuza bakın.
3. Buton eylemlerini yönetme
Kullanıcılar flow içindeki butonlara tıkladığında, Kotlin Multiplatform SDK satın alma işlemlerini, geri yüklemeyi, flow’u kapatmayı ve bağlantı açmayı otomatik olarak yönetir.
Ancak diğer butonların özel veya önceden tanımlanmış ID’leri vardır ve kodunuzda eylem yönetimi gerektirir. Ya da varsayılan davranışlarını geçersiz kılmak isteyebilirsiniz.
Örneğin, kapat butonu için varsayılan davranış şöyle görünür. Bunu koda eklemeniz gerekmez, ancak burada gerektiğinde nasıl yapıldığını görebilirsiniz.
Varsayılan olarak, başarılı bir satın alma işleminin ardından flow açık kalmaya devam eder. Satın alma tamamlandığında flow’u kapatmak istiyorsanız, görünümü flowViewDidFinishPurchase callback’inde dismiss edin.
AdaptyUI.setFlowsEventsObserver(object : AdaptyUIFlowsEventsObserver {
override fun flowViewDidPerformAction(view: AdaptyUIFlowView, action: AdaptyUIAction) {
when (action) {
is AdaptyUIAction.CloseAction -> mainUiScope.launch { view.dismiss() }
else -> Unit
}
}
override fun flowViewDidFinishPurchase(
view: AdaptyUIFlowView,
product: AdaptyPaywallProduct,
purchaseResult: AdaptyPurchaseResult
) {
if (purchaseResult !is AdaptyPurchaseResult.UserCanceled) {
mainUiScope.launch { view.dismiss() }
}
}
})
Sonraki adımlar
Flow’unuz uygulamada görüntülenmeye hazır. Bir test satın alımını flow üzerinden tamamlayabildiğinizden emin olmak için App Store sandbox ortamında veya Google Play Store üzerinde satın alımlarınızı test edin.
Şimdi, doğru kullanıcılara flow gösterdiğinizden veya ücretli özelliklere erişim verdiğinizden emin olmak için kullanıcıların access level’ını kontrol etmeniz gerekiyor.
Tam örnek
Tüm bu adımların uygulamanızda birlikte nasıl entegre edilebileceği aşağıda gösterilmektedir.
// Set up the observer for handling flow events
AdaptyUI.setFlowsEventsObserver(object : AdaptyUIFlowsEventsObserver {
override fun flowViewDidPerformAction(view: AdaptyUIFlowView, action: AdaptyUIAction) {
when (action) {
is AdaptyUIAction.CloseAction -> mainUiScope.launch { view.dismiss() }
else -> Unit
}
}
override fun flowViewDidFinishPurchase(
view: AdaptyUIFlowView,
product: AdaptyPaywallProduct,
purchaseResult: AdaptyPurchaseResult
) {
if (purchaseResult !is AdaptyPurchaseResult.UserCanceled) {
mainUiScope.launch { view.dismiss() }
}
}
})
// Get and display the flow
Adapty.getFlow("YOUR_PLACEMENT_ID")
.onSuccess { flow ->
AdaptyUI.createFlowView(flow)
.onSuccess { view ->
view.present()
}
.onError { error ->
// the flow has no view configured — use custom logic
}
}
.onError { error ->
// handle the error
}