Unity SDK'da remote config paywallları için paywallları ve ürünleri getir

Remote config ve özel paywallları kullanıma sunmadan önce bunlara ait bilgileri çekmeniz gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu unutmayın. Flow & Paywall Builder veya old Paywall Builder ile özelleştirilmiş flow’ları ya da paywallları çekmek için lütfen Flow’ları ve paywallları al 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 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 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şimini temsil eder. Bu çapraz platform ürünler, flow’lara ve paywall’lara entegre edilerek belirli mobil uygulama placement’larında gösterilmenizi sağlar.

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

Important

Ürün ID’lerini hardcode etmeyin. Hardcode etmeniz 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östermelisiniz.

Adapty.GetFlow(
    "YOUR_PLACEMENT_ID",
    AdaptyPlacementFetchPolicy.Default,
    TimeSpan.FromSeconds(5),
    (flow, error) => {
        if (error != null) {
            // handle the error
            return;
        }

        // flow - the requested flow
    }
);
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
fetchPolicyvarsayılan: AdaptyPlacementFetchPolicy.Default

fetchPolicy, SDK’nın önce hangi katmanı okuyacağını belirler; önbelleğin kullanılıp kullanılamayacağını değil. Varsayılan olarak SDK önce sunucuya gider, 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 öneriyoruz.

Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla karşılaştığını düşünüyorsanız AdaptyPlacementFetchPolicy.ReturnCacheDataElseLoad seçeneğini değerlendirin; bu seçenek sırayı tersine çevirir — önce önbelleği okur, önbellekte hiçbir şey yoksa sunucuya gider. Kullanıcılar en son veriyi her zaman alamayabilir, ancak internet bağlantısı ne kadar kesintili olursa olsun daha hızlı yükleme süreleri yaşarlar. Önbellek düzenli aralıklarla güncellenir; bu nedenle ağ isteklerinden kaçınmak amacıyla oturum boyunca önbelleği kullanmak güvenlidir.

Üçüncü bir politika olan AdaptyPlacementFetchPolicy.ReturnCacheDataIfNotExpiredElseLoad(maxAge) ikisi arasında yer alır: önbelleğe alınan kopya, ilettiğiniz TimeSpan değerinden daha yeniyken önce önbelleği okur; daha eski olduğunda sunucuya gider.

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

Adapty SDK, flow’ları ve paywallları iki katmanda depolar: 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ığında ise bağımsız bir yedek sunucu kullanıyoruz. Bu sistem, internet bağlantısının yetersiz olduğu durumlarda bile güvenilirliği sağlarken flow’larınızın ve paywalllarınızın her zaman en güncel sürümünü almanızı garantilemek için tasarlanmıştır.

loadTimeoutvarsayılan: 5 sn

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

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

Ü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 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 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’dir.

Yanıt parametreleri:

ParametreAçıklama
FlowŞu özelliklere sahip bir AdaptyFlow nesnesi: flow tanımlayıcısı, paywall varyasyonları (Paywalls — her biri kendi ürün tanımlayıcılarına sahip), yapılandırılmış her yerel ayar için bir giriş içeren RemoteConfigs listesi ve çeşitli diğer özellikler. Flow için ürünleri çekmek üzere GetPaywallProducts(flow) çağrısını kullanın.
Note

v4’te GetFlow’un locale parametresi yoktur. CreateFlowView ile bir flow render ettiğinizde yerelleştirme otomatik olarak çözümlenir. Özel paywalllar için mevcut tüm locale’ler flow.RemoteConfigs içinde birlikte döner — kullanıcının cihazına veya uygulamanızın ayarına uyan locale’i seçin. Ayrıntılar için bkz. Yerelleştirmeler ve locale kodları.

Ürünleri getir

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

Adapty.GetPaywallProducts(flow, (products, error) => {
    if (error != null) {
        // handle the error
        return;
    }

    // products - the requested products array
});

Yanıt parametreleri:

ParametreAçıklama
ProductsŞu bilgileri içeren AdaptyPaywallProduct nesnelerinin listesi: ürün tanımlayıcısı, ürün adı, fiyat, para birimi, abonelik süresi ve diğer çeşitli özellikler.

Kendi flow tasarımınızı uygularken, büyük olasılıkla AdaptyPaywallProduct nesnesinden bu özelliklere erişmeniz gerekecektir. Aşağıda en sık kullanılan özellikler gösterilmektedir.

