React Native SDK'da remote config paywall'ları için paywall'ları ve ürünleri getirme

Remote config ve özel paywalllar hakkında bilgi almadan önce bunları fetch etmeniz gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu lütfen unutmayın. Flow & Paywall Builder veya eski Paywall Builder ile özelleştirilmiş flow’ları veya paywallları fetch etme konusunda rehberlik için Flow’ları, paywallları ve yapılandırmalarını fetch etme sayfasına başvurun.

Tip

Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gerçek dünyadan bir örnekle görmek ister misiniz? Paywall gösterme, satın alma yapma ve diğer temel işlevler dahil olmak üzere tam kurulumu sergileyen örnek uygulamalarımıza göz atın.

Mobil uygulamanızda flow’ları ve ürünleri fetch etmeye başlamadan önce (genişletmek için tıklayın)
  1. Adapty Kontrol Paneli’nde ürünlerinizi oluşturun.

  2. Adapty Kontrol Paneli’nde bir flow veya paywall oluşturun ve ürünleri ekleyin.

  3. Adapty Kontrol Paneli’nde placement’lar oluşturun ve flow ya da paywall’unuzu placement’a ekleyin.

  4. Adapty SDK’yı mobil uygulamanıza yükleyin.

Flow bilgilerini getirme

Adapty’de bir ürün, hem App Store hem de Google Play’deki ürünlerin bir kombinasyonu olarak işlev görür. Bu platformlar arası ürünler flow’lara ve paywall’lara entegre edilir; böylece onları belirli mobil uygulama placement’larında sergileyebilirsiniz.

Ürünleri görüntülemek için, getFlow metoduyla placement’larınızdan birinden bir AdaptyFlow almanız gerekir.

Important

Ürün ID’lerini koda gömmeyin (hardcode). Koda gömmeniz gereken tek ID, placement ID’sidir. Flow’lar uzaktan yapılandırılır, bu yüzden ürünlerin sayısı ve mevcut teklifler her an değişebilir. Uygulamanız bu değişiklikleri dinamik olarak yönetmelidir—bir flow bugün iki, yarın üç ürün döndürürse, kod değişikliği olmadan hepsini gösterin.

