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

Remote config ve özel paywallları sergilemeden önce bunlara ilişkin bilgileri almanız gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu lütfen unutmayın. Flow Builder veya Paywall Builder’da özelleştirilen flow’ları veya paywallları almak için rehberlik amacıyla Flow’ları ve paywallları alma bölümüne başvurun.

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

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

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

Flow bilgilerini al

Adapty’de bir ürün, hem App Store hem de Google Play’deki ürünlerin bir kombinasyonunu temsil eder. Bu çapraz platform ürünler, flow’lara ve paywall’lara entegre edilerek belirli mobil uygulama placement’larında gösterilmesine olanak tanır.

Ürünleri göstermek için getFlow metodu ile placement’larınızdan birinden bir AdaptyFlow almanız gerekir.

Ürün ID’lerini sabit kodlamayın. Sabit kodlamanı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ın bu değişiklikleri dinamik olarak ele alması gerekir—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.


Adapty.getFlow(
    placementId = "YOUR_PLACEMENT_ID", 
    fetchPolicy = AdaptyPaywallFetchPolicy.Default,
    loadTimeout = 5.seconds
).onSuccess { flow ->
    // the requested flow
}.onError { error ->
    // handle the error
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirlediğiniz değerdir.
fetchPolicyvarsayılan: AdaptyPaywallFetchPolicy.Default

SDK varsayılan olarak sunucudan veri yüklemeye çalışır; 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 seçeneği öneririz.

Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla mücadele ettiğini düşünüyorsanız, önbelleğe alınmış veri varsa onu döndürmek için AdaptyPaywallFetchPolicy.ReturnCacheDataElseLoad seçeneğini kullanabilirsiniz. Bu senaryoda kullanıcılar 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 sırasında güvenle kullanılabilir.

Ö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 paywallları iki katmanda saklar: yukarıda açıklanan düzenli olarak güncellenen önbellek ve yedek paywalllar. Flow’ları ve paywallları daha hızlı getirmek için CDN, CDN’e ulaşılamadığı durumlarda ise bağımsız bir yedek sunucu kullanırız. Bu sistem, her zaman en güncel flow ve paywall sürümüne ulaşmanızı sağlarken internet bağlantısının zayıf olduğu durumlarda bile güvenilirliği ön planda tutar.

loadTimeoutvarsayılan: 5 sn

Bu değer, metodun zaman aşımı süresini sınırlar. Zaman aşımına ulaşıldığında önbelleğe alınmış veri 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 hardcode etmeyin! 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 bu 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ün tamamını göstermelidir. Hardcode etmeniz gereken tek şey placement ID’sidir.

Yanıt parametreleri:

ParametreAçıklama
FlowBir AdaptyFlow nesnesi şunları içerir: flow tanımlayıcısı, paywall varyasyonları (paywalls — her biri kendi ürün tanımlayıcılarıyla), yapılandırılan her yerel ayar için bir giriş içeren remoteConfigs listesi ve diğer çeşitli özellikler. Flow için ürünleri almak üzere getPaywallProducts(flow) çağrısını kullanın.

v4’te getFlow fonksiyonunun locale parametresi yoktur. createFlowView ile bir flow render ettiğinizde, yerelleştirme otomatik olarak çözümlenir. Özel paywalllar için tüm mevcut yerel ayarlar flow.remoteConfigs içinde birlikte döndürülür; kullanıcının cihazına veya uygulamanızın ayarına uyan yerel ayarı seçin. Ayrıntılar için Yerelleştirmeler ve yerel ayar kodları bölümüne bakın.

Ürünleri getir

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

Adapty.getPaywallProducts(flow).onSuccess { products ->
    // the requested products
}.onError { 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 çeşitli özellikleri içeren AdaptyPaywallProduct nesnelerinin listesi.

Kendi flow tasarımınızı uygularken, büyük olasılıkla AdaptyPaywallProduct nesnesindeki bu özelliklere erişmeniz gerekecektir. Aşağıda en sık kullanılan özellikler gösterilmektedir; mevcut tüm özellikler hakkında ayrıntılı bilgi için bağlantılı belgeye bakın.

ÖzellikAçıklama
BaşlıkÜrünün başlığını görüntülemek için product.localizedTitle kullanın. Yerelleştirmenin, cihazın dilinden değil, kullanıcının seçtiği mağaza ülkesine göre yapıldığını unutmayın.
FiyatFiyatın yerelleştirilmiş sürümünü görüntülemek için product.price.localizedString kullanın. Bu yerelleştirme, cihazın dil bilgisine dayanır. Fiyata sayı olarak erişmek için product.price.amount kullanabilirsiniz. Değer yerel para biriminde sağlanır. İlgili para birimi sembolünü almak için product.price.currencySymbol kullanın.
Abonelik DönemiDönemi (ör. hafta, ay, yıl vb.) görüntülemek için product.subscriptionDetails?.localizedSubscriptionPeriod kullanın. Bu yerelleştirme, cihazın diline dayanır. Abonelik dönemini programatik olarak almak için product.subscriptionDetails?.subscriptionPeriod kullanın. Buradan uzunluğu elde etmek amacıyla unit enum’ına erişebilirsiniz (DAY, WEEK, MONTH, YEAR veya UNKNOWN). numberOfUnits değeri, dönem birimi sayısını verir. Örneğin üç aylık bir abonelik için 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 göstermek için rozet veya başka bir gösterge kullanmak istiyorsanız product.subscriptionDetails?.introductoryOfferPhases ö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 kullanışlı özellikler yer alır:
paymentMode: FREE_TRIAL, PAY_AS_YOU_GO, PAY_UPFRONT ve UNKNOWN değerlerine sahip bir enum. Ücretsiz denemeler FREE_TRIAL türünde olur.
price: Sayı olarak ifade edilen indirimli fiyat. Ücretsiz denemeler için burada 0 değerini arayın.
localizedNumberOfPeriods: Teklifin süresini cihazın diline göre yerelleştirilmiş biçimde açıklayan bir dize. Örneğin üç günlük deneme teklifinde bu alanda 3 days görünür.
subscriptionPeriod: Alternatif olarak, teklif döneminin ayrıntılarını bu özellikle alabilirsiniz. Teklifler için de önceki bölümde açıklandığı şekilde çalışır.
localizedSubscriptionPeriod: Kullanıcının diline göre biçimlendirilmiş, indirime ait 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 nedenle bu süreci hızlandırmak için endişelenmenize gerek yoktur. Ancak çok sayıda kitle 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 ele almak için, belirtilen placement’ın All Users kitlesi için flow’unu getiren getFlowForDefaultAudience metodunu kullanabilirsiniz. Ancak, önerilen yaklaşımın yukarıdaki Flow bilgisini getirme bölümünde ayrıntılı olarak açıklandığı gibi getFlow metoduyla flow’u getirmek olduğunu anlamak çok önemlidir.

Neden getFlow kullanmanızı öneriyoruz

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

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

Eğer daha hızlı flow getirme işleminden yararlanmak adına bu dezavantajları kabul etmeye hazırsanız, getFlowForDefaultAudience metodunu aşağıdaki şekilde kullanın. Aksi takdirde, yukarıda açıklanan getFlow metodunu kullanmaya devam edin.


Adapty.getFlowForDefaultAudience(
    placementId = "YOUR_PLACEMENT_ID",
    fetchPolicy = AdaptyPaywallFetchPolicy.Default
).onSuccess { flow ->
    // the requested flow
}.onError { 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: AdaptyPaywallFetchPolicy.Default

SDK varsayılan olarak sunucudan veri yüklemeye çalışır; 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 erişmesini sağladığından 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, önbelleğe alınmış veri mevcutsa onu döndürmek için AdaptyPaywallFetchPolicy.ReturnCacheDataElseLoad kullanmayı düşünebilirsiniz. Bu senaryoda kullanıcılar en son verilere ulaşamayabilir; ancak internet bağlantısı ne kadar zayıf olursa olsun daha hızlı yükleme süreleri yaşarlar. Önbellek düzenli olarak güncellendiğinden, ağ isteklerinden kaçınmak amacıyla oturum boyunca güvenle kullanabilirsiniz.

Ö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 temizlendiğini unutmayın.

Remote config ve özel paywallları göstermeden önce, bunlarla ilgili bilgileri almanız gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu lütfen unutmayın. Paywall Builder ile özelleştirilmiş paywallları almak için Paywall Builder paywalllarını ve yapılandırmalarını getirme bölümüne 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ünleri getirmeye 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 paywall’unuza ekleyin - Adapty Kontrol Paneli’nde.

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

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

Paywall bilgilerini getir

Adapty’de bir ürün, App Store ve Google Play’den gelen ürünlerin birleşimini temsil eder. Bu çok platformlu ürünler paywall’lara entegre edilerek belirli mobil uygulama placement’larında sergilenir.

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

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


Adapty.getPaywall(
    placementId = "YOUR_PLACEMENT_ID", 
    locale = "en",
    fetchPolicy = AdaptyPaywallFetchPolicy.Default,
    loadTimeout = 5.seconds
).onSuccess { paywall ->
    // the requested paywall
}.onError { 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 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, ikincisi bölge içindir.

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

fetchPolicyvarsayılan: AdaptyPaywallFetchPolicy.Default

SDK varsayılan olarak verileri sunucudan yüklemeye çalışır; başarısız olması durumunda önbelleğe alınmış verileri döndürür. Kullanıcılarınızın her zaman en güncel verileri 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 karşılaştığını düşünüyorsanız, önbelleğe alınmış veri mevcutsa onu döndürmek için AdaptyPaywallFetchPolicy.ReturnCacheDataElseLoad kullanmayı değerlendirin. Bu senaryoda kullanıcılar mutlak en son verileri alamayabilir; 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 önlemek amacıyla oturum boyunca güvenle kullanılabilir.

Ö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, 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, 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 paywall’larınızın her zaman en güncel sürümünü almanızı garanti etmek için tasarlanmıştır.

loadTimeoutvarsayı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 sabit kodlamayın! Paywall’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ı ele aldığından emin olun.

Örneğin, başlangıçta 2 ürün alıyorsanız uygulamanız o 2 ürünü görüntülemelidir. Ancak daha sonra 3 ürün alırsanız, herhangi bir kod değişikliği gerektirmeden uygulamanız 3 ürünün tamamını görüntülemelidir. Sabit kodlamanız gereken tek şey placement ID’dir.

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 getir

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

Adapty.getPaywallProducts(paywall).onSuccess { products ->
    // the requested products
}.onError { 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 ç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 özellikler hakkında ayrıntılı bilgi için bağlantılı belgeye başvurun.

ÖzellikAçıklama
BaşlıkÜrünün başlığını görüntülemek için product.localizedTitle kullanın. Yerelleştirmenin, cihazın dil ayarına değil, kullanıcının seçtiği mağaza ülkesine göre yapıldığını unutmayın.
FiyatFiyatın yerelleştirilmiş halini görüntülemek 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öndürülür. İlgili para birimi sembolünü almak için product.price.currencySymbol kullanın.
Abonelik DönemiDönemi (örn. hafta, ay, yıl vb.) görüntülemek için product.subscriptionDetails?.localizedSubscriptionPeriod kullanın. Bu yerelleştirme cihazın diline göre yapılır. Abonelik dönemine programatik olarak erişmek için product.subscriptionDetails?.subscriptionPeriod kullanın. Bu özellik üzerinden unit enum’una erişerek süreyi (DAY, WEEK, MONTH, YEAR veya UNKNOWN) öğrenebilirsiniz. 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.
Başlangıç TeklifiBir aboneliğin başlangıç teklifi içerip içermediğini belirtmek için rozet veya başka bir gösterge kullanmak istiyorsanız product.subscriptionDetails?.introductoryOfferPhases özelliğine bakın. 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_UPFRONT ve UNKNOWN değerlerini alan bir enum. Ücretsiz denemeler FREE_TRIAL türünde olur.
price: İndirimli fiyatın sayısal değeri. Ücretsiz denemeler için burada 0 değerini arayın.
localizedNumberOfPeriods: Teklifin süresini cihazın diline göre yerelleştirilmiş biçimde açıklayan bir metin. Örneğin üç günlük deneme teklifinde bu alanda 3 days gösterilir.
subscriptionPeriod: Teklif döneminin ayrıntılarını ayrı ayrı almak için bu özelliği kullanabilirsiniz. Teklifler için bir önceki bölümde açıklanan şekilde çalışır.
localizedSubscriptionPeriod: Kullanıcının diline göre biçimlendirilmiş indirim abonelik dönemi.

Varsayılan kitle paywalli ile paywall getirmeyi hızlandırın

Genellikle paywalllar neredeyse anında getirilir, bu yüzden bu süreci hızlandırmak için endişelenmenize gerek yoktur. Ancak çok sayıda kitle ve paywallınız olduğu durumlarda ve kullanıcılarınızın internet bağlantısı zayıfsa, bir paywallın getirilmesi istediğinizden daha uzun sürebilir. Bu tür durumlarda, hiç paywall göstermemek yerine sorunsuz bir kullanıcı deneyimi sağlamak amacıyla varsayılan bir paywall görüntülemek isteyebilirsiniz.

Bunu çözmek için, belirtilen placement’ın paywallini All Users kitlesi için getiren getPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak şunu bilmek önemlidir: önerilen yaklaşım, yukarıdaki Paywall Bilgisini Getir bölümünde açıklanan getPaywall metoduyla paywalli getirmektir.

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ı paywall’lar göstermeniz gerekiyorsa bazı zorluklarla karşılaşabilirsiniz. Ya mevcut (eski) sürümü destekleyen paywall’lar tasarlamanız ya da mevcut (eski) sürümdeki kullanıcıların render edilemeyen paywall’larla sorun yaşayabileceğini kabul etmeniz gerekecektir.
  • Hedefleme kaybı: Tüm kullanıcılar All Users kitlesi için tasarlanmış aynı paywall’ı görecektir; bu da ülkelere, pazarlama attribution’ına veya kendi özel nitelendirmelerinize dayalı kişiselleştirilmiş hedeflemeyi kaybetmeniz anlamına gelir.

Bu dezavantajları kabul ederek daha hızlı paywall getirme işleminden yararlanmak istiyorsanız, getPaywallForDefaultAudience metodunu aşağıdaki şekilde kullanın. Aksi takdirde, yukarıda açıklanan getPaywall metodunu kullanmaya devam edin.


Adapty.getPaywallForDefaultAudience(
    placementId = "YOUR_PLACEMENT_ID",
    locale = "en",
    fetchPolicy = AdaptyPaywallFetchPolicy.Default
).onSuccess { paywall ->
    // the requested paywall
}.onError { error ->
    // handle the error
}
ParametreZorunlulukAçıklama
placementIdzorunluPlacement için tanımlayıcı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
locale

isteğe bağlı

varsayılan: en

Paywall yerelleştirmesi için tanımlayıcı. 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 anlamına gelir, pt-br ise Brezilya Portekizcesini temsil eder.

fetchPolicyvarsayılan: AdaptyPaywallFetchPolicy.Default

SDK, varsayılan olarak sunucudan veri yüklemeyi dener ve hata durumunda önbelleğe alınmış verileri döndürür. Kullanıcılarınızın her zaman en güncel verilere erişmesini sağladığı için 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, önbelleğe alınmış veri varsa onu döndürmek için AdaptyPaywallFetchPolicy.ReturnCacheDataElseLoad kullanmayı değerlendirebilirsiniz. Bu durumda kullanıcılar 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 oturum sırasında ağ isteklerini azaltmak amacıyla güvenle kullanılabilir.

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