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 ve paywalllar – ürünleri kullanıcılara sunan ekranlar; 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 ederseniz bkz. Özel paywallları uygulama. - Placement’lar – uygulamanızda flow’ları ve paywallları nerede ve ne zaman göstereceğiniz (
main,onboarding,settingsgibi). Bunları kontrol panelinde placement’lara bağlar, ardından kodunuzda placement ID’siyle çağırırsınız. Bu sayede A/B testi yapmak ve farklı kullanıcılara farklı içerikler 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 ve Paywall Builder | ✅ Kolay | No-code builder’da eksiksiz, satın almaya hazır bir flow veya paywall oluşturursunuz. Adapty bunu otomatik olarak render eder ve tüm karmaşık satın alma mantığını, makbuz doğrulamasını ve abonelik yönetimini arka planda halleder. |
| Özel paywalllar | 🟡 Orta | Paywall kullanıcı 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 modu | 🔴 Zor | Kendi satın alma altyapınız zaten mevcut ve bunu kullanmaya devam etmek istiyorsunuz. Observer modunun Adapty’de bazı kısıtlamaları olduğunu unutmayın. Makaleye bakın. |
Aşağıdaki adımlar, Adapty Flow & Paywall Builder’da oluşturulmuş bir flow veya paywall’un nasıl uygulanacağını göstermektedir.
Paywall arayüzünü kendiniz oluşturmayı tercih ediyorsanız, bkz. Özel paywall’ları uygulama.
Adapty Flow & Paywall Builder’da oluşturulmuş bir flow veya paywall’u uygulamanızda göstermek için kod tarafında yalnızca şunları yapmanız gerekir:
- Flow veya paywall’ı alın: Adapty’den alın.
- Görüntüleyin, satın alma işlemlerini Adapty halleder: Görünümü 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 paywall’ı kapatın.
Başlamadan önce
Başlamadan önce aşağıdaki adımları tamamlayın:
- Adapty Kontrol Paneli’nde uygulamanızı App Store ve/veya Google Play ile bağlayın.
- Adapty’de ürünlerinizi oluşturun.
- Bir flow veya paywall oluşturun ve ürünleri ekleyin.
- Bir placement oluşturun ve flow ya da paywall’unuzu ekleyin.
- Uygulama kodunuzda Adapty SDK’yı yükleyin ve 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 veya paywall’ı alın
Flow’larınız ve paywall’larınız, kontrol panelinde yapılandırılan placement’larla ilişkilendirilir. Placement’lar, farklı kitleler için farklı flow’lar veya paywall’lar çalıştırmanıza ya da A/B testi yapmanıza olanak tanır.
Adapty Flow & Paywall Builder’da oluşturulan bir flow veya paywall’ı almak için şunları yapmanız gerekir:
-
getFlowmetodunu kullanarak placement ID’sine göreflownesnesini alın. -
createFlowViewmetodunu kullanarak flow görünümünü oluşturun. Görünüm, gösterim için gerekli UI öğelerini ve stilini içerir. Flow’un yapılandırılmış bir görünümü yoksacreateFlowViewhata döndürür — bunuonErroriçinde ele alın.
Görünümü almak için flow veya paywall’ı yayınlayın. Yayınlanmamış düzenlemeleri olan bir flow veya paywall Dirty durumundadır ve bu placement en 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 veya paywallı göster
Artık flow’a sahip olduğunuzda, onu görüntülemek için birkaç satır kod eklemeniz yeterli.
Flow’u cihaz ekranında görüntüleyebilmek 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 bir kez daha göstermek için createFlowView işlevini tekrar çağırmanız gerekir.
Bir flow veya paywall’ın nasıl görüntüleneceğine dair daha fazla ayrıntı için kılavuzumuza bakın.
3. Buton eylemlerini yönetin
Kullanıcılar flow veya paywall’daki butonlara tıkladığında, Kotlin Multiplatform SDK satın alma işlemlerini, geri yüklemeyi, ekranı kapatmayı ve bağlantıları 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 yapılmasını gerektirir. Ya da varsayılan davranışlarını geçersiz kılmak isteyebilirsiniz.
Örneğin, aşağıda kapat butonu için varsayılan davranış gösterilmektedir. Bunu koda eklemeniz gerekmez, ancak gerektiğinde nasıl yapıldığını buradan 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 veya paywallınız uygulamada gösterilmeye hazır. Bir test satın alma işlemini tamamlayabildiğinizden emin olmak için App Store sandbox ortamında veya Google Play Store üzerinde satın alma işlemlerinizi test edin.
Şimdi, doğru kullanıcılara paywall 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
}