Skill'ler SDK entegrasyonu, flow ve paywall oluşturma, yayın öncesi denetim, placement taşıma ve daha fazlasını kapsar. Görevi kendi cümlelerinizle anlatın, ajanınız doğru skill'i seçsin.
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 paywall’lar – ürünleri kullanıcılara sunan ekranlar; 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 ederseniz Özel paywall’ları uygulama bölümüne bakın.
Placement’lar – uygulamanızda flow’ları ve paywall’ları nerede ve ne zaman göstereceğiniz (main, onboarding, settings gibi). Bunları kontrol panelinden placement’lara bağlar, ardından kodunuzda placement ID’si ile çağırırsınız. Bu sayede A/B testi yapmak ve farklı kullanıcılara farklı içerikler göstermek çok kolaylaşır.
Adapty, uygulamanızda satın alımları etkinleştirmeniz için üç yol sunar. Uygulama gereksinimlerinize göre birini seçin:
Paywall arayüzünü 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
🔴 Zor
Kendi satın alma altyapınız zaten var ve onu kullanmaya devam etmek istiyorsunuz. Observer mode’un Adapty’de bazı sınırlamaları olduğunu unutmayın. Makaleye bakın.
Important
Aşağıdaki adımlar, Adapty Flow & Paywall Builder’da oluşturulmuş bir flow veya paywall’un nasıl uygulanacağını gösterir.
Flow’larınız ve paywall’larınız, kontrol panelinde yapılandırılmış placement’larla ilişkilidir. Placement’lar, farklı kitleler için farklı flow’lar veya paywall’lar çalıştırmanıza ya da A/B testleri yapmanıza olanak tanır.
Adapty Flow & Paywall Builder’da oluşturulan bir flow veya paywall’ı edinmek için şunları yapmanız gerekir:
getFlow metodunu kullanarak placement ID’siyle 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, görüntüleme için gereken UI öğelerini ve stilini içerir.
func loadFlow() async { let flow = try await Adapty.getFlow(placementId: "YOUR_PLACEMENT_ID") guard flow.hasViewConfiguration else { print("Flow doesn't have a view configuration") return } flowConfiguration = try await AdaptyUI.getFlowConfiguration(forFlow: flow)}
2. Flow veya paywall’ı görüntüleme
Artık flow yapılandırmasına sahip olduğunuzda, flow veya paywall’ınızı görüntülemek için yalnızca birkaç satır kod eklemeniz yeterli.
SwiftUI’da flow’u görüntülerken olayları da yönetmeniz gerekir. didFinishPurchase, didFailPurchase, didFinishRestore, didFailRestore ve didReceiveError zorunludur. Test sırasında bu olayları günlüğe kaydetmek için aşağıdaki kod parçacığını olduğu gibi kopyalayabilirsiniz.
Tip
Flow, başarılı bir satın alma işleminin ardından otomatik olarak kapanmaz. didFinishPurchase içinde, flow’u kapatmak için sunum bağlayıcınızı false olarak ayarlayın ya da flow’un sonraki ekranlara devam etmesi için hiçbir şey yapmayın.
.flow( isPresented: $flowPresented, flowConfiguration: flowConfiguration, didFinishPurchase: { product, purchaseResult in print("Purchase finished successfully") flowPresented = false // or do nothing to let the flow continue }, didFailPurchase: { product, error in print("Purchase failed: \(error)") }, didFinishRestore: { profile in print("Restore finished successfully") }, didFailRestore: { error in print("Restore failed: \(error)") }, didReceiveError: { error in flowPresented = false print("Flow error: \(error)") })
AdaptyFlowControllerDelegate arayüzünü uygulayarak olayları yönetin. En azından varsayılan uygulaması olmayan dört metodu implemente edin. Controller, başarılı bir satın alma sonrasında kendini otomatik olarak kapatmaz — didFinishPurchase içinde kapatın ya da flow’un sonraki ekranlarına devam etmesi için hiçbir şey yapmayın:
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 butona tıkladığında, iOS SDK satın alma, geri yükleme, ekranı kapatma ve linkleri açma işlemlerini otomatik olarak yönetir.
Ancak diğer butonların özel veya önceden tanımlanmış ID’leri vardır ve kodunuzda eylemlerin yönetilmesini gerektirir. Ya da varsayılan davranışlarını geçersiz kılmak isteyebilirsiniz.
Örneğin, kapatma butonunu şu şekilde yönetebilirsiniz. UIKit’te SDK, .close tetiklendiğinde 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!