iOS SDK'da Observer modunda Paywall Builder paywall'larını gösterme
Paywall Builder ile bir paywall özelleştirdiyseniz, bunu kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmeniz gerekmez. Böyle bir paywall, paywall içinde gösterilecekleri ve nasıl gösterileceğini zaten içerir.
Bu bölüm yalnızca Observer modu için geçerlidir. Observer modunda çalışmıyorsanız iOS - Paywall Builder paywall’larını gösterme sayfasına bakın.
Flow’ları göstermeye başlamadan önce (Genişletmek için tıklayın)
- Adapty’nin App Store ile ilk entegrasyonunu kurun.
- Adapty SDK’yı kurun ve yapılandırın.
observerModeparametresinitrueolarak ayarladığınızdan emin olun. iOS SDK kurulum kılavuzuna bakın. - Adapty Kontrol Paneli’nde ürünler oluşturun.
- Builder’larda flow’lar veya paywall’lar yapılandırın ve ürünleri bunlara atayın.
- Placement’lar oluşturun ve flow’larınızı veya paywall’larınızı bunlara atayın.
- Mobil uygulama kodunuzda flow’ları ve yapılandırmalarını alın.
-
AdaptyObserverModeResolvernesnesini uygulayın. Protokol SDK v3 ile aynıdır — observer modunun kendisi flow ve paywall render’ı arasında değişmez:func observerMode(didInitiatePurchase product: AdaptyPaywallProduct, onStartPurchase: @escaping () -> Void, onFinishPurchase: @escaping () -> Void) { // use the product object to handle the purchase // call onStartPurchase / onFinishPurchase to notify AdaptyUI about the purchase progress } func observerModeDidInitiateRestorePurchases(onStartRestore: @escaping () -> Void, onFinishRestore: @escaping () -> Void) { // call onStartRestore / onFinishRestore to notify AdaptyUI about the restore progress } -
Resolver’ınızı
observerModeResolver:parametresi olarak geçirerek bir flow yapılandırma nesnesi oluşturun:do { let flowConfiguration = try await AdaptyUI.getFlowConfiguration( forFlow: flow, observerModeResolver: <AdaptyObserverModeResolver> ) } catch { // handle the error }İstek parametreleri:
Parametre Zorunluluk Açıklama forFlow zorunlu Adapty.getFlow(placementId:)üzerinden elde edilen birAdaptyFlownesnesi. Bkz. Flow’ları ve paywall’ları alma.observerModeResolver zorunlu Yukarıda uyguladığınız AdaptyObserverModeResolver. -
AdaptyUI.flowController(with:delegate:)kullanarak flow controller’ı başlatın:import AdaptyUI let visualFlow = try AdaptyUI.flowController( with: flowConfiguration, delegate: <AdaptyFlowControllerDelegate> )İstek parametreleri:
Parametre Zorunluluk Açıklama flowConfiguration zorunlu Flow’un görsel ayrıntılarını içeren bir AdaptyUI.FlowConfigurationnesnesi. Bkz. Flow’ları ve paywall’ları alma.delegate zorunlu Flow olaylarını dinlemek için bir AdaptyFlowControllerDelegate. Bkz. Flow & paywall olaylarını yönetme.Döndürür:
Nesne Açıklama AdaptyFlowController İstenen flow ekranını temsil eden bir nesne. -
Controller’ı gösterin:
present(visualFlow, animated: true)
Paywall’ları satın alma işlemleriyle ilişkilendirmeyi unutmayın. Aksi takdirde Adapty, satın almanın kaynak paywall’ını belirleyemez.
SwiftUI’da resolver ile flow yapılandırmasını alın ve .flow modifier’a geçirin:
@State var flowPresented = false
@State var flowConfiguration: AdaptyUI.FlowConfiguration?
var body: some View {
Text("Hello, AdaptyUI!")
.flow(
isPresented: $flowPresented,
flowConfiguration: flowConfiguration,
didPerformAction: { action in
switch action {
case .close:
flowPresented = false
default:
break
}
},
didFailPurchase: { product, error in /* handle the error */ },
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didReceiveError: { error in flowPresented = false }
)
.task {
flowConfiguration = try? await AdaptyUI.getFlowConfiguration(
forFlow: flow,
observerModeResolver: <AdaptyObserverModeResolver>
)
}
}getFlowConfiguration üzerindeki observerModeResolver: parametresi, render edilen flow’un özel satın alma mantığınıza uymasını sağlar — modifier’ın kendisi tam modla aynı callback’leri kullanır.
Paywall’ları satın alma işlemleriyle ilişkilendirmeyi unutmayın. Aksi takdirde Adapty, satın almanın kaynak paywall’ını belirleyemez.
Paywall’ları göstermeye başlamadan önce (Genişletmek için tıklayın)
- Adapty’nin Google Play ile ve App Store ile ilk entegrasyonunu kurun.
- Adapty SDK’yı kurun ve yapılandırın.
observerModeparametresinitrueolarak ayarladığınızdan emin olun. Framework’e özgü talimatlar için iOS sayfasına bakın. - Adapty Kontrol Paneli’nde ürünler oluşturun.
- Paywall’ları yapılandırın, ürünleri bunlara atayın ve Adapty Kontrol Paneli’ndeki Paywall Builder ile özelleştirin.
- Adapty Kontrol Paneli’nde placement’lar oluşturun ve paywall’larınızı bunlara atayın.
- Mobil uygulama kodunuzda Paywall Builder paywall’larını ve yapılandırmalarını alın.
-
AdaptyObserverModeResolvernesnesini uygulayın:func observerMode(didInitiatePurchase product: AdaptyPaywallProduct, onStartPurchase: @escaping () -> Void, onFinishPurchase: @escaping () -> Void) { // use the product object to handle the purchase // use the onStartPurchase and onFinishPurchase callbacks to notify AdaptyUI about the process of the purchase } func observerModeDidInitiateRestorePurchases(onStartRestore: @escaping () -> Void, onFinishRestore: @escaping () -> Void) { // use the onStartRestore and onFinishRestore callbacks to notify AdaptyUI about the process of the restore }observerMode(didInitiatePurchase:onStartPurchase:onFinishPurchase:)olayı, kullanıcının bir satın alma işlemi başlattığını size bildirir. Bu callback’e yanıt olarak özel satın alma flow’unuzu tetikleyebilirsiniz.observerModeDidInitiateRestorePurchases(onStartRestore:onFinishRestore:)olayı, kullanıcının bir geri yükleme işlemi başlattığını size bildirir. Bu callback’e yanıt olarak özel geri yükleme flow’unuzu tetikleyebilirsiniz.Ayrıca, AdaptyUI’ı satın alma veya geri yükleme süreci hakkında bilgilendirmek için aşağıdaki callback’leri çağırmayı unutmayın. Bu, yükleyiciyi göstermek gibi paywall’ın düzgün davranması için gereklidir:
Callback Açıklama onStartPurchase() Satın almanın başladığını AdaptyUI’a bildirmek için çağrılmalıdır. onFinishPurchase() Satın almanın tamamlandığını AdaptyUI’a bildirmek için çağrılmalıdır. onStartRestore() Geri yüklemenin başladığını AdaptyUI’a bildirmek için çağrılmalıdır. onFinishRestore() Geri yüklemenin tamamlandığını AdaptyUI’a bildirmek için çağrılmalıdır. -
Bir paywall yapılandırma nesnesi oluşturun:
do { let paywallConfiguration = try AdaptyUI.getPaywallConfiguration( forPaywall: <paywall object>, observerModeResolver: <AdaptyObserverModeResolver> ) } catch { // handle the error }İstek parametreleri:
Parametre Zorunluluk Açıklama Paywall zorunlu İstenen paywall için bir controller elde etmek üzere kullanılan AdaptyPaywallnesnesi.ObserverModeResolver zorunlu Önceki adımda uyguladığınız AdaptyObserverModeResolvernesnesi. -
.paywallController(for:products:viewConfiguration:delegate:)metodunu kullanarak göstermek istediğiniz görsel paywall’ı başlatın:import AdaptyUI let visualPaywall = AdaptyUI.paywallController( with: <paywall configuration object>, delegate: <AdaptyPaywallControllerDelegate> )
İstek parametreleri:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| Paywall Configuration | zorunlu | Paywall’ın görsel ayrıntılarını içeren bir AdaptyUI.PaywallConfiguration nesnesi. AdaptyUI.getPaywallConfiguration(forPaywall:locale:) metodunu kullanın. Daha fazla ayrıntı için Paywall Builder paywall’larını ve yapılandırmalarını alma konusuna bakın. |
| Delegate | zorunlu | Paywall olaylarını dinlemek için bir AdaptyPaywallControllerDelegate. Daha fazla ayrıntı için Paywall olaylarını yönetme konusuna bakın. |
Döndürür:
| Nesne | Açıklama |
|---|---|
| AdaptyPaywallController | İstenen paywall ekranını temsil eden bir nesne. |
Nesne başarıyla oluşturulduktan sonra şu şekilde gösterebilirsiniz:
present(visualPaywall, animated: true)Paywall’ları satın alma işlemleriyle ilişkilendirmeyi unutmayın. Aksi takdirde Adapty, satın almanın kaynak paywall’ını belirleyemez.
Görsel paywall’ı cihaz ekranında göstermek için SwiftUI’da .paywall modifier’ını kullanın:
@State var paywallPresented = false
var body: some View {
Text("Hello, AdaptyUI!")
.paywall(
isPresented: $paywallPresented,
paywallConfiguration: <paywall configuration object>,
didPerformAction: { action in
switch action {
case .close:
paywallPresented = false
default:
// Handle other actions
break
}
},
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in paywallPresented = false }
)
}İstek parametreleri:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| Paywall Configuration | zorunlu | Paywall’ın görsel ayrıntılarını içeren bir AdaptyUI.PaywallConfiguration nesnesi. AdaptyUI.getPaywallConfiguration(forPaywall:locale:) metodunu kullanın. Daha fazla ayrıntı için Paywall Builder paywall’larını ve yapılandırmalarını alma konusuna bakın. |
| Products | isteğe bağlı | Ekrandaki ürünlerin görüntülenme zamanlamasını optimize etmek için bir AdaptyPaywallProduct nesneleri dizisi sağlayın. nil geçilirse AdaptyUI gerekli ürünleri otomatik olarak alır. |
| TagResolver | isteğe bağlı | Özel etiketlerin ve çözümlenmiş değerlerinin bir sözlüğünü tanımlayın. Özel etiketler, paywall içeriğinde yer tutucu görevi görerek paywall içindeki kişiselleştirilmiş içerik için belirli dizelerle dinamik olarak değiştirilir. Daha fazla ayrıntı için Paywall Builder’daki Özel etiketler konusuna bakın. |
| ObserverModeResolver | isteğe bağlı | Önceki adımda uyguladığınız AdaptyObserverModeResolver nesnesi. |
Closure parametreleri:
| Closure parametresi | Açıklama |
|---|---|
| didFinishRestore | Adapty.restorePurchases() başarılı olursa bu callback çağrılır. |
| didFailRestore | Adapty.restorePurchases() başarısız olursa bu callback çağrılır. |
| didFailRendering | Arayüz render’ı sırasında bir hata oluşursa bu callback çağrılır. |
Diğer closure parametreleri için iOS - Olayları yönetme konusuna bakın.
Paywall’ları satın alma işlemleriyle ilişkilendirmeyi unutmayın. Aksi takdirde Adapty, satın almanın kaynak paywall’ını belirleyemez.
Paywall’ları göstermeye başlamadan önce (Genişletmek için tıklayın)
- Adapty’nin Google Play ile ve App Store ile ilk entegrasyonunu kurun.
- Adapty SDK’yı kurun ve yapılandırın.
observerModeparametresinitrueolarak ayarladığınızdan emin olun. Framework’e özgü talimatlar için iOS, React Native, Flutter ve Unity sayfalarına bakın. - Adapty Kontrol Paneli’nde ürünler oluşturun.
- Paywall’ları yapılandırın, ürünleri bunlara atayın ve Adapty Kontrol Paneli’ndeki Paywall Builder ile özelleştirin.
- Adapty Kontrol Paneli’nde placement’lar oluşturun ve paywall’larınızı bunlara atayın.
- Mobil uygulama kodunuzda Paywall Builder paywall’larını ve yapılandırmalarını alın.
-
AdaptyObserverModeDelegatenesnesini uygulayın:func paywallController(_ controller: AdaptyPaywallController, didInitiatePurchase product: AdaptyPaywallProduct, onStartPurchase: @escaping () -> Void, onFinishPurchase: @escaping () -> Void) { // use the product object to handle the purchase // use the onStartPurchase and onFinishPurchase callbacks to notify AdaptyUI about the process of the purchase }paywallController(_:didInitiatePurchase:onStartPurchase:onFinishPurchase:)olayı, kullanıcının bir satın alma işlemi başlattığını size bildirir. Bu olaya yanıt olarak özel satın alma flow’unuzu tetikleyebilirsiniz.Ayrıca, AdaptyUI’ı satın alma süreci hakkında bilgilendirmek için aşağıdaki callback’leri çağırmayı unutmayın. Bu, yükleyiciyi göstermek gibi paywall’ın düzgün davranması için gereklidir:
Callback Açıklama onStartPurchase Satın almanın başladığını AdaptyUI’a bildirmek için çağrılmalıdır. onFinishPurchase Satın almanın tamamlandığını AdaptyUI’a bildirmek için çağrılmalıdır. -
.paywallController(for:products:viewConfiguration:delegate:observerModeDelegate:)metodunu kullanarak göstermek istediğiniz görsel paywall’ı başlatın:import AdaptyUI let visualPaywall = AdaptyUI.paywallController( for: <paywall object>, products: <paywall products array>, viewConfiguration: <LocalizedViewConfiguration>, delegate: <AdaptyPaywallControllerDelegate> observerModeDelegate: <AdaptyObserverModeDelegate> )
İstek parametreleri:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| Paywall | zorunlu | İstenen paywall için bir controller elde etmek üzere kullanılan AdaptyPaywall nesnesi. |
| Products | isteğe bağlı | Ekrandaki ürünlerin görüntülenme zamanlamasını optimize etmek için bir AdaptyPaywallProduct nesneleri dizisi sağlayın. nil geçilirse AdaptyUI gerekli ürünleri otomatik olarak alır. |
| ViewConfiguration | zorunlu | Paywall’ın görsel ayrıntılarını içeren bir AdaptyUI.LocalizedViewConfiguration nesnesi. AdaptyUI.getViewConfiguration(paywall:locale:) metodunu kullanın. Daha fazla ayrıntı için Paywall Builder paywall’larını ve yapılandırmalarını alma konusuna bakın. |
| Delegate | zorunlu | Paywall olaylarını dinlemek için bir AdaptyPaywallControllerDelegate. Daha fazla ayrıntı için Paywall olaylarını yönetme konusuna bakın. |
| ObserverModeDelegate | zorunlu | Önceki adımda uyguladığınız AdaptyObserverModeDelegate nesnesi. |
| TagResolver | isteğe bağlı | Özel etiketlerin ve çözümlenmiş değerlerinin bir sözlüğünü tanımlayın. Özel etiketler, paywall içeriğinde yer tutucu görevi görerek paywall içindeki kişiselleştirilmiş içerik için belirli dizelerle dinamik olarak değiştirilir. Daha fazla ayrıntı için Paywall Builder’daki Özel etiketler konusuna bakın. |
Döndürür:
| Nesne | Açıklama |
|---|---|
| AdaptyPaywallController | İstenen paywall ekranını temsil eden bir nesne. |
Nesne başarıyla oluşturulduktan sonra şu şekilde gösterebilirsiniz:
present(visualPaywall, animated: true)Paywall’ları satın alma işlemleriyle ilişkilendirmeyi unutmayın. Aksi takdirde Adapty, satın almanın kaynak paywall’ını belirleyemez.
Görsel paywall’ı cihaz ekranında göstermek için SwiftUI’da .paywall modifier’ını kullanın:
@State var paywallPresented = false
var body: some View {
Text("Hello, AdaptyUI!")
.paywall(
isPresented: $paywallPresented,
paywall: <paywall object>,
configuration: <LocalizedViewConfiguration>,
didPerformAction: { action in
switch action {
case .close:
paywallPresented = false
default:
// Handle other actions
break
}
},
didFinishRestore: { profile in /* check access level and dismiss */ },
didFailRestore: { error in /* handle the error */ },
didFailRendering: { error in paywallPresented = false },
observerModeDidInitiatePurchase: { product, onStartPurchase, onFinishPurchase in
// use the product object to handle the purchase
// use the onStartPurchase and onFinishPurchase callbacks to notify AdaptyUI about the process of the purchase
},
)
}İstek parametreleri:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| Paywall | zorunlu | İstenen paywall için bir controller elde etmek üzere kullanılan AdaptyPaywall nesnesi. |
| Product | isteğe bağlı | Ekrandaki ürünlerin görüntülenme zamanlamasını optimize etmek için bir AdaptyPaywallProduct nesneleri dizisi sağlayın. nil geçilirse AdaptyUI gerekli ürünleri otomatik olarak alır. |
| Configuration | zorunlu | Paywall’ın görsel ayrıntılarını içeren bir AdaptyUI.LocalizedViewConfiguration nesnesi. AdaptyUI.getViewConfiguration(paywall:locale:) metodunu kullanın. Daha fazla ayrıntı için Paywall Builder paywall’larını ve yapılandırmalarını alma konusuna bakın. |
| TagResolver | isteğe bağlı | Özel etiketlerin ve çözümlenmiş değerlerinin bir sözlüğünü tanımlayın. Özel etiketler, paywall içeriğinde yer tutucu görevi görerek paywall içindeki kişiselleştirilmiş içerik için belirli dizelerle dinamik olarak değiştirilir. Daha fazla ayrıntı için Paywall Builder’daki Özel etiketler konusuna bakın. |
Closure parametreleri:
| Closure parametresi | Açıklama |
|---|---|
| didFinishRestore | Adapty.restorePurchases() başarılı olursa bu callback çağrılır. |
| didFailRestore | Adapty.restorePurchases() başarısız olursa bu callback çağrılır. |
| didFailRendering | Arayüz render’ı sırasında bir hata oluşursa bu callback çağrılır. |
| observerModeDidInitiatePurchase | Kullanıcı bir satın alma işlemi başlattığında bu callback çağrılır. |
Diğer closure parametreleri için iOS - Olayları yönetme konusuna bakın.
Paywall’ları satın alma işlemleriyle ilişkilendirmeyi unutmayın. Aksi takdirde Adapty, satın almanın kaynak paywall’ını belirleyemez.