Android SDK'da Paywall Builder paywalllerini ve yapılandırmalarını getirme

Adapty Kontrol Paneli’ndeki yeni Paywall Builder ile paywallınızın görsel kısmını tasarladıktan sonra, bunu mobil uygulamanızda gösterebilirsiniz. Bu süreçteki ilk adım, aşağıda açıklandığı gibi placement ile ilişkili paywallı ve onun görünüm yapılandırmasını almaktır.

Yeni Paywall Builder, Android SDK 3.0 veya daha yüksek sürümüyle çalışır.

Bu konunun Paywall Builder ile özelleştirilmiş paywalllarla ilgili olduğunu unutmayın. Paywalllarınızı manuel olarak uyguluyorsanız, lütfen Mobil uygulamanızda remote config paywallları için paywallları ve ürünleri getirme konusuna 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ı görüntülemeye 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 içine ekleyin.
  3. Adapty Kontrol Paneli’nde placementlar oluşturun ve paywallınızı içine ekleyin.
  4. Mobil uygulamanıza Adapty SDK yükleyin.

Paywall Builder ile tasarlanan paywallı getirme

Paywall Builder kullanarak bir paywall tasarladıysanız, bunu kullanıcıya göstermek için mobil uygulama kodunuzda ayrıca render etmeniz gerekmez. Böyle bir paywall, hem paywall içinde neyin gösterileceğini hem de nasıl gösterileceğini içerir. Yine de placement aracılığıyla ID’sini, görünüm yapılandırmasını almanız ve ardından mobil uygulamanızda sunmanız gerekir.

En iyi performansı sağlamak için, kullanıcıya göstermeden önce görsellerin indirilmesine yeterli süre tanımak amacıyla paywallı ve görünüm yapılandırmasını mümkün olduğunca erken almanız önemlidir.

Paywall almak için getPaywall metodunu kullanın:

Parametreler:

ParametreZorunlulukAçıklama
placementIdzorunluİstenen Placement’ın tanımlayıcısı. Bu, 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 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ı bölümüne bakın.

fetchPolicyvarsayılan: .reloadRevalidatingCacheData

SDK varsayılan olarak sunucudan veri yüklemeye çalışır ve başarısızlık durumunda önbelleğe alınmış verileri döndürür. Bu yaklaşımı öneririz çü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 internet bağlantısıyla uğraştığını düşünüyorsanız, varsa önbelleğe alınmış verileri döndürmek için .returnCacheDataElseLoad kullanmayı düşünün. Bu senaryoda kullanıcılar en güncel 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ğ isteklerinden kaçınmak için oturum sırasında kullanmak güvenlidir.

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

loadTimeoutvarsayılan: 5 sn

Bu değer, metodun zaman aşımı süresini 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.

Android için: TimeInterval’ı uzantı işlevleriyle oluşturabilirsiniz (örneğin 5.seconds, burada .seconds import com.adapty.utils.seconds’dan gelir) veya TimeInterval.seconds(5) şeklinde kullanabilirsiniz. Sınırlama koymamak için TimeInterval.INFINITE kullanın.

Yanıt parametreleri:

ParametreAçıklama
PaywallÜrün ID’lerinin listesini, paywall tanımlayıcısını, remote config’i ve diğer çeşitli özellikleri içeren bir AdaptyPaywall nesnesi.

Paywall Builder ile tasarlanan paywallın görünüm yapılandırmasını getirme

Paywall builder’da Show on device geçişinin etkin olduğundan emin olun. Bu seçenek açık değilse, görünüm yapılandırması getirilemez.

Paywallı getirdikten sonra, bunun Paywall Builder ile oluşturulduğunu gösteren bir ViewConfiguration içerip içermediğini kontrol edin. Bu, paywallı nasıl görüntüleyeceğiniz konusunda size yol gösterecektir. ViewConfiguration mevcutsa, bunu Paywall Builder paywallı olarak değerlendirin; aksi takdirde remote config paywallı olarak işleyin.

