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ı getFlow aracı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, settings gibi). 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:

UygulamaKarmaşıklıkNe zaman kullanılır
Adapty Flow & Paywall Builder✅ KolayNo-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🟡 OrtaPaywall 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🔴 ZorHalihazı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.
Important

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:

  1. Flow’u alın: Adapty’den alın.
  2. Gösterin, satın alma işlemlerini Adapty halletsin: View’ı uygulamanızda gösterin.
  3. 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:

  1. Adapty Kontrol Paneli’nde uygulamanızı App Store ve/veya Google Play’e bağlayın.
  2. Adapty’de ürünlerinizi oluşturun.
  3. Bir flow oluşturun ve içine ürün ekleyin.
  4. Bir placement oluşturun ve flow’unuzu ekleyin.
  5. Uygulama kodunuza Adapty SDK’yı yükleyip etkinleştirin.
Tip

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:

  1. getFlow metodunu kullanarak placement ID’sine göre flow nesnesini alın.

  2. createFlowView metodunu 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’ı yoksa createFlowView bir hata döndürür — bunu onError içinde ele alın.

Important

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.

Tip

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.

Tip

Buton action’larını ve event’leri nasıl yöneteceğinizi anlatan kılavuzlarımızı okuyun.

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
    }