ÖzellikAçıklama
TitleÜ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.
PriceFiyatı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 da erişmek için product.Price.Amount kullanabilirsiniz. Değer, yerel para birimi cinsinden sağlanacaktır. İlgili para birimi sembolünü almak için product.Price.CurrencySymbol kullanın.
Subscription PeriodPeriyodu (örn. hafta, ay, yıl vb.) göstermek için product.Subscription?.LocalizedPeriod kullanın. Bu yerelleştirme, cihazın yerel ayarına dayanır. Abonelik periyodunu programatik olarak almak için product.Subscription?.Period kullanın. Buradan uzunluğu elde etmek üzere Unit enum’una erişebilirsiniz (yani AdaptySubscriptionPeriodUnit.Day, AdaptySubscriptionPeriodUnit.Week, AdaptySubscriptionPeriodUnit.Month, AdaptySubscriptionPeriodUnit.Year veya AdaptySubscriptionPeriodUnit.Unknown). NumberOfUnits değeri, periyot birimi sayısını verir. Örneğin üç aylık bir abonelik için Unit özelliğinde AdaptySubscriptionPeriodUnit.Month, NumberOfUnits özelliğinde ise 3 görürsünüz.
Introductory OfferBir aboneliğin başlangıç teklifi içerdiğini belirten bir rozet veya başka bir gösterge görüntülemek için product.Subscription?.Offer?.Phases özelliğine bakı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 nesnesi içinde aşağıdaki faydalı özellikler bulunur:
• PaymentMode: AdaptyPaymentMode.FreeTrial, AdaptyPaymentMode.PayAsYouGo, AdaptyPaymentMode.PayUpFront ve AdaptyPaymentMode.Unknown değerlerine sahip bir enum. Ücretsiz denemeler AdaptyPaymentMode.FreeTrial türünde olacaktır.
• Price: İndirimli fiyatı içeren bir AdaptyPrice nesnesi — sayı için Price.Amount, görüntülemek için Price.LocalizedString kullanın. Ücretsiz denemeler için Price.Amount içinde 0 değerini arayın.
• LocalizedNumberOfPeriods: Teklifin süresini cihazın yerel ayarıyla yerelleştirilmiş biçimde açıklayan bir dize. Örneğin, üç günlük bir deneme teklifi bu alanda "3 days" gösterir.
• SubscriptionPeriod: Alternatif olarak, bu özellikle teklif periyodunun ayrıntılarını tek tek alabilirsiniz. Teklifler için bir önceki bölümde açıklananla aynı şekilde çalışır.
• LocalizedSubscriptionPeriod: Kullanıcının yerel ayarı için biçimlendirilmiş indirim abonelik periyodu.

Varsayılan kitle flow’u ile flow getirmeyi hızlandırın

Genellikle flow’lar neredeyse anında getirilir, bu yüzden bu süreci hızlandırmak için endişelenmenize gerek yoktur. Ancak çok sayıda kitleniz ve placement’ınız varsa ve kullanıcılarınızın internet bağlantısı zayıfsa, bir flow’un getirilmesi istediğinizden daha uzun sürebilir. Böyle durumlarda, hiçbir şey göstermemek yerine sorunsuz bir kullanıcı deneyimi sağlamak amacıyla varsayılan bir flow göstermek 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 kritik öneme sahiptir.

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 (mevcut ve gelecekteki) için farklı flow’lar göstermeniz gerekiyorsa, zorluklarla karşılaşabilirsiniz. Ya mevcut (eski) sürümü destekleyen flow’lar tasarlamak zorunda kalırsınız ya da mevcut (eski) sürüme sahip kullanıcıların render edilemeyen flow’larla sorun yaşayabileceğini kabul etmek durumunda olursunuz.
  • Hedeflemenin kaybı: Tüm kullanıcılar All Users kitlesi için tasarlanmış aynı flow’u görür; bu da ülkelere, pazarlama attribution’ına veya kendi özel niteliklerinize dayalı kişiselleştirilmiş hedeflemeyi kaybetmeniz anlamına gelir.

Bu dezavantajları kabul ederek daha hızlı flow çekme işleminden yararlanmak istiyorsanız, GetFlowForDefaultAudience metodunu aşağıdaki gibi kullanın. Aksi takdirde, yukarıda açıklanan GetFlow metodunu kullanmaya devam edin.

Adapty.GetFlowForDefaultAudience(
    "YOUR_PLACEMENT_ID",
    AdaptyPlacementFetchPolicy.Default,
    (flow, error) => {
        if (error != null) {
            // handle the error
            return;
        }

        // flow - the requested flow
    }
);
ParametreZorunlulukAçıklama
placementIdzorunluPlacement tanımlayıcısı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir.
fetchPolicyvarsayılan: AdaptyPlacementFetchPolicy.Default

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öner. Kullanıcılarınızın her zaman en güncel veriyi alması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 mücadele ettiğini düşünüyorsanız AdaptyPlacementFetchPolicy.ReturnCacheDataElseLoad seçeneğini değerlendirebilirsiniz; bu seçenek sırayı tersine çevirir — önce önbelleği okur, önbellekte hiçbir şey yoksa sunucuya gider. Kullanıcılar en güncel 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ğ isteklerini azaltmak için oturum boyunca kullanmak güvenlidir.

