Adapty Flow Builder Hızlı Başlangıç | Adapty Dokümanları

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ı getFlow aracı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, 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 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.
Elle oluşturulan paywalllar🟡 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. Rehbere bakın.
Observer modu🔴 ZorKendi 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:

  1. Flow’u alın: Adapty’den alın.
  2. Görüntüleyin; satın alma işlemlerini Adapty sizin için yönetir: Görünümü uygulamanızda gösterin.
  3. 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:

  1. Uygulamanızı Adapty Kontrol Paneli’nde App Store ve/veya Google Play ile bağlayın.
  2. Adapty’de ürünlerinizi oluşturun.
  3. Bir flow oluşturun ve buna ürün ekleyin.
  4. Bir placement oluşturun ve flow’u buna ekleyin.
  5. 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:

  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’da yapılandırılmış bir view yoksa createFlowView hata döndürür — bunu onError iç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.

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
    }