Capacitor SDK'da Flow & Paywall Builder ile satın almaları etkinleştirme
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 & paywall’lar – ürünleri kullanıcılara sunan ekranlar; no-code Flow & Paywall Builder ile oluşturulur. SDK bunları
getFlowaracılığıyla alır. Kullanıcı arayüzünü kendi kodunuzla oluşturmayı tercih ediyorsanız Özel paywall’ları uygulama bölümüne bakın. - Placement’lar – uygulamanızda flow’ları ve paywall’ları nerede ve ne zaman gösterdiğiniz (
main,onboarding,settingsgibi). Bunları kontrol panelinde placement’lara bağlar, ardından kodunuzda placement ID’si ile çağırırsınız. Bu sayede A/B testleri çalıştırmak ve farklı kullanıcılara farklı içerikler göstermek çok kolaylaşır.
Adapty, uygulamanızda satın almaları etkinleştirmek için üç farklı yöntem sunar. Uygulama gereksinimlerinize göre birini seçin:
| Uygulama | Karmaşıklık | Ne zaman kullanılır |
|---|---|---|
| Adapty Flow & Paywall Builder | ✅ Kolay | No-code builder’da eksiksiz, satın almaya hazır bir flow veya paywall oluşturursunuz. Adapty bunu otomatik olarak render eder ve tüm karmaşık satın alma mantığını, makbuz doğrulamasını ve abonelik yönetimini arka planda halleder. |
| Özel paywaller | 🟡 Orta | 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 mevcut ve onu kullanmaya devam etmek istiyorsunuz. Observer mode’un Adapty’de bazı kısıtlamaları olduğunu unutmayın. Makaleye bakın. |
Aşağıdaki adımlar, Adapty Flow & Paywall Builder’da oluşturulan bir flow veya paywall’ın nasıl uygulanacağını gösterir.
Paywall arayüzünü kendiniz oluşturmayı tercih ederseniz, bkz. Özel paywall’ları uygulama.
Adapty Flow & Paywall Builder’da oluşturulan bir flow veya paywall’ı uygulamanızda görüntülemek için yalnızca şunları yapmanız gerekir:
- Flow veya paywall’ı alın: Adapty’den alın.
- Görüntüleyin, satın almaları Adapty yönetir: View’ı uygulamanızda gösterin.
- Buton aksiyonlarını 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 paywall’ı kapatın.
Başlamadan önce
Başlamadan önce şu adımları tamamlayın:
- Uygulamanızı Adapty Kontrol Paneli’nde App Store ve/veya Google Play’e bağlayın.
- Adapty’de ürünlerinizi oluşturun.
- Bir flow veya paywall oluşturun ve buna ürün ekleyin.
- Bir placement oluşturun ve flow ya da paywall’ınızı ekleyin.
- Uygulama kodunuza Adapty SDK’yı yükleyin ve etkinleştirin. Bu kılavuz Adapty Capacitor SDK v4 API’lerini kullanır.
1. Flow veya paywalli alın
Flow’larınız ve paywalllarınız, kontrol panelinde yapılandırılmış placement’larla ilişkilendirilir. Placement’lar sayesinde farklı kitleler için farklı flow veya paywalllar çalıştırabilir ya da A/B testleri yapabilirsiniz.
Adapty Flow & Paywall Builder’da oluşturulan bir flow veya paywallı almak için getFlow metodunu kullanarak placement ID’sine göre flow nesnesini edinin. Flow, görüntülenmesi için gereken UI öğelerini ve stil bilgilerini içerir.
try {
const flow = await adapty.getFlow({
placementId: 'YOUR_PLACEMENT_ID',
});
// the requested flow
} catch (error) {
// handle the error
}
2. Flow’u veya paywall’ı görüntüleme
Artık flow’a sahip olduğunuzda, onu görüntülemek için yalnızca birkaç satır eklemeniz yeterlidir.
createFlowView metoduyla bir view oluşturun, olay işleyicilerini ayarlayın ve ardından view.present() çağrısı yapın. Her view yalnızca bir kez kullanılabilir. Flow’u tekrar görüntülemeniz gerekiyorsa yeni bir view örneği oluşturmak için createFlowView metodunu bir kez daha çağırın.
try {
const view = await createFlowView(flow);
await view.setEventHandlers({
onPurchaseCompleted(purchaseResult, product) {
return purchaseResult.type === 'success'; // close the flow on a successful purchase, keep it open for cancelled or pending purchases
},
});
await view.present();
} catch (error) {
// handle the error
}
Bir flow veya paywall’ın nasıl gösterileceğine dair daha fazla bilgi için kılavuzumuza bakın.
3. Buton eylemlerini yönetin
Kullanıcılar flow veya paywall’daki butonlara tıkladığında, Capacitor SDK satın alma işlemleri, geri yükleme, ekranı kapatma ve URL açma gibi işlemleri otomatik olarak gerçekleştirir.
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, kapatma butonunun varsayılan davranışı aşağıdaki gibidir. Bunu koda eklemeniz gerekmez; ancak gerektiğinde nasıl yapıldığını buradan görebilirsiniz.
const unsubscribe = await view.setEventHandlers({
onCloseButtonPress() {
return true; // allow the flow to close
},
});
Düğme eylemlerini ve olayları nasıl yöneteceğiniz hakkındaki kılavuzlarımızı okuyun.
Sonraki adımlar
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!
Flow veya paywallınız uygulamada gösterilmeye hazır. Flowdan test satın alımı yapabildiğinizden emin olmak için satın alımlarınızı test edin.
Şimdi, paywall gösterdiğinizden veya ücretli özelliklere erişim verdiğinizden emin olmak için kullanıcıların access level durumunu kontrol etmeniz gerekiyor.
Tam örnek
Bu kılavuzdaki tüm adımlar uygulamanıza şu şekilde entegre edilebilir.
export async function showFlow() {
try {
const flow = await adapty.getFlow({
placementId: 'YOUR_PLACEMENT_ID',
});
const view = await createFlowView(flow);
await view.setEventHandlers({
onCloseButtonPress() {
return true;
},
onPurchaseCompleted(purchaseResult, product) {
return purchaseResult.type === 'success'; // close the flow on a successful purchase, keep it open for cancelled or pending purchases
},
});
await view.present();
} catch (error) {
// handle any error that may occur during the process
console.warn('Error showing flow:', error);
}
}