Üçüncü bir politika olan AdaptyPlacementFetchPolicy.ReturnCacheDataIfNotExpiredElseLoad(maxAge), ikisinin arasında yer alır: önbelleğe alınmış kopya, ilettiğiniz TimeSpan değerinden daha yeniyken önbelleği okur; daha eskiyse 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 temizlik yapıldığında temizlendiğini unutmayın.

Remote config ve özel paywallları göstermeden önce, bunlara ilişkin bilgileri getirmeniz gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu unutmayın. Paywall Builder ile özelleştirilmiş paywallları getirme konusunda rehberlik için Paywall Builder paywalllarını ve yapılandırmalarını getirme 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 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. Adapty Kontrol Paneli’nde bir paywall oluşturun ve ürünleri paywalla ekleyin.

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

  4. 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şimidir. Bu platformlar arası ürünler paywallara entegre edilerek belirli mobil uygulama placement’larında gösterilmesini sağlar.

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

Important

Ürün ID’lerini koda sabit olarak yazmayın. Koda 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 işleyebilmelidir — bugün bir paywall iki ürün döndürüyorsa ve yarın üç ürün döndürüyorsa, kod değişikliği gerektirmeden hepsini görüntüleyin.

Adapty.GetPaywall("YOUR_PLACEMENT_ID", "en", (paywall, error) => {
  if(error != null) {
    // handle the error
    return;
  }
  
  // paywall - the resulting object
});
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 etiket içeren bir dil kodu olması beklenir. İlk alt etiket dili, ikincisi ise bölgeyi belirtir.

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

Locale kodları ve bunların nasıl kullanılmasını önerdiğimiz hakkında daha fazla bilgi için Yerelleştirmeler ve locale kodları bölümüne bakın.

fetchPolicyvarsayılan: AdaptyPlacementFetchPolicy.Default

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ış veriyi döndürür. Kullanıcılarınızın her zaman en güncel verilere ulaşması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 AdaptyPlacementFetchPolicy.ReturnCacheDataElseLoad seçeneğini değerlendirin; 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 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 sırasında güvenle kullanılabilir.

Üçüncü bir politika olan AdaptyPlacementFetchPolicy.ReturnCacheDataIfNotExpiredElseLoad(maxAge), ikisi arasında bir yerde konumlanır: önbelleğe alınmış kopya, ilettiğiniz TimeSpan 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 sağlam kaldığını, yalnızca uygulama yeniden yüklendiğinde veya manuel temizlik yapıldığında silindiğini unutmayın.

Adapty SDK, paywallları iki katmanda saklar: yukarıda açıklanan düzenli olarak güncellenen önbellek ve yedek paywalllar. Paywallları daha hızlı getirmek için CDN, CDN’e ulaşılamadığı durumlar için 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 her zaman paywalllarınızın en güncel sürümünü almanızı garanti edecek şekilde 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 belirtilenin biraz sonrasında zaman aşımına uğrayabileceğini unutmayın; çünkü işlem arka planda farklı isteklerden oluşabilir.

Ürün ID’lerini koda sabit olarak yazmayın! Paywalllar uzaktan yapılandırıldığından, mevcut ürünler, ürün sayısı ve özel teklifler (ücretsiz denemeler gibi) zamanla değişebilir. Kodunuzun bu senaryoları işlediğinden emin olun.
Örneğin, başlangıçta 2 ürün alırsanız uygulamanız o 2 ürünü görüntülemelidir. Ancak daha sonra 3 ürün alırsanız, uygulamanız herhangi bir kod değişikliği gerektirmeden 3 ürünün tamamını görüntülemelidir. Koda sabit olarak yazmanız gereken tek şey placement ID’sidir.

Yanıt parametreleri:

ParametreAçıklama
PaywallÜrün ID’leri listesi, paywall tanımlayıcısı, remote config ve diğer çeşitli özelliklerle birlikte bir AdaptyPaywall nesnesi.

Ürünleri çekme

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

Adapty.GetPaywallProducts(paywall, (products, error) => {
  if(error != null) {
    // handle the error
    return;
  }
  
  // products - the requested products array
});

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 özelliklerle birlikte 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; ancak mevcut tüm özelliklere ilişkin tam ayrıntılar 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 yerel 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 yerel ayar 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 (örn. hafta, ay, yıl vb.) görüntülemek için product.Subscription?.LocalizedPeriod kullanın. Bu yerelleştirme, cihazın yerel ayarına dayanır. Abonelik dönemini programatik olarak almak için product.Subscription?.Period kullanın. Buradan, uzunluğu öğrenmek için Unit enum’una erişebilirsiniz (yani AdaptySubscriptionPeriodUnit.Day, AdaptySubscriptionPeriodUnit.Week, AdaptySubscriptionPeriodUnit.Month, AdaptySubscriptionPeriodUnit.Year veya AdaptySubscriptionPeriodUnit.Unknown). NumberOfUnits değeri, dönem birimi sayısını verir. Örneğin, üç aylık bir abonelik için Unit özelliğinde AdaptySubscriptionPeriodUnit.Month, NumberOfUnits özelliğinde ise 3 görürsünüz.
Başlangıç TeklifiBir aboneliğin başlangıç teklifi içerip içermediğini belirten bir rozet veya gösterge görüntülemek için product.Subscription?.Offer?.Phases özelliğine bakı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 nesnesinin içinde şu yardımcı özellikler bulunur:
• PaymentMode: AdaptyPaymentMode.FreeTrial, AdaptyPaymentMode.PayAsYouGo, AdaptyPaymentMode.PayUpFront ve AdaptyPaymentMode.Unknown değerlerine sahip bir enum. Ücretsiz denemeler AdaptyPaymentMode.FreeTrial türünde olacaktır.
• Price: İndirimli fiyatı içeren bir AdaptyPrice nesnesi — sayı için Price.Amount, görüntülemek için Price.LocalizedString kullanın. Ücretsiz denemeler için Price.Amount alanında 0 değerini arayın.
• LocalizedNumberOfPeriods: Teklifin uzunluğunu cihazın yerel ayarını kullanarak açıklayan yerelleştirilmiş bir dize. Örneğin, üç günlük bir deneme teklifi bu alanda "3 days" şeklinde görünür.
• SubscriptionPeriod: Alternatif olarak, teklif döneminin ayrıntılarını bu özellik aracılığıyla edinebilirsiniz. Teklifler için bir önceki bölümde açıklanan şekilde aynı biçimde ç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

Genellikle paywalllar neredeyse anında çekilir, bu nedenle bu süreci hızlandırma konusunda endişelenmenize gerek yoktur. Ancak çok sayıda kitleniz ve paywallınız varsa ve kullanıcılarınızın internet bağlantısı zayıfsa, bir paywallı çekmek istediğinizden daha uzun sürebilir. Bu gibi 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, belirli bir placement’ın All Users kitlesi için paywallını getiren GetPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak, önerilen yaklaşımın yukarıdaki Paywall Getir bölümünde ayrıntılı olarak açıklanan getPaywall metoduyla paywallı getirmek olduğunu anlamak çok önemlidir.

Warning

GetPaywallForDefaultAudience yerine GetPaywall kullanmayı tercih edin; ikincisinin önemli kısıtlamaları vardır:

  • Uyumluluk sorunları: Birden fazla uygulama sürümünü desteklerken sorun çıkarabilir; ya geriye dönük uyumlu tasarımlar gerektirir ya da eski sürümlerin hatalı görüntüleneceğini kabul etmeniz gerekir.
  • Kişiselleştirme yok: Yalnızca “Tüm Kullanıcılar” kitlesi için içerik gösterir; ülke, attribution veya özel özniteliklere dayalı hedefleme devre dışı kalır.

Bu dezavantajlara rağmen daha hızlı veri çekme kullanım durumunuz için daha önemliyse, aşağıda gösterildiği gibi GetPaywallForDefaultAudience kullanın. Aksi takdirde, yukarıda açıklanan GetPaywall yöntemini kullanın.

Adapty.GetPaywallForDefaultAudience("YOUR_PLACEMENT_ID", "en", (paywall, error) => {
  if(error != null) {
    // handle the error
    return;
  }
  
  // paywall - the resulting object
});

Parametreler:

ParametreZorunlulukAçıklama
placementIdzorunluİstenen Placement 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 iki alt etiketten oluşan bir dil kodu olması beklenir. İlk alt etiket dil, ikincisi ise bölge içindir.

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

fetchPolicyvarsayılan: AdaptyPlacementFetchPolicy.Default

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 istek başarısız olursa önbelleğe alınmış veriyi döndürür. 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 kararsız bir internet bağlantısıyla karşılaştığını düşünüyorsanız AdaptyPlacementFetchPolicy.ReturnCacheDataElseLoad seçeneğini değerlendirin; 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 verileri 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ğ isteklerini önlemek amacıyla oturum sırasında güvenle kullanılabilir.

Üçüncü bir politika olan AdaptyPlacementFetchPolicy.ReturnCacheDataIfNotExpiredElseLoad(maxAge), ikisi arasında yer alır: önbelleğe alınan kopya, geçirdiğiniz TimeSpan değerinden daha yeni olduğu sürece önce önbelleği okur ve bu değerden daha eski olduğunda sunucuya gider.

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

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