Capacitor SDK'da remote config paywalllar için paywall ve ürün çekme
Remote config ve özel paywallları göstermeden önce bunlara ait bilgileri çekmeniz gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu unutmayın. Paywall Builder ile özelleştirilmiş paywalllar için bilgi çekme konusunda Paywall Builder paywalllarını ve yapılandırmalarını çekme sayfasına bakın.
Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gerçek bir örnekle görmek ister misiniz? Tam kurulumu, paywall’ların gösterimini, satın alma işlemlerini ve diğer temel işlevleri içeren örnek uygulamalarımıza göz atın.
Mobil uygulamanızda paywall ve ürün çekmeye başlamadan önce (genişletmek için tıklayın)
-
Adapty Kontrol Paneli’nde ürünlerinizi oluşturun.
-
Adapty Kontrol Paneli’nde bir paywall oluşturun ve ürünleri paywalla ekleyin.
-
Adapty Kontrol Paneli’nde placement oluşturun ve paywallınızı placement’a ekleyin.
-
Mobil uygulamanıza Adapty SDK’yı yükleyin.
Paywall bilgilerini çekme
Adapty’de bir ürün, App Store ve Google Play’deki ürünlerin birleşiminden oluşur. Bu platformlar arası ürünler paywallara entegre edilerek belirli mobil uygulama placement’larında gösterilmesini sağlar.
Ürünleri göstermek için getPaywall metoduyla placement’larınızdan birinden Paywall almanız gerekir.
try {
const paywall = await adapty.getPaywall({
placementId: 'YOUR_PLACEMENT_ID',
locale: 'en',
params: {
fetchPolicy: 'reload_revalidating_cache_data', // Load from server, fallback to cache
loadTimeoutMs: 5000 // 5 second timeout
}
});
// the requested paywall
} catch (error) {
console.error('Failed to fetch paywall:', error);
}
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| placementId | zorunlu | Placement’ın tanımlayıcısı. Adapty Kontrol Paneli’nde placement oluştururken belirttiğiniz değerdir. |
| locale | isteğe bağlı varsayılan: | Paywall yerelleştirmesinin tanımlayıcısı. Bu parametre, eksi (-) karakteriyle ayrılmış bir veya daha fazla alt etiket içeren bir dil kodu olmalıdır. İlk alt etiket dil, ikincisi bölge içindir. Örnek: Yerel ayar kodları ve kullanım önerilerimiz hakkında daha fazla bilgi için Yerelleştirmeler ve yerel ayar kodları sayfasına bakın. |
| params.fetchPolicy | isteğe bağlı varsayılan: | Varsayılan olarak SDK, verileri sunucudan yüklemeye çalışır ve hata durumunda önbellekteki verileri döndürür. Kullanıcılarınızın her zaman en güncel verilere ulaşmasını sağladığı için bu seçeneği öneriyoruz. Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla çalıştığını düşünüyorsanız, varsa önbellekteki verileri döndürmek için Önbelleğin uygulama yeniden başlatıldığında silinmediğini, yalnızca uygulama kaldırılıp yeniden yüklendiğinde veya manuel temizleme yapıldığında sıfırlandığını unutmayın. |
| params.loadTimeoutMs | isteğe bağlı varsayılan: 5000 ms | Bu değer, metodun zaman aşımı süresini (milisaniye cinsinden) sınırlar. Zaman aşımına ulaşıldığında önbellekteki veriler veya yerel yedek döndürülür. Nadir durumlarda bu metodun |
Ürün ID’lerini kodunuza sabit olarak yazmayın. Kodunuza sabit olarak yazmanız gereken tek ID, placement ID’sidir. Paywalllar uzaktan yapılandırıldığından ürün sayısı ve mevcut teklifler her an değişebilir. Uygulamanız bu değişiklikleri dinamik olarak ele almalıdır; bugün iki ürün döndüren bir paywall yarın üç ürün döndürse bile kod değişikliği yapmadan hepsini göstermeniz gerekir.
Yanıt parametreleri:
| Parametre | Açıklama |
|---|---|
| Paywall | Ürün ID’leri listesi, paywall tanımlayıcısı, remote config ve diğer çeşitli özellikleri içeren bir AdaptyPaywall nesnesi. |
Ürünleri çekme
Paywallı aldıktan sonra ona karşılık gelen ürün dizisini sorgulayabilirsiniz:
try {
const products = await adapty.getPaywallProducts({ paywall });
// the requested products list
} catch (error) {
console.error('Failed to fetch products:', error);
}
Yanıt parametreleri:
| Parametre | Açıklama |
|---|---|
| Products | Ürün tanımlayıcısı, ürün adı, fiyat, para birimi, abonelik süresi ve diğer çeşitli özellikleri içeren AdaptyPaywallProduct nesnelerinin listesi. |
Kendi paywall tasarımınızı uygularken AdaptyPaywallProduct nesnesindeki bu özelliklere erişmeniz gerekecektir. Aşağıda en sık kullanılan özellikler gösterilmektedir; mevcut tüm özellikler için bağlantılı dokümana bakın.
| Özellik | Açıklama |
|---|---|
| Başlık | Ürünün başlığını göstermek için product.localizedTitle kullanın. Yerelleştirmenin cihazın yerel ayarına değil, kullanıcının seçtiği mağaza ülkesine göre yapıldığını unutmayın. |
| Fiyat | Fiyatın yerelleştirilmiş halini göstermek için product.price?.localizedString kullanın. Bu yerelleştirme cihazın yerel ayar bilgisine dayanır. Fiyata sayı olarak product.price?.amount üzerinden de erişebilirsiniz. Değer yerel para biriminde sağlanır. İlgili para birimi sembolünü almak için product.price?.currencySymbol kullanın. |
| Abonelik Dönemi | Dönemi (ör. hafta, ay, yıl vb.) göstermek için product.subscription?.localizedSubscriptionPeriod kullanın. Bu yerelleştirme cihazın yerel ayarına dayanır. Abonelik dönemine programatik olarak erişmek için product.subscription?.subscriptionPeriod kullanın. Buradan süreyi (yani ‘day’, ‘week’, ‘month’, ‘year’ veya ‘unknown’) almak için unit özelliğine erişebilirsiniz. numberOfUnits değeri dönem birimi sayısını verir. Örneğin üç aylık bir abonelikte unit özelliğinde 'month', numberOfUnits özelliğinde 3 görürsünüz. |
| Başlangıç Teklifi | Bir aboneliğin başlangıç teklifi içerdiğini gösteren bir rozet veya gösterge için product.subscription?.offer?.phases özelliğini inceleyin. Bu liste; ücretsiz deneme aşaması ve başlangıç fiyatı aşaması olmak üzere en fazla iki indirim aşaması içerebilir. Her aşama nesnesinde şu yararlı özellikler bulunur:• paymentMode: 'free_trial', 'pay_as_you_go', 'pay_up_front' ve 'unknown' değerlerini alan bir string. Ücretsiz denemeler 'free_trial' türünde olacaktır.• price: İndirimli fiyat, sayı olarak. Ücretsiz denemeler için burada 0 arayın.• localizedNumberOfPeriods: Teklifin süresini cihazın yerel ayarıyla yerelleştirilmiş olarak açıklayan bir string. Örneğin üç günlük bir deneme teklifi bu alanda '3 days' gösterir.• subscriptionPeriod: Alternatif olarak, teklif döneminin ayrıntılarına bu özellikle erişebilirsiniz. Teklifler için önceki bölümde açıklanan şekilde çalışır.• localizedSubscriptionPeriod: Kullanıcının yerel ayarı için biçimlendirilmiş indirim abonelik dönemi. |
Varsayılan kitle paywallıyla paywall çekmeyi hızlandırma
Paywalllar genellikle neredeyse anında çekildiğinden bu süreci hızlandırma konusunda endişelenmenize gerek yoktur. Ancak çok sayıda kitle ve paywallınız varsa ve kullanıcılarınızın internet bağlantısı zayıfsa paywall çekme işlemi beklediğinizden daha uzun sürebilir. Bu durumlarda, hiç paywall göstermemek yerine düzgün bir kullanıcı deneyimi sağlamak amacıyla varsayılan bir paywall göstermek isteyebilirsiniz.
Bunu çözmek için belirtilen placement’ın All Users kitlesi için paywallını çeken getPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak önerilen yaklaşımın, yukarıdaki Paywall Bilgilerini Çekme bölümünde açıklandığı gibi getPaywall metoduyla paywall çekmek olduğunu unutmayın.
Neden getPaywall kullanmanızı öneriyoruz
getPaywallForDefaultAudience metodunun birkaç önemli dezavantajı vardır:
- Olası geriye dönük uyumluluk sorunları: Farklı uygulama sürümleri (mevcut ve gelecekteki) için farklı paywalllar göstermeniz gerekirse zorluklarla karşılaşabilirsiniz. Ya mevcut (eski) sürümü destekleyen paywalllar tasarlamak zorunda kalırsınız ya da mevcut (eski) sürümdeki kullanıcıların render edilmeyen paywalllarla karşılaşabileceğini kabul etmek durumunda kalırsınız.
- Hedefleme kaybı: Tüm kullanıcılar All Users kitlesi için tasarlanmış aynı paywallı görür; bu da ülkelere, pazarlama attribution’ına veya kendi özel niteliklerinize dayalı kişiselleştirilmiş hedeflemeyi kaybettiğiniz anlamına gelir.
Bu dezavantajları daha hızlı paywall çekme avantajı için kabul etmeye hazırsanız, getPaywallForDefaultAudience metodunu aşağıdaki gibi kullanın. Aksi takdirde yukarıda açıklanan getPaywall metodunu kullanmaya devam edin.
try {
const paywall = await adapty.getPaywallForDefaultAudience({
placementId: 'YOUR_PLACEMENT_ID',
locale: 'en',
params: {
fetchPolicy: 'reload_revalidating_cache_data' // Load from server, fallback to cache
}
});
// the requested paywall
} catch (error) {
console.error('Failed to fetch default audience paywall:', error);
}
getPaywallForDefaultAudience metodu Capacitor SDK 2.11.2 sürümünden itibaren kullanılabilir.
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| placementId | zorunlu | Placement’ın tanımlayıcısı. Adapty Kontrol Paneli’nde placement oluştururken belirttiğiniz değerdir. |
| locale | isteğe bağlı varsayılan: | Paywall yerelleştirmesinin tanımlayıcısı. Bu parametre, eksi (-) karakteriyle ayrılmış bir veya daha fazla alt etiket içeren bir dil kodu olmalıdır. İlk alt etiket dil, ikincisi bölge içindir. Örnek: Yerel ayar kodları ve kullanım önerilerimiz hakkında daha fazla bilgi için Yerelleştirmeler ve yerel ayar kodları sayfasına bakın. |
| params.fetchPolicy | isteğe bağlı varsayılan: | Varsayılan olarak SDK, verileri sunucudan yüklemeye çalışır ve hata durumunda önbellekteki verileri döndürür. Kullanıcılarınızın her zaman en güncel verilere ulaşmasını sağladığı için bu seçeneği öneriyoruz. Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla çalıştığını düşünüyorsanız, varsa önbellekteki verileri döndürmek için Önbelleğin uygulama yeniden başlatıldığında silinmediğini, yalnızca uygulama kaldırılıp yeniden yüklendiğinde veya manuel temizleme yapıldığında sıfırlandığını unutmayın. |