iOS SDK'da Flow Builder ile satın almaları etkinleştirin
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, no-code Flow Builder ile oluşturulan ekran dizileri. SDK bunları getFlow ile alır. Kullanıcı arayüzünü kendi kodunuzla oluşturmayı tercih ederseniz, bunun yerine paywall kullanın — bkz. Paywallları 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 çok kolay olur.
Adapty, uygulamanızda satın alımları etkinleştirmeniz için üç yol sunar. Uygulama gereksinimlerinize göre birini seçin:
Paywall arayüzünüzü uygulama kodunuzda kendiniz uygularsınız; ancak ürün tekliflerinde esnekliği korumak için flow nesnesini yine Adapty’den alırsınız. Rehbere göz atı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şturulan bir flow’un nasıl uygulanacağını göstermektedir.
Adapty Flow Builder’da oluşturulan 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 almaları Adapty sizin için yönetecektir: 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 butona tıkladığında bağlantılar açın veya flow’u kapatın.
Flow’larınız, kontrol panelinde yapılandırılmış placement’larla ilişkilendirilir. Placement’lar, farklı kitleler için farklı flow’lar çalıştırmanıza veya A/B testi yapmanıza olanak tanır.
Adapty Flow Builder’da oluşturulan bir flow’u edinmek için şunları yapmanız gerekir:
getFlow metodunu kullanarak placement ID’sine göre flow nesnesini alın ve bir görünüm yapılandırması içerip içermediğini kontrol edin.
getFlowConfiguration metodunu kullanarak görünüm yapılandırmasını edinin. Bu yapılandırma, flow’u görüntülemek için gereken UI öğelerini ve stil bilgilerini içerir.
Artık flow konfigürasyonuna sahip olduğunuza göre, flow’unuzu görüntülemek için birkaç satır kod eklemeniz yeterli.
SwiftUI’da flow’u görüntülerken aynı zamanda olayları da yönetmeniz gerekir. didFailPurchase, didFinishRestore, didFailRestore ve didReceiveError zorunludur. Test sırasında bu olayları kayıt altına almak için aşağıdaki kod parçacığını olduğu gibi kopyalayabilirsiniz.
didFinishPurchase callback’ini işlemek zorunlu değildir, ancak başarılı bir satın alma işleminden sonra belirli eylemleri gerçekleştirmek istediğinizde kullanışlıdır. Bu callback’i uygulamazsanız flow otomatik olarak kapanır.
AdaptyFlowControllerDelegate implementasyonunu yaparak olayları yönetin. En azından zorunlu hata yöneticilerini implemente edin (varsayılan implementasyonu bulunmayan üç metot):
Bir flow’un nasıl görüntüleneceğine dair daha fazla ayrıntı için rehberimize bakın.
3. Buton eylemlerini yönetin
Kullanıcılar butona tıkladığında, iOS SDK satın alma işlemlerini, geri yüklemeleri, flow’u kapatmayı ve bağlantı açmayı otomatik olarak yönetir.
Ancak bazı butonların özel veya önceden tanımlanmış kimlikleri vardır ve kodunuzda eylemlerin yönetilmesini gerektirir. Ya da varsayılan davranışlarını geçersiz kılmak isteyebilirsiniz.
Örneğin, kapat butonunu şu şekilde yönetebilirsiniz. UIKit’te, .close tetiklendiğinde SDK controller’ı otomatik olarak kapatır — yalnızca özel bir davranış istiyorsanız geçersiz kılın. SwiftUI’da ise isPresented binding’inizi kendiniz false olarak ayarlamanız gerekir.
Sorularınız mı var ya da sorunlarla mı karşılaşıyorsunuz? Sık sorulan soruların yanıtlarını bulabileceğiniz veya kendi sorularınızı sorabileceğiniz destek forumumuza göz atın. Ekibimiz ve topluluğumuz yardımcı olmak için burada!