Birden fazla dil kullanıyorsanız, Paywall Builder yerelleştirmesini nasıl ekleyeceğinizi ve yerel ayar kodlarını doğru şekilde nasıl kullanacağınızı buradan öğrenin.

Yüklendikten sonra, paywallı sunun.

Daha hızlı getirmek için varsayılan kitle paywallını alma

Genellikle paywalllar neredeyse anında getirilir, 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, paywall getirme işlemi 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östermek isteyebilirsiniz.

Bunu çözmek için, belirtilen placement’ın Tüm Kullanıcılar kitlesi için paywallı getiren getPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak önerilen yaklaşımın, yukarıdaki Paywall Bilgilerini Getirme bölümünde ayrıntılı olarak açıklanan getPaywall metoduyla paywallı getirmek olduğunu anlamak önemlidir.

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 gerekiyorsa, zorluklarla 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 edilemeyen paywalllarla sorun yaşayabileceğini kabul etmeniz gerekir.
  • 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) kaybettiğiniz anlamına gelir.

Daha hızlı paywall getirme avantajından yararlanmak için bu dezavantajları kabul etmeye hazırsanız, getPaywallForDefaultAudience metodunu aşağıdaki gibi kullanın. Aksi takdirde yukarıda açıklanan getPaywall metodunu kullanmaya devam edin.

getPaywallForDefaultAudience metodu Android SDK 2.11.3’ten itibaren kullanılabilir.

ParametreZorunlulukAçıklama
placementIdzorunluPlacement’ın tanımlayıcısı. Bu, 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 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ı bölümüne bakın.

fetchPolicyvarsayılan: .reloadRevalidatingCacheData

SDK varsayılan olarak sunucudan veri yüklemeye çalışır ve başarısızlık durumunda önbelleğe alınmış verileri döndürür. Bu yaklaşımı öneririz çü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 internet bağlantısıyla uğraştığını düşünüyorsanız, varsa önbelleğe alınmış verileri döndürmek için .returnCacheDataElseLoad kullanmayı düşünün. Bu senaryoda kullanıcılar en güncel 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ğ isteklerinden kaçınmak için oturum sırasında kullanmak güvenlidir.

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

Varlıkları özelleştirme

Paywallınızdaki görselleri ve videoları özelleştirmek için özel varlıkları uygulayın.

Hero görseller ve videoların önceden tanımlanmış ID’leri vardır: hero_image ve hero_video. Özel bir varlık paketinde, bu öğeleri ID’leriyle hedefler ve davranışlarını özelleştirirsiniz.

Diğer görseller ve videolar için Adapty kontrol panelinde özel bir ID belirlemeniz gerekir.

Örneğin şunları yapabilirsiniz:

  • Bazı kullanıcılara farklı bir görsel veya video gösterin.
  • Uzak ana görsel yüklenirken yerel bir önizleme görseli gösterin.
  • Video başlamadan önce bir önizleme görseli gösterin.

Bu özelliği kullanmak için Adapty Android SDK’yı 3.7.0 veya daha yüksek bir sürüme güncelleyin.

Özel varlıkları basit bir sözlük aracılığıyla nasıl sağlayabileceğinize dair bir örnek:

val customAssets = AdaptyCustomAssets.of(
    "hero_image" to
            AdaptyCustomImageAsset.remote(
                url = "https://example.com/image.jpg",
                preview = AdaptyCustomImageAsset.file(
                    FileLocation.fromAsset("images/hero_image_preview.png"),
                )
            ),
    "hero_video" to
            AdaptyCustomVideoAsset.file(
                FileLocation.fromResId(requireContext(), R.raw.custom_video),
                preview = AdaptyCustomImageAsset.file(
                    FileLocation.fromResId(requireContext(), R.drawable.video_preview),
                ),
            ),
)

val paywallView = AdaptyUI.getPaywallView(
    activity,
    viewConfiguration,
    products,
    eventListener,
    insets,
    customAssets,
)

Bir varlık bulunamazsa, paywall varsayılan görünümüne geri döner.