Capacitor SDK'da özel paywallları ve ürünleri getirme

Özel paywallları göstermeden önce, onlara ait bilgileri çekmeniz gerekir. Bu konunun özel paywalllarla ilgili olduğunu unutmayın. Flow & Paywall Builder veya eski Paywall Builder ile özelleştirilmiş flowlar ya da paywallları çekme hakkında rehberlik için lütfen Flowları, paywallları ve yapılandırmalarını çekme bölümüne bakın.

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 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 flow veya paywall oluşturun ve ürünleri buna ekleyin.

  3. Adapty Kontrol Paneli’nde placement’lar oluşturun ve flow veya paywall’ınızı placement’a ekleyin.

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

Flow bilgilerini getirme

Adapty’de bir ürün, hem App Store hem de Google Play’den gelen ürünlerin birleşimidir. Bu platformlar arası ürünler, belirli mobil uygulama placement’larında sergilemenizi sağlamak amacıyla flow’lara ve paywall’lara entegre edilir.

Ü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 doğrudan koda yazmayın. Doğrudan koda yazmanız gereken tek ID, placement ID’sidir. Flow’lar 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; bir flow bugün iki ürün döndürüyorsa ve yarın üç ürün döndürüyorsa, kod değişikliği yapmadan hepsini gösterin.


