Kotlin Multiplatform SDK'da paywall kullanarak satın alımları etkinleştirme
Uygulama içi satın alımları 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)
- Paywalls, hangi ürünlerin sunulacağını tanımlayan yapılandırmalardır. Adapty’de ürünlere yalnızca paywall’lar aracılığıyla ulaşılır; bu tasarım sayesinde uygulama koduna dokunmadan teklifleri, fiyatlandırmayı ve ürün kombinasyonlarını değiştirebilirsiniz.
- Placement’lar – uygulamanızda paywall’ların nerede ve ne zaman gösterileceğini belirler (
main,onboarding,settingsgibi). Kontrol panelinde placement’lara paywall atarsınız, ardından kodunuzda placement ID’siyle bunları çağırırsınız. Bu yapı A/B testi çalıştırmayı ve farklı kullanıcılara farklı paywall göstermeyi kolaylaştırı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 Paywall Builder | ✅ Kolay | Kodsuz builder’da eksiksiz, satın almaya hazır bir paywall oluşturursunuz. Adapty onu otomatik olarak render eder; karmaşık satın alma akışını, makbuz doğrulamasını ve abonelik yönetimini arka planda halleder. |
| Elle oluşturulan paywall’lar | 🟡 Orta | Paywall arayüzünü uygulama kodunuzda kendiniz uygularsınız, ancak ürün tekliflerinde esnekliği korumak için paywall nesnesini yine Adapty’den alırsınız. Kılavuza bakın. |
| Observer mode | 🔴 Zor | Kendi satın alma altyapınız varsa ve bunu kullanmaya devam etmek istiyorsanız. Observer mode’un Adapty’de bazı kısıtlamaları olduğunu unutmayın. Makaleye bakın. |
Aşağıdaki adımlar, Adapty paywall builder’da oluşturulan bir paywall’ın nasıl uygulanacağını göstermektedir.
Paywall builder’ı kullanmak istemiyorsanız elle oluşturulan paywall’larda satın alma işlemlerini yönetme kılavuzuna bakın.
Adapty paywall builder’da oluşturulan bir paywall’ı göstermek için uygulama kodunuzda yalnızca şunları yapmanız yeterlidir:
- Paywall’ı alın: Paywall’ı Adapty’den alın.
- Paywall’ı gösterin, satın alımları Adapty halleder: Aldığınız paywall container’ını uygulamanızda gösterin.
- Buton eylemlerini işleyin: Kullanıcının paywall’daki 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 ya da paywall’ı 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 paywall oluşturun ve içine ürün ekleyin.
- Bir placement oluşturun ve paywall’ınızı buna 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 ya da Geliştirici CLI ile paywall ve placement oluşturmaktır.
1. Paywall’ı alın
Paywall’larınız, kontrol panelinde yapılandırılan placement’larla ilişkilendirilir. Placement’lar, farklı kitleler için farklı paywall’lar çalıştırmanıza veya A/B testi yapmanıza olanak tanır.
Adapty paywall builder’da oluşturulan bir paywall’ı almak için şunları yapmanız gerekir:
-
getPaywallmetodunu kullanarak placement ID’sine görepaywallnesnesini alın ve bunun builder’da oluşturulmuş bir paywall olup olmadığını kontrol edin. -
createPaywallViewmetodunu kullanarak paywall görünüm yapılandırmasını alın. Görünüm yapılandırması, paywall’ı göstermek için gereken arayüz öğelerini ve stil bilgilerini içerir.
Görünüm yapılandırmasını alabilmek için Paywall Builder’da Show on device geçişini açmanız gerekir. Aksi takdirde boş bir görünüm yapılandırması alırsınız ve paywall gösterilmez.
Adapty.getPaywall("YOUR_PLACEMENT_ID")
.onSuccess { paywall ->
if (!paywall.hasViewConfiguration) {
return@onSuccess
}
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
}
.onError { error ->
// handle the error
}
2. Paywall’ı gösterin
Paywall yapılandırmasını aldıktan sonra, paywall’ınızı görüntülemek için birkaç satır kod eklemeniz yeterlidir.
Görsel paywall’ı cihaz ekranında göstermek için önce yapılandırmanız gerekir. Bunun için AdaptyUI.createPaywallView() metodunu çağırın:
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
Görünüm başarıyla oluşturulduktan sonra cihaz ekranında gösterebilirsiniz.
Paywall’ın nasıl gösterileceğine dair daha fazla ayrıntı için kılavuzumuza bakın.
3. Buton eylemlerini işleyin
Kullanıcılar paywall’daki butonlara tıkladığında Kotlin Multiplatform SDK, satın almaları, geri yüklemeyi, paywall’ı kapatmayı ve bağlantı açmayı otomatik olarak işler.
Ancak diğer butonların özel veya önceden tanımlanmış ID’leri vardır ve eylemlerin kodunuzda işlenmesi gerekir. Ayrıca 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 eklemenize gerek yoktur, ancak gerekirse nasıl yapıldığını buradan görebilirsiniz.
Buton eylemlerini ve olayları nasıl işleyeceğinize dair kılavuzlarımızı okuyun.
AdaptyUI.setPaywallsEventsObserver(object : AdaptyUIPaywallsEventsObserver {
override fun paywallViewDidPerformAction(view: AdaptyUIPaywallView, action: AdaptyUIAction) {
when (action) {
AdaptyUIAction.CloseAction, AdaptyUIAction.AndroidSystemBackAction -> view.dismiss()
}
}
})
Sonraki adımlar
Paywall’ınız uygulamada gösterilmeye hazır. Paywall üzerinden test satın alımı yapabildiğinizden emin olmak için App Store sandbox ortamında veya Google Play Store’da satın alımlarınızı 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 paywall actions
AdaptyUI.setPaywallsEventsObserver(object : AdaptyUIPaywallsEventsObserver {
override fun paywallViewDidPerformAction(view: AdaptyUIPaywallView, action: AdaptyUIAction) {
when (action) {
is AdaptyUIAction.CloseAction -> view.dismiss()
}
}
})
// Get and display the paywall
Adapty.getPaywall("YOUR_PLACEMENT_ID")
.onSuccess { paywall ->
if (!paywall.hasViewConfiguration) {
// Use custom logic
return@onSuccess
}
val paywallView = AdaptyUI.createPaywallView(paywall = paywall)
paywallView?.present()
}
.onError { error ->
// handle the error
}