try {
    const id = 'YOUR_PLACEMENT_ID';

    const flow = await adapty.getFlow(id);
    // the requested flow
} catch (error) {
    // handle the error
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde placement oluştururken belirttiğiniz değerdir.
fetchPolicyvarsayılan: 'reload_revalidating_cache_data'

fetchPolicy, SDK’nın önce hangi katmanı okuyacağını belirler; önbelleği kullanıp kullanamayacağını değil. SDK, varsayılan olarak önce sunucuya gider ve bu istek başarısız olursa önbelleğe alınmış 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 uğraştığını düşünüyorsanız 'return_cache_data_else_load' seçeneğini değerlendirebilirsiniz; bu seçenek önceliği tersine çevirir — önce önbelleği okur, önbellekte hiçbir şey yoksa sunucuya gider. Kullanıcılar en son verilere her zaman ulaşamayabilir, ancak internet bağlantısı ne kadar kesintili olursa olsun daha hızlı yükleme süresiyle karşılaşırlar. Önbellek düzenli olarak güncellenir, bu nedenle ağ isteklerini azaltmak için oturum boyunca güvenle kullanılabilir.

Üçüncü bir politika olan 'return_cache_data_if_not_expired_else_load', iki seçenek arasında yer alır: önbelleğe alınmış kopya, birlikte ilettiğiniz maxAgeSeconds değerinden daha yeni olduğu sürece önbelleği okur; daha eski olduğunda ise sunucuya gider.

Önbelleğin uygulama yeniden başlatıldığında bozulmadan kaldığını, yalnızca uygulama yeniden yüklendiğinde veya manuel temizleme yapıldığında silindiğini unutmayın.

Adapty SDK, flow’ları ve paywall’ları iki katmanda depolar: yukarıda açıklanan düzenli olarak güncellenen önbellek ve yedek paywall’lar. Flow’ları ve paywall’ları daha hızlı getirmek için CDN, CDN’e ulaşılamadığı durumlarda ise bağımsız bir yedek sunucu kullanılır. Bu sistem, internet bağlantısının yetersiz olduğu durumlarda bile güvenilirliği sağlarken her zaman flow’larınızın en son sürümünü almanızı sağlamak için tasarlanmıştır.

loadTimeoutMsvarsayılan: 5 sn

Bu değer, metodun zaman aşımını sınırlar. Zaman aşımına ulaşılırsa önbelleğe alınmış veriler veya yerel yedek döndürülür.

Nadir durumlarda bu metodun loadTimeout içinde belirtilenden biraz daha geç zaman aşımına uğrayabileceğini unutmayın; çünkü işlem arka planda farklı isteklerden oluşabilir.

Note

v4’te getFlow artık locale parametresi almaz. Özel paywall’lar için, mevcut tüm locale’ler flow’un remote config’inde (flow.remoteConfigs) döndürülür—kullanıcının cihazına veya uygulama ayarına uyanı seçin.

Ürün ID’lerini koda gömmeyin (hardcode)! Flow’lar uzaktan yapılandırıldığından, mevcut ürünler, ürün sayısı ve özel teklifler (ücretsiz denemeler gibi) zaman içinde değişebilir. Kodunuzun bu senaryoları yönettiğinden emin olun. Örneğin, başlangıçta 2 ürün getirirseniz, uygulamanız bu 2 ürünü göstermelidir. Ancak daha sonra 3 ürün getirirseniz, uygulamanız herhangi bir kod değişikliği gerektirmeden 3’ünü de göstermelidir. Koda gömmeniz gereken tek şey placement ID’sidir.

Yanıt parametreleri:

ParametreAçıklama
FlowPlacement’ı, tanımlayıcıları (id, variationId), varyant adını (variationName, isteğe bağlı, SDK 4.2+), adı, paywall varyantlarını (paywalls) ve yapılandırılmış her locale için bir girdi içeren remoteConfigs dizisini barındıran bir AdaptyFlow nesnesi. Flow için ürünleri almak üzere getPaywallProducts(flow) çağrısını kullanın.

Ürünleri getirme

Flow’a sahip olduğunuzda, ona karşılık gelen ürün dizisini sorgulayabilirsiniz:

try {
    // ...flow
    const products = await adapty.getPaywallProducts(flow);
  // the requested products list
} catch (error) {
    // handle the error
}

Yanıt parametreleri:

ParametreAçıklama
ProductsÜrün tanımlayıcısı, ürün adı, fiyat, para birimi, abonelik süresi ve diğer birkaç özelliği 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ı belgeye başvurun.

ÖzellikAçıklama
TitleÜrünün başlığını görüntülemek için product.localizedTitle kullanın. Yerelleştirmenin, cihazın locale’inden ziyade kullanıcıların seçtiği mağaza ülkesine dayandığını unutmayın.
PriceFiyatın yerelleştirilmiş bir sürümünü görüntülemek için product.price?.localizedString kullanın. Bu yerelleştirme, cihazın locale bilgisine dayanır. Fiyata product.price?.amount kullanarak bir sayı olarak da erişebilirsiniz. Değer yerel para biriminde sağlanır. İlgili para birimi sembolünü almak için product.price?.currencySymbol kullanın.
Subscription PeriodSüreyi (örneğin hafta, ay, yıl vb.) görüntülemek için product.subscription?.localizedSubscriptionPeriod kullanın. Bu yerelleştirme, cihazın locale’ine dayanır. Abonelik süresini programatik olarak getirmek için product.subscription?.subscriptionPeriod kullanın. Oradan, uzunluğu almak için unit özelliğine erişebilirsiniz (yani ‘day’, ‘week’, ‘month’, ‘year’ veya ‘unknown’). numberOfUnits değeri size süre birimi sayısını verir. Örneğin, üç aylık bir abonelik için, unit özelliğinde 'month' ve numberOfUnits özelliğinde 3 görürsünüz.
Introductory OfferBir aboneliğin başlangıç teklifi içerdiğini gösteren bir rozet veya başka bir gösterge görüntülemek için, product.subscription?.offer?.phases özelliğine göz atın. Bu, en fazla iki indirim aşaması içerebilen bir listedir: ücretsiz deneme aşaması ve başlangıç fiyatı aşaması. Her aşama nesnesinde şu yararlı özellikler bulunur:
• paymentMode: 'free_trial', 'pay_as_you_go', 'pay_up_front' ve 'unknown' değerlerine sahip bir dize. Ücretsiz denemeler 'free_trial' türünde olur.
• price: Bir sayı olarak indirimli fiyat. Ücretsiz denemeler için burada 0 arayın.
• localizedNumberOfPeriods: Teklifin uzunluğunu açıklayan, cihazın locale’i kullanılarak yerelleştirilmiş bir dize. Örneğin, üç günlük bir deneme teklifi bu alanda '3 days' gösterir.
• subscriptionPeriod: Alternatif olarak, teklif döneminin ayrıntılarını bu özellikle ayrı ayrı alabilirsiniz. Teklifler için önceki bölümde açıklandığı şekilde çalışır.
• localizedSubscriptionPeriod: Kullanıcının locale’i için biçimlendirilmiş bir indirim abonelik süresi.

Varsayılan kitle flow’uyla flow getirmeyi hızlandırma

Genellikle flow’lar neredeyse anında getirilir, bu yüzden bu süreci hızlandırma konusunda endişelenmenize gerek yoktur. Ancak çok sayıda kitleniz ve placement’ınız olduğu ve kullanıcılarınızın zayıf internet bağlantısı olduğu durumlarda, bir flow’u getirmek istediğinizden daha uzun sürebilir. Bu tür durumlarda, hiçbir şey göstermemek yerine sorunsuz bir kullanıcı deneyimi sağlamak için varsayılan bir flow görüntülemek isteyebilirsiniz.

Bunu çözmek için, belirtilen placement’ın flow’unu All Users kitlesi için getiren getFlowForDefaultAudience metodunu kullanabilirsiniz. Ancak, önerilen yaklaşımın yukarıdaki Flow bilgilerini getirme bölümünde ayrıntılı olarak açıklandığı gibi flow’u getFlow metoduyla getirmek olduğunu anlamak çok önemlidir.

Warning

getFlow kullanmanızı neden öneriyoruz

getFlowForDefaultAudience metodu birkaç önemli dezavantajla birlikte gelir:

  • Olası geriye dönük uyumluluk sorunları: Farklı uygulama sürümleri (mevcut ve gelecekteki) için farklı flow’lar göstermeniz gerekiyorsa, zorluklarla karşılaşabilirsiniz. Ya mevcut (eski) sürümü destekleyen flow’lar tasarlamanız ya da mevcut (eski) sürüme sahip kullanıcıların render edilmemiş flow’larla sorun yaşayabileceğini kabul etmeniz gerekir.
  • Hedefleme kaybı: Tüm kullanıcılar All Users kitlesi için tasarlanmış aynı flow’u görür; bu da kişiselleştirilmiş hedeflemeyi kaybettiğiniz anlamına gelir (ülkelere, pazarlama attribution’ına veya kendi özel niteliklerinize dayalı olanlar dahil).

Daha hızlı flow getirmeden yararlanmak için bu dezavantajları kabul etmeye istekliyseniz, getFlowForDefaultAudience metodunu aşağıdaki gibi kullanın. Aksi takdirde, yukarıda açıklanan getFlow’a bağlı kalın.

try {
    const id = 'YOUR_PLACEMENT_ID';

    const flow = await adapty.getFlowForDefaultAudience(id);
  // the requested flow
} catch (error) {
    // handle the error
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
fetchPolicyvarsayılan: 'reload_revalidating_cache_data'

fetchPolicy, SDK’nın önbelleği kullanıp kullanamayacağını değil, hangi katmanı önce okuyacağını belirler. SDK varsayılan olarak önce sunucuya gider; bu istek başarısız olursa önbelleğe döner. Bu seçeneği öneriyoruz çünkü kullanıcılarınızın her zaman en güncel verileri almasını sağlar.

Ancak kullanıcılarınızın istikrarsız bir internet bağlantısıyla karşılaştığını düşünüyorsanız, 'return_cache_data_else_load' seçeneğini değerlendirebilirsiniz. Bu seçenek sırayı tersine çevirir — önce önbelleği okur, yalnızca önbellekte hiçbir şey yoksa sunucuya gider. Kullanıcılar her zaman en son verilere ulaşamayabilir, ancak internet bağlantısı ne kadar kesintili olursa olsun daha hızlı yükleme süreleri yaşarlar. Önbellek düzenli olarak güncellenir, bu nedenle ağ isteklerini azaltmak amacıyla oturum boyunca güvenle kullanılabilir.

Üçüncü bir politika olan 'return_cache_data_if_not_expired_else_load', her ikisinin arasında bir yerde konumlanır: birlikte ilettiğiniz maxAgeSeconds değerinden daha genç olduğu sürece önbelleği okur, daha eski olduğunda ise sunucuya gider.

Ö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.

Remote config ve özel paywall’ları sergilemeden önce, onlar hakkındaki bilgileri getirmeniz gerekir. Lütfen bu konunun remote config ve özel paywall’lara atıfta bulunduğunu unutmayın. Paywall Builder ile özelleştirilen paywall’lar için paywall getirmeyle ilgili yönergeler için Paywall Builder paywall’larını ve yapılandırmalarını getirme bölümüne başvurun.

Tip

Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gerçek dünyadan bir örnekle görmek ister misiniz? Paywall gösterme, satın alma yapma ve diğer temel işlevler dahil olmak üzere tam kurulumu sergileyen örnek uygulamalarımıza göz atın.

Mobil uygulamanızda paywall’ları ve ürünleri getirmeye başlamadan önce (genişletmek için tıklayın)
  1. Adapty Kontrol Paneli’nde ürünlerinizi oluşturun.

  2. Adapty Kontrol Paneli’nde bir paywall oluşturun ve ürünleri paywall’ınıza dahil edin.

  3. Adapty Kontrol Paneli’nde placement’lar oluşturun ve paywall’ınızı placement’a dahil edin.

  4. Mobil uygulamanızda Adapty SDK’yı yükleyin.

Paywall bilgilerini çekme

Adapty’de bir ürün, App Store ve Google Play’deki ürünlerin bir kombinasyonudur. Bu çapraz platform ürünler paywallara entegre edilerek belirli mobil uygulama placement’larında gösterilmesini sağlar.

Ürünleri görüntüleyebilmek için getPaywall metoduyla placement’larınızdan birinden bir Paywall almanız gerekir.

Important

Ürün ID’lerini doğrudan koda yazmayın. Doğrudan koda 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 yönetmelidir; bugün iki ürün döndüren bir paywall yarın üç ürün döndürüyorsa, kod değişikliği yapmadan hepsini göstermelisiniz.

try {
    const id = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const paywall = await adapty.getPaywall(id, locale);
    // the requested paywall
} catch (error) {
    // handle the error
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
locale

isteğe bağlı

varsayılan: en

Paywall lokalizasyonunun tanımlayıcısı. Bu parametrenin, eksi (-) karakteriyle ayrılmış bir veya daha fazla alt etiketten oluşan bir dil kodu olması beklenir. İlk alt etiket dili, ikincisi ise bölgeyi belirtir.

Örnek: en İngilizce anlamına gelir, pt-br ise Brezilya Portekizcesini temsil eder.

Yerel ayar kodları ve bunların nasıl kullanılmasını önerdiğimiz hakkında daha fazla bilgi için Lokalizasyonlar ve yerel ayar kodları bölümüne bakın.

fetchPolicyvarsayılan: 'reload_revalidating_cache_data'

fetchPolicy, SDK’nın önce hangi katmanı okuyacağını belirler; önbelleği kullanıp kullanamayacağını değil. Varsayılan olarak SDK önce sunucuya gider ve bu istek başarısız olursa önbelleğe alınmış veriyi döndürür. Kullanıcılarınızın her zaman en güncel verilere ulaşmasını sağladığı için bu varyantı öneriyoruz.

Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla karşılaştığını düşünüyorsanız 'return_cache_data_else_load' seçeneğini göz önünde bulundurun; bu seçenek sırayı tersine çevirir — önce önbelleği okur ve yalnızca önbellekte hiçbir şey yoksa sunucuya gider. Kullanıcılar en son verilere ulaşamayabilir, ancak internet bağlantıları ne kadar kesintili olursa olsun daha hızlı yükleme süreleri yaşarlar. Önbellek düzenli olarak güncellenir, bu nedenle ağ isteklerini azaltmak amacıyla oturum sırasında kullanmak güvenlidir.

Üçüncü bir politika olan 'return_cache_data_if_not_expired_else_load', ikisi arasında bir yerde konumlanır: önbelleğe alınmış kopya, birlikte geçirdiğiniz maxAgeSeconds değerinden daha yeni olduğu sürece önce önbelleği okur; daha eski olduğunda ise sunucuya gider.

Önbelleğin uygulama yeniden başlatıldığında bozulmadan kaldığını ve yalnızca uygulama yeniden yüklendiğinde veya manuel temizleme yapıldığında silindiğini unutmayın.

Adapty SDK, paywall’ları iki katmanda depolar: yukarıda açıklanan düzenli olarak güncellenen önbellek ve yedek paywall’lar. Paywall’ları daha hızlı getirmek için CDN ve CDN’e ulaşılamadığı durumlarda bağımsız bir yedek sunucu da kullanıyoruz. Bu sistem, internet bağlantısının yetersiz olduğu durumlarda bile güvenilirliği sağlarken her zaman paywall’larınızın en son sürümünü almanızı garanti edecek şekilde tasarlanmıştır.

loadTimeoutMsvarsayılan: 5 sn

Bu değer, metodun zaman aşımını sınırlar. Zaman aşımına ulaşılırsa önbelleğe alınmış veriler veya yerel yedek döndürülür.

Nadir durumlarda bu metodun loadTimeout içinde belirtilenden biraz daha geç zaman aşımına uğrayabileceğini unutmayın; çünkü işlem arka planda farklı isteklerden oluşabilir.

Ürün ID’lerini doğrudan koda yazmayın! Paywalllar uzaktan yapılandırıldığından mevcut ürünler, ürün sayısı ve özel teklifler (ücretsiz deneme gibi) zaman içinde değişebilir. Kodunuzun bu senaryoları yönettiğinden emin olun.
Örneğin, başlangıçta 2 ürün alıyorsanız uygulamanız o 2 ürünü göstermelidir. Ancak daha sonra 3 ürün alırsanız uygulamanız herhangi bir kod değişikliği gerektirmeden 3 ürünü de göstermelidir. Doğrudan koda yazmanız gereken tek şey placement ID’sidir.

Yanıt parametreleri:

ParametreAçıklama
PaywallÜrün ID’lerinin 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 {
    // ...paywall
    const products = await adapty.getPaywallProducts(paywall);
  // the requested products list
} catch (error) {
    // handle the error
}

Yanıt parametreleri:

ParametreAçıklama
ProductsŞunları içeren AdaptyPaywallProduct nesnelerinin listesi: ürün tanımlayıcısı, ürün adı, fiyat, para birimi, abonelik uzunluğu ve diğer birkaç özellik.

Kendi paywall tasarımınızı uygularken, muhtemelen AdaptyPaywallProduct nesnesindeki bu özelliklere erişmeniz gerekecek. Aşağıda en yaygın kullanılan özellikler gösterilmiştir, ancak mevcut tüm özelliklerle ilgili tam ayrıntılar için bağlantılı belgeye bakın.

ÖzellikAçıklama
TitleÜrünün başlığını görüntülemek için product.localizedTitle kullanın. Yerelleştirmenin, cihazın locale’inden ziyade kullanıcıların seçtiği mağaza ülkesine dayandığını unutmayın.
PriceFiyatın yerelleştirilmiş bir sürümünü görüntülemek için product.price?.localizedString kullanın. Bu yerelleştirme, cihazın locale bilgisine dayanır. Fiyata product.price?.amount kullanarak bir sayı olarak da erişebilirsiniz. Değer yerel para biriminde sağlanır. İlgili para birimi sembolünü almak için product.price?.currencySymbol kullanın.
Subscription PeriodSüreyi (örneğin hafta, ay, yıl vb.) görüntülemek için product.subscription?.localizedSubscriptionPeriod kullanın. Bu yerelleştirme, cihazın locale’ine dayanır. Abonelik süresini programatik olarak getirmek için product.subscription?.subscriptionPeriod kullanın. Oradan, uzunluğu almak için unit özelliğine erişebilirsiniz (yani ‘day’, ‘week’, ‘month’, ‘year’ veya ‘unknown’). numberOfUnits değeri size süre birimi sayısını verir. Örneğin, üç aylık bir abonelik için, unit özelliğinde 'month' ve numberOfUnits özelliğinde 3 görürsünüz.
Introductory OfferBir aboneliğin başlangıç teklifi içerdiğini gösteren bir rozet veya başka bir gösterge görüntülemek için, product.subscription?.offer?.phases özelliğine göz atın. Bu, en fazla iki indirim aşaması içerebilen bir listedir: ücretsiz deneme aşaması ve başlangıç fiyatı aşaması. Her aşama nesnesinde şu yararlı özellikler bulunur:
• paymentMode: 'free_trial', 'pay_as_you_go', 'pay_up_front' ve 'unknown' değerlerine sahip bir dize. Ücretsiz denemeler 'free_trial' türünde olur.
• price: Bir sayı olarak indirimli fiyat. Ücretsiz denemeler için burada 0 arayın.
• localizedNumberOfPeriods: Teklifin uzunluğunu açıklayan, cihazın locale’i kullanılarak yerelleştirilmiş bir dize. Örneğin, üç günlük bir deneme teklifi bu alanda '3 days' gösterir.
• subscriptionPeriod: Alternatif olarak, teklif döneminin ayrıntılarını bu özellikle ayrı ayrı alabilirsiniz. Teklifler için önceki bölümde açıklandığı şekilde çalışır.
• localizedSubscriptionPeriod: Kullanıcının locale’i için biçimlendirilmiş bir indirim abonelik süresi.

Varsayılan kitle paywall’ıyla paywall çekmeyi hızlandırma

Normalde paywalllar neredeyse anında çekilir, bu nedenle bu süreci hızlandırmak için 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, bir paywall çekme işlemi istediğinizden daha uzun sürebilir. Bu durumlarda, hiç paywall göstermemek yerine sorunsuz bir kullanıcı deneyimi sağlamak için varsayılan bir paywall görüntülemek isteyebilirsiniz.

Bunu çözmek için, belirtilen placement’ın Tüm Kullanıcılar 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 anlamak önemlidir.

Warning

Neden getPaywall kullanmanızı öneriyoruz

getPaywallForDefaultAudience metodunun birkaç önemli dezavantajı vardır:

  • Potansiyel geriye dönük uyumluluk sorunları: Farklı uygulama sürümleri (mevcut ve gelecekteki) için farklı paywalllar göstermeniz gerekiyorsa sorunlarla karşılaşabilirsiniz. Ya mevcut (eski) sürümü destekleyen paywalllar tasarlamak zorunda kalırsınız ya da mevcut (eski) sürüme sahip kullanıcıların render edilmeyen paywalllarla karşılaşabileceğini kabul edersiniz.
  • Hedefleme kaybı: Tüm kullanıcılar Tüm Kullanıcılar kitlesi için tasarlanmış aynı paywall’ı görür; bu da kişiselleştirilmiş hedeflemeyi (ülkelere, pazarlama attribution’ına veya kendi özel özelliklerinize göre hedefleme dahil) kaybettiğiniz anlamına gelir.

Daha hızlı paywall çekme avantajından yararlanmak için bu dezavantajları kabul etmeye hazırsanız, aşağıdaki gibi getPaywallForDefaultAudience metodunu kullanın. Aksi takdirde yukarıda açıklanan getPaywall metoduna bağlı kalın.

try {
    const id = 'YOUR_PLACEMENT_ID';
    const locale = 'en';

    const paywall = await adapty.getPaywallForDefaultAudience(id, locale);
  // the requested paywall
} catch (error) {
    // handle the error
}
Note

getPaywallForDefaultAudience metodu React Native SDK 2.11.2 sürümünden itibaren kullanılabilir.

ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
locale

isteğe bağlı

varsayılan: en

Paywall yerelleştirmesinin tanımlayıcısı. Bu parametre, eksi (-) karakteriyle ayrılmış bir veya daha fazla alt etiketten oluşan bir dil kodu olmalıdır. İlk alt etiket dili, ikincisi ise bölgeyi belirtir.

Örnek: en İngilizce, pt-br ise Brezilya Portekizcesini temsil eder.

Yerel ayar kodları ve bunların nasıl kullanılması gerektiği hakkında daha fazla bilgi için Yerelleştirmeler ve yerel ayar kodları bölümüne bakın.

fetchPolicyvarsayılan: 'reload_revalidating_cache_data'

fetchPolicy, SDK’nın önbelleği kullanıp kullanamayacağını değil, hangi katmanı önce okuyacağını belirler. Varsayılan olarak SDK önce sunucuya gider ve istek başarısız olursa önbelleğe alınmış veriyi döndürür. Kullanıcılarınızın her zaman en güncel veriyi almasını sağladığı için bu seçeneği öneririz.

Ancak kullanıcılarınızın istikrarsız bir internet bağlantısıyla karşılaştığını düşünüyorsanız, sırayı tersine çeviren 'return_cache_data_else_load' seçeneğini değerlendirebilirsiniz; bu seçenek önce önbelleği okur ve yalnızca önbellekte hiçbir şey olmadığında sunucuya gider. Kullanıcılar en son veriyi alamayabilir, ancak internet bağlantıları ne kadar kesintili olursa olsun daha hızlı yükleme süreleri yaşarlar. Önbellek düzenli olarak güncellenir, dolayısıyla ağ isteklerini önlemek amacıyla oturum sırasında kullanmak güvenlidir.

Üçüncü bir politika olan 'return_cache_data_if_not_expired_else_load', ikisi arasında bir yerde durur: önbelleğe alınan kopya, yanında ilettiğiniz maxAgeSeconds değerinden daha yeni olduğu sürece önce önbelleği okur; daha eski olduğunda ise sunucuya gider.

Önbelleğin uygulama yeniden başlatıldığında silinmediğini; yalnızca uygulama yeniden yüklendiğinde veya manuel temizleme yapıldığında temizlendiğini unutmayın.