try {
  const flow = await adapty.getFlow({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    params: {
      fetchPolicy: 'reload_revalidating_cache_data', // Load from server, fallback to cache
      loadTimeoutMs: 5000 // 5 second timeout
    }
  });
  // the requested flow
} catch (error) {
  console.error('Failed to fetch flow:', error);
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
params.fetchPolicy

isteğe bağlı

varsayı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, 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 veriyi almasını sağladığından bu seçeneği öneririz.

Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla başa çıktığı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, hiçbir şey önbelleğe alınmamışsa 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, bu nedenle ağ isteklerinden kaçınmak için 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ınmış kopya, yanında ilettiğiniz maxAgeSeconds değerinden daha yeniyken ö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.

Adapty SDK, flow’ları ve paywall’ları iki katmanda saklar: 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ıyoruz. Bu sistem, internet bağlantısının kısıtlı olduğu durumlarda bile güvenilirliği sağlarken flow’larınızın her zaman en güncel sürümünü almanızı garanti etmek için tasarlanmıştır.

params.loadTimeoutMs

isteğe bağlı

varsayılan: 5000 ms

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

Nadir durumlarda bu metodun loadTimeoutMs 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 almıyor. Özel paywalllar 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 olanı seçin.

Ürün ID’lerini kod içine sabit olarak yazmayın! Flow’lar 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ı ele aldığından 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, herhangi bir kod değişikliği gerektirmeden uygulamanız 3 ürünü de göstermelidir. Tek sabit olarak yazmanız gereken şey placement ID’sidir.

Yanıt parametreleri:

ParametreAçıklama
FlowPlacement, tanımlayıcılar (id, variationId), ad, paywall varyasyonları (paywalls) ve yapılandırılmış her yerel ayar için bir giriş içeren remoteConfigs dizisini barındıran bir AdaptyFlow nesnesi. Flow için ürünleri getirmek üzere getPaywallProducts({ flow }) çağrısını kullanın.

Ürünleri getir

Flow’u aldıktan sonra, ona karşılık gelen ürün dizisini sorgulayabilirsiniz:


try {
  const products = await adapty.getPaywallProducts({ flow });
  // the requested products list
} catch (error) {
  console.error('Failed to fetch products:', 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 ç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.

ÖzellikAçıklama
BaşlıkÜrün başlığını göstermek için product.localizedTitle kullanın. Yerelleştirme, cihazın yerel ayarına değil, kullanıcının seçtiği mağaza ülkesine göre yapılır.
FiyatFiyatın yerelleştirilmiş halini göstermek için product.price?.localizedString kullanın. Bu yerelleştirme cihazın yerel ayarına göre yapılır. Fiyata sayısal olarak erişmek için product.price?.amount kullanabilirsiniz. Değer yerel para biriminde sunulur. İlgili para birimi sembolünü almak için product.price?.currencySymbol kullanın.
Abonelik DönemiDönemi (ör. hafta, ay, yıl vb.) göstermek için product.subscription?.localizedSubscriptionPeriod kullanın. Bu yerelleştirme cihazın yerel ayarına göre yapılır. Abonelik dönemine programatik olarak erişmek için product.subscription?.subscriptionPeriod kullanın. Buradan unit özelliğine erişerek uzunluğu (yani ‘day’, ‘week’, ‘month’, ‘year’ veya ‘unknown’) alabilirsiniz. numberOfUnits değeri ise dönem birimi sayısını verir. Örneğin üç aylık bir abonelikte unit özelliğinde 'month', numberOfUnits özelliğinde ise 3 görürsünüz.
Başlangıç TeklifiBir aboneliğin başlangıç teklifi içerip içermediğini rozet veya başka bir gösterge ile belirtmek için product.subscription?.offer?.phases özelliğine bakın. Bu, ücretsiz deneme aşaması ve başlangıç fiyatı aşaması olmak üzere en fazla iki indirim aşaması içerebilen bir listedir. Her aşama nesnesi şu kullanışlı özellikleri içerir:
• paymentMode: 'free_trial', 'pay_as_you_go', 'pay_up_front' ve 'unknown' değerlerini alabilen bir dize. Ücretsiz denemeler 'free_trial' türünde olur.
• price: İndirimli fiyat, sayısal olarak. Ücretsiz denemeler için burada 0 değerini arayın.
• localizedNumberOfPeriods: Teklifin süresini cihazın yerel ayarına göre açıklayan yerelleştirilmiş bir dize. Örneğin üç günlük bir deneme teklifi bu alanda '3 days' olarak görünür.
• subscriptionPeriod: Alternatif olarak, teklif döneminin ayrıntılarına bu özellik aracılığıyla ulaşabilirsiniz. Teklifler için önceki bölümde açıklanan yöntemle aynı şekilde çalışır.
• localizedSubscriptionPeriod: Kullanıcının yerel ayarına göre biçimlendirilmiş indirim abonelik dönemi.

Varsayılan kitle flow’u ile flow getirme işlemini hızlandırın

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 bir internet bağlantısına sahip olduğu durumlarda, bir flow’u getirmek istediğinizden daha uzun sürebilir. Bu gibi durumlarda, hiçbir şey göstermek yerine sorunsuz bir kullanıcı deneyimi sağlamak amacıyla varsayılan bir flow görüntülemek isteyebilirsiniz.

Bunu çözmek için, belirtilen placement’ın All Users kitlesi için flow’u getiren getFlowForDefaultAudience metodunu kullanabilirsiniz. Ancak şunu bilmek önemlidir: önerilen yaklaşım, yukarıdaki Flow bilgisini getirme bölümünde açıklandığı gibi getFlow metoduyla flow’u getirmektir.

Warning

Neden getFlow kullanmanızı öneriyoruz

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

  • Olası geriye dönük uyumluluk sorunları: Farklı uygulama sürümleri için (mevcut ve gelecekteki) 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 edilemeyen flow’larla sorun yaşayabileceğini kabul etmeniz gerekecektir.
  • Hedefleme kaybı: Tüm kullanıcılar All Users kitlesi için tasarlanmış aynı flow’u görür; bu da ülkelere, marketing attribution’a veya kendi özel niteliklerinize göre kişiselleştirilmiş hedeflemeyi kaybetmeniz anlamına gelir.

Eğer daha hızlı flow çekme işleminden yararlanmak için bu dezavantajları kabul etmeye hazırsanız, getFlowForDefaultAudience metodunu aşağıdaki gibi kullanın. Aksi takdirde, yukarıda açıklanan getFlow yöntemini kullanmaya devam edin.


try {
  const flow = await adapty.getFlowForDefaultAudience({ 
    placementId: 'YOUR_PLACEMENT_ID', 
    params: {
      fetchPolicy: 'reload_revalidating_cache_data' // Load from server, fallback to cache
    }
  });
  // the requested flow
} catch (error) {
  console.error('Failed to fetch default audience flow:', error);
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement’ın tanımlayıcısı. Bu, Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
params.fetchPolicy

isteğe bağlı

varsayı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öner. Kullanıcılarınızın her zaman en güncel verilere ulaşmasını sağladığı için bu seçeneği öneririz.

Ancak kullanıcılarınızın kararsı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ğerlendirin; bu seçenek önce önbelleği okur ve yalnızca önbellekte hiçbir şey yoksa sunucuya gider. Kullanıcılar en güncel 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ğ isteklerinden kaçınmak için oturum boyunca kullanmak güvenlidir.

Üçüncü bir politika olan 'return_cache_data_if_not_expired_else_load', ikisi arasında bir yerde durur: önbelleğe alınmış kopya, yanında 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.

Özel paywallları tanıtmadan önce, bunlarla ilgili bilgileri çekmeniz gerekir. Bu konunun özel paywalllarla ilgili olduğunu lütfen unutmayın. Paywall Builder ile özelleştirilmiş paywallları çekme konusunda rehberlik için lütfen Paywall Builder paywalllarını ve konfigürasyonlarını çekme 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 ve ürünleri çekmeye başlamadan önce (genişletmek için tıklayın)
  1. Adapty Kontrol Paneli’nde ürünlerinizi oluşturun.

  2. Bir paywall oluşturun ve ürünleri paywalla ekleyin - Adapty Kontrol Paneli’nde.

  3. Placement’lar oluşturun ve paywallınızı placement’a ekleyin - Adapty Kontrol Paneli’nde.

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

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);
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement’ın tanımlayıcısı. Bu, 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 parametrenin, eksi (-) karakteriyle ayrılmış bir veya daha fazla alt etiketten oluşan bir dil kodu olması beklenir. İlk alt etiket dil için, ikincisi ise bölge içindir.

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

Yerel ayar kodları ve bunların nasıl kullanılmasını önerdiğimiz 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: '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. Bu yaklaşımı öneriyoruz çünkü kullanıcılarınızın her zaman en güncel verilere ulaşmasını sağlar.

Ancak kullanıcılarınızın kararsız internet bağlantısıyla uğraştığını düşünüyorsanız, bu sırayı tersine çeviren 'return_cache_data_else_load' seçeneğini kullanabilirsiniz; önce önbelleği okur ve yalnızca önbellekte hiçbir şey yoksa sunucuya gider. Kullanıcılar en güncel 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 ö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 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ı ve yalnızca uygulama kaldırılıp yeniden yüklendiğinde veya manuel temizleme yoluyla temizlendiğini unutmayın.

params.loadTimeoutMs

isteğe bağlı

varsayılan: 5000 ms

Bu değer, bu metodun zaman aşımı süresini (milisaniye cinsinden) sınırlar. Zaman aşımına ulaşıldığında, önbelleğe alınmış veriler veya yerel yedek döndürülür.

Nadir durumlarda bu metodun, loadTimeoutMs 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 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:

ParametreAçıklama
PaywallÜrün kimliklerinin 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:

ParametreAçıklama
ProductsÜrün kimliği, ü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, büyük olasılıkla AdaptyPaywallProduct nesnesindeki bu özelliklere ihtiyaç duyacaksınız. Aşağıda en sık kullanılan özellikler gösterilmektedir; mevcut tüm özelliklere ilişkin ayrıntılar için bağlantılı belgeye başvurun.

ÖzellikAçıklama
TitleÜrünün başlığını göstermek için product.localizedTitle kullanın. Yerelleştirmenin cihazın dilayarına değil, kullanıcının seçtiği mağaza ülkesine göre yapıldığını unutmayın.
PriceFiyatın yerelleştirilmiş halini göstermek için product.price?.localizedString kullanın. Bu yerelleştirme cihazın dil bilgisine göre yapılır. Fiyata sayısal olarak erişmek için product.price?.amount kullanabilirsiniz. Değer yerel para biriminde döner. İlgili para birimi sembolünü almak için product.price?.currencySymbol kullanın.
Subscription PeriodDönemi (haftallık, aylık, yıllık vb.) göstermek için product.subscription?.localizedSubscriptionPeriod kullanın. Bu yerelleştirme cihazın diline göre yapılır. Abonelik dönemine programatik olarak erişmek için product.subscription?.subscriptionPeriod kullanın. Buradan unit özelliğiyle süre birimini (‘day’, ‘week’, ‘month’, ‘year’ veya ‘unknown’) alabilirsiniz. numberOfUnits değeri ise 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.
Introductory OfferBir aboneliğin başlangıç teklifi içerip içermediğini rozet veya başka bir göstergeyle belirtmek için product.subscription?.offer?.phases özelliğine bakın. Bu liste en fazla iki indirim aşaması içerebilir: ü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ğerlerini alan bir string. Ücretsiz denemeler 'free_trial' türünde olur.
• price: İndirimli fiyat, sayısal olarak. Ücretsiz denemeler için bu alanda 0 arayın.
• localizedNumberOfPeriods: Teklifin süresini cihazın diline göre yerelleştirilmiş biçimde açıklayan bir string. Örneğin üç günlük bir deneme teklifi bu alanda '3 days' olarak görünür.
• subscriptionPeriod: Alternatif olarak teklif döneminin ayrıntılarını bu özellikle alabilirsiniz. Teklifler için bir önceki bölümde açıklandığı gibi çalışır.
• localizedSubscriptionPeriod: İndirim döneminin kullanıcının diline göre biçimlendirilmiş hali.

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.

Warning

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);
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirlediğiniz değerdir.
locale

isteğe bağlı

varsayılan: en

Paywall yerelleştirmesi 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 dil, ikincisi bölge içindir.

Ö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ı sayfasına bakın.

params.fetchPolicy

isteğe bağlı

varsayı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; istek başarısız olursa önbelleğe alınan veriyi döner. Kullanıcılarınızın her zaman en güncel veriyi almasını sağladığından bu seçeneği ö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 değerlendirin; bu seçenek sırayı tersine çevirir — önce önbelleği okur, hiçbir şey önbellekte yoksa sunucuya gider. Kullanıcılar mutlak en güncel veriyi alamayabilir, ancak internet bağlantıları ne kadar kesintili olursa olsun daha hızlı yükleme süreleriyle karşılaşırlar. Önbellek düzenli olarak güncellendiğinden ağ isteklerinden kaçınmak amacıyla oturum boyunca kullanmak güvenlidir.

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

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