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

Remote config ve özel paywallları göstermeden önce, bunlara ilişkin bilgileri çekmeniz gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu unutmayın. Paywall Builder ile özelleştirilmiş paywalllar için çekme işlemine dair rehber için Paywall Builder paywalllarını ve yapılandırmalarını çekme 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 paywallları ve ürünleri çekmeye 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.

Ü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 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 dil, ikincisi 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ı önerildiğine dair daha fazla bilgi için Yerelleştirmeler ve yerel ayar kodları bölümüne bakın.

fetchPolicyvarsayılan: .reloadRevalidatingCacheData

SDK varsayılan olarak sunucudan veri yüklemeye çalışır ve 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 verileri 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, önbelleğe alınmış veri varsa onu döndürmek için .returnCacheDataElseLoad kullanmayı düşünebilirsiniz. Bu senaryoda kullanıcılar en güncel verileri alamayabilir, ancak internet bağlantıları ne kadar zayıf 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.

Önbelleğin uygulama yeniden başlatıldığında bozulmadan kaldığını ve yalnızca uygulama yeniden yüklendiğinde veya manuel temizlik yoluyla 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ı çekmek için CDN kullanıyoruz ve CDN’e erişilemediği durumlarda bağımsız bir yedek sunucu devreye giriyor. 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 güncel sürümünü almanızı sağlamak 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 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
TitleÜ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ıların seçtiği mağaza ülkesine göre yapıldığını unutmayın.
PriceFiyatın yerelleştirilmiş sürümünü görüntülemek için product.Price.LocalizedString kullanın. Bu yerelleştirme, cihazın yerel ayar bilgisine dayanır. Fiyata sayı olarak product.Price.Amount üzerinden de erişebilirsiniz. Değer yerel para birimi cinsinden sağlanacaktır. İlişkili para birimi sembolünü almak için product.Price.CurrencySymbol kullanın.
Subscription PeriodDönemi (ör. 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. Oradan uzunluğu almak için Unit enum’una erişebilirsiniz (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 3 görürsünüz.
Introductory OfferBir aboneliğin başlangıç teklifi içerdiğini belirten bir rozet veya gösterge görüntülemek için product.Subscription?.Offer?.Phases özelliğine bakın. Bu, ücretsiz deneme aşaması ve başlangıç fiyatı aşaması olmak üzere iki indirim aşamasına kadar içerebilen bir listedir. Her aşama nesnesi içinde şu yararlı ö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 sayı olarak. Ücretsiz denemeler için burada 0 arayın.
LocalizedNumberOfPeriods: Teklifin süresini cihazın yerel ayarıyla yerelleştirilmiş olarak açıklayan bir dize. Örneğin, üç günlük bir deneme teklifi bu alanda "3 days" gösterir.
SubscriptionPeriod: Alternatif olarak, teklif döneminin bireysel ayrıntılarını bu özellikle alabilirsiniz. Teklifler için önceki bölümün açıkladığıyla aynı şekilde çalışır.
LocalizedSubscriptionPeriod: Kullanıcının yerel ayarı için biçimlendirilmiş indirim abonelik dönemi.

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

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 ele almak için, belirtilen placement’ın Tüm Kullanıcılar kitlesi için paywallı çeken GetPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak önerilen yaklaşımın, yukarıdaki Paywall Bilgilerini Çekme bölümünde açıklandığı gibi getPaywall metodunu kullanmak olduğunu anlamak önemlidir.

GetPaywallForDefaultAudience yerine GetPaywall kullanmayı düşünün; çünkü ikincisinin önemli sınırlamaları vardır:

  • Uyumluluk sorunları: Birden fazla uygulama sürümünü desteklerken sorunlar yaratabilir; geriye dönük uyumlu tasarımlar gerektirmek veya eski sürümlerin yanlış görüntülenebileceğini kabul etmek zorunlu kalabilirsiniz.
  • Kişiselleştirme yok: Yalnızca “Tüm Kullanıcılar” kitlesi için içerik gösterir; ülke, attribution veya özel özniteliklere dayalı hedeflemeyi ortadan kaldırır.

Kullanım durumunuz için daha hızlı çekme bu dezavantajlardan ağır basıyorsa, aşağıda gösterildiği gibi GetPaywallForDefaultAudience kullanın. Aksi takdirde yukarıda açıklandığı gibi GetPaywall 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’ın tanımlayıcısı. Adapty Kontrol Paneli’nde 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 iki 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 Brezilya Portekizcesini temsil eder.

fetchPolicyvarsayılan: .reloadRevalidatingCacheData

SDK varsayılan olarak sunucudan veri yüklemeye çalışır ve 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 verileri 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, önbelleğe alınmış veri varsa onu döndürmek için .returnCacheDataElseLoad kullanmayı düşünebilirsiniz. Bu senaryoda kullanıcılar en güncel verileri alamayabilir, ancak internet bağlantıları ne kadar zayıf 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.

Önbelleğin uygulama yeniden başlatıldığında bozulmadan kaldığını ve yalnızca uygulama yeniden yüklendiğinde veya manuel temizlik yoluyla 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ı çekmek için CDN kullanıyoruz ve CDN’e erişilemediği durumlarda bağımsız bir yedek sunucu devreye giriyor. 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 güncel sürümünü almanızı sağlamak için tasarlanmıştır.