Flutter SDK'da özel paywall'unuzda satın almaları etkinleştirin
Bu rehber, Adapty’yi özel paywall’larınıza nasıl entegre edeceğinizi açıklar. Paywall uygulamasının tam kontrolünü elinizde tutarken, Adapty SDK ürünleri getirir, yeni satın almaları gerçekleştirir ve önceki satın almaları geri yükler. Bu rehber Adapty Flutter SDK v4 API’lerini kullanır — v3 kullanıyorsanız, karşılık gelen metod adları için migration rehberine bakın.
Bu kılavuz, özel paywall uygulayan geliştiriciler içindir. Satın alma işlemlerini etkinleştirmenin en kolay yolunu arıyorsanız, Adapty Paywall Builder’ı kullanın. Paywall Builder ile kodsuz görsel bir editörde paywall’lar oluşturursunuz, Adapty tüm satın alma mantığını otomatik olarak yönetir ve uygulamanızı yeniden yayınlamadan farklı tasarımları test edebilirsiniz.
Başlamadan Önce
Ürünleri ayarlayın
Uygulama içi satın alımları 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)
- Paywalllar – hangi ürünlerin sunulacağını tanımlayan yapılandırmalar. Adapty’de ürünlere yalnızca paywalllar aracılığıyla ulaşılır; bu yapı sayesinde uygulama koduna dokunmadan ürünleri, fiyatları ve teklifleri değiştirebilirsiniz. SDK v4’te bir placement için paywall varyantları bir flow nesnesi tarafından taşınır — flow’u çekip ürünlerini sorgularsınız.
- Placement’lar – uygulamanızda paywallları nerede ve ne zaman göstereceğiniz (örneğin
main,onboarding,settings). Kontrol panelinde placement’lar için paywalllar ayarlarsınız, ardından kodunuzda placement ID’siyle bunları talep edersiniz. Bu yapı A/B testleri yürütmeyi ve farklı kullanıcılara farklı paywalllar göstermeyi kolaylaştırır. Bu kavramları, kendi özel paywall’unuzla çalışsanız bile anladığınızdan emin olun. Bunlar, temelde uygulamanızda sattığınız ürünleri yönetmenin bir yoludur.
Özel paywall’unuzu hayata geçirmek için bir paywall oluşturmanız ve bunu bir placement’a eklemeniz gerekir. Bu yapı, ürünlerinizi almanızı sağlar. Kontrol panelinde yapmanız gerekenleri anlamak için buradaki hızlı başlangıç kılavuzunu takip edin.
Kullanıcıları yönetme
Backend kimlik doğrulaması kullanıp kullanmamak tamamen size bağlıdır.
Ancak Adapty SDK, anonim ve kimliği doğrulanmış kullanıcıları farklı şekilde ele alır. Ayrıntıları öğrenmek ve kullanıcılarla doğru şekilde çalıştığınızdan emin olmak için kimlik doğrulama hızlı başlangıç kılavuzunu okuyun.
1. Adım. Ürünleri alın
Özel paywallınız için ürünleri almak üzere şunları yapmanız gerekir:
- Placement ID’sini
getFlowmetoduna geçirerekflownesnesini alın. - Bu flow için ürünler dizisini
getPaywallProductsmetodunu kullanarak alın.
Future<void> loadPaywall() async {
try {
final flow = await Adapty().getFlow(placementId: 'YOUR_PLACEMENT_ID');
final products = await Adapty().getPaywallProducts(flow: flow);
// Use products to build your custom paywall UI
} on AdaptyError catch (adaptyError) {
// Handle the error
} catch (e) {
// Handle the error
}
}
Adım 2. Satın almaları kabul etme
Kullanıcı özel paywallınızdaki bir ürüne dokunduğunda, seçilen ürünle birlikte makePurchase metodunu çağırın. Bu işlem satın alma akışını yönetir ve güncellenmiş profili döndürür.
Future<void> purchaseProduct(AdaptyPaywallProduct product) async {
try {
final purchaseResult = await Adapty().makePurchase(product: product);
switch (purchaseResult) {
case AdaptyPurchaseResultSuccess(profile: final profile):
// Purchase successful, profile updated
break;
case AdaptyPurchaseResultUserCancelled():
// User canceled the purchase
break;
case AdaptyPurchaseResultPending():
// Purchase is pending (e.g., user will pay offline with cash)
break;
}
} on AdaptyError catch (adaptyError) {
// Handle the error
} catch (e) {
// Handle the error
}
}
Adım 3. Satın almaları geri yükle
Uygulama mağazaları, abonelik içeren tüm uygulamaların kullanıcılara satın almalarını geri yükleyebilecekleri bir yol sunmasını zorunlu kılar.
Kullanıcı geri yükle butonuna bastığında restorePurchases metodunu çağırın. Bu işlem, kullanıcının satın alma geçmişini Adapty ile senkronize eder ve güncel profili döndürür.
Future<void> restorePurchases() async {
try {
final profile = await Adapty().restorePurchases();
// Restore successful, profile updated
} on AdaptyError catch (adaptyError) {
// Handle the error
} catch (e) {
// Handle the error
}
}
Adım 4. Abonelik durumunu kontrol edin
Bir satın alma veya geri yükleme işleminin ardından, paywall’ı gösterip göstermeyeceğinize ya da ücretli özellikleri açıp açmayacağınıza karar vermek için kullanıcının access level durumunu kontrol edin. makePurchase ve restorePurchases metodları zaten güncellenmiş profili döndürür; uygulamanın başka bir yerinde mevcut duruma ihtiyaç duyduğunuzda getProfile metodunu kullanın:
Future<bool> hasPremiumAccess() async {
try {
final profile = await Adapty().getProfile();
return profile.accessLevels['premium']?.isActive ?? false;
} on AdaptyError catch (adaptyError) {
// Handle the error
} catch (e) {
// Handle the error
}
return false;
}
Abonelik durumunu kontrol etmenin ve gerçek zamanlı güncellemeleri dinleme dahil izlemenin daha fazla yolu için bkz. Abonelik durumunu kontrol etme.
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!
Paywall’ınız uygulamada gösterilmeye hazır. Paywall üzerinden test satın alma işlemini tamamlayabildiğinizden emin olmak için App Store sandbox ortamında veya Google Play Store’da satın almalarınızı test edin. Bunun gerçek bir uygulamada nasıl çalıştığını görmek için örnek uygulamamızdaki PurchasesObserver’a göz atabilirsiniz; bu örnekte hata yönetimi, UI gözlemcileri ve kapsamlı SDK entegrasyonuyla birlikte satın alma işleme akışı gösterilmektedir.