Kotlin Multiplatform SDK'da Flow Builder ile satın almaları etkinleştirme
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 – no-code Flow Builder ile oluşturulan, kullanıcılara ürünleri sunan ekran dizileri. SDK bunları
getFlowaracılığıyla getirir. Kullanıcı arayüzünü kendi kodunuzda oluşturmayı tercih ederseniz, bunun yerine bir 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 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. |
| Elle oluşturulan paywalllar | 🟡 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. Rehbere bakın. |
| Observer modu | 🔴 Zor | Kendi satın alma altyapınız zaten mevcuttur ve bunu kullanmaya devam etmek istersiniz. Observer modunun Adapty’de bazı kısıtlamaları olduğunu unutmayın. Makaleye bakın. |
Aşağıdaki adımlar, Adapty Flow Builder’da oluşturulmuş 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 Builder’da oluşturulmuş bir flow’u görüntülemek için uygulama kodunuzda yalnızca şunları yapmanız gerekir:
- Flow’u alın: Adapty’den alın.
- Görüntüleyin; satın alma işlemlerini Adapty sizin için yönetir: Görünümü uygulamanızda gösterin.
- Buton eylemlerini yönetin: Kullanıcı etkileşimlerini uygulamanızın bu etkileşimlere verdiği yanıtlarla ilişkilendirin. Örneğin, kullanıcılar butonlara tıkladığında bağlantı açın veya flow’u kapatın.
Başlamadan önce
Başlamadan önce şu adımları tamamlayın:
- Uygulamanızı Adapty Kontrol Paneli’nde App Store ve/veya Google Play ile bağlayın.
- Adapty’de ürünlerinizi oluşturun.
- Bir flow oluşturun ve buna ürün ekleyin.
- Bir placement oluşturun ve flow’u buna 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ın
Flow’larınız, kontrol panelinde yapılandırılan placement’larla ilişkilidir. Placement’lar, farklı kitleler için farklı flow’lar çalıştırmanıza veya A/B testleri yapmanıza olanak tanır.
Adapty Flow Builder’da oluşturulmuş 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’da yapılandırılmış bir view yoksacreateFlowViewhata döndürür — bunuonErroriçinde ele alın.
Görünümü almak için Flow Builder’da Show on device geçişini açmanız gerekir. Aksi takdirde, createFlowView bir hata döndürecek ve flow görüntülenmeyecektir.
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
}