Unity SDK'da Paywall Builder paywalllarını 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 görünüm yapılandırmasını almaktır.

Yeni Paywall Builder, Unity SDK 3.3.0 veya üzeri sürümlerle çalışır.

Bu konunun Paywall Builder ile özelleştirilmiş paywalllar için geçerli olduğunu unutmayın. Paywalllarınızı manuel olarak uyguluyorsanız 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östermeye 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 ekleyin.
  3. Adapty Kontrol Paneli’nde placement oluşturun ve paywall’ınızı ekleyin.
  4. Mobil uygulamanıza Adapty SDK yükleyin.

Paywall Builder ile tasarlanmış paywall’ı getirme

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

En iyi performansı sağlamak için paywall’ı ve görünüm yapılandırmasını mümkün olduğunca erken almanız kritik önem taşır; bu sayede görseller kullanıcıya sunulmadan önce indirmeye yeterli zaman kalır.

Paywall almak için GetPaywall metodunu kullanın:

Adapty.GetPaywall("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 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 etiket içeren bir dil kodu olması beklenir. İlk alt etiket dili, ikincisi bölgeyi belirtir.

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

Yerel kod ve kullanım önerileri hakkında daha fazla bilgi için Yerelleştirmeler ve yerel kodlar sayfasına bakın.

fetchPolicyvarsayılan: .reloadRevalidatingCacheData

SDK varsayılan olarak sunucudan veri yüklemeye çalışır; başarısız olursa önbellekteki 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 karşılaştığını düşünüyorsanız, önbellekte veri varsa onu döndürmek için .returnCacheDataElseLoad kullanmayı düşünebilirsiniz. Bu senaryoda kullanıcılar en güncel veriyi alamayabilir, ancak internet bağlantısı ne kadar kötü olursa olsun daha hızlı yükleme süreleri yaşarlar. Önbellek düzenli olarak güncellenir, bu nedenle ağ isteklerinden kaçınmak amacıyla oturum sırasında kullanmak güvenlidir.

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

Adapty SDK, paywallları yerel olarak iki katmanda depolar: yukarıda açıklanan düzenli güncellenen önbellek ve yedek paywalllar. Paywallları daha hızlı getirmek için CDN, CDN’ye ulaşılamadığında ise bağımsız bir yedek sunucu kullanırız. Bu sistem, internet bağlantısının yetersiz olduğu durumlarda bile her zaman en güncel paywall sürümünü alıp güvenilirliği 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 önbellekteki 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; işlem arka planda farklı isteklerden oluşabilir.

Yanıt parametreleri:

ParametreAçıklama
PaywallÜrün ID’leri listesi, paywall tanımlayıcısı, remote config ve diğer birçok özelliği içeren bir AdaptyPaywall nesnesi.

Paywall Builder ile tasarlanmış paywall’ın görünüm yapılandırmasını getirme

Paywall builder’daki 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ı alınamaz.

Paywall’ı aldıktan sonra, ViewConfiguration içerip içermediğini kontrol edin; bu, paywall’ın Paywall Builder kullanılarak oluşturulduğunu gösterir ve paywall’ı nasıl göstereceğinize yol gösterir. ViewConfiguration mevcutsa Paywall Builder paywall’ı olarak işleyin; değilse remote config paywall olarak ele alın.

Unity SDK’da, görünüm yapılandırmasını manuel olarak almadan doğrudan CreatePaywallView metodunu çağırın.

CreatePaywallView metodunun sonucu yalnızca bir kez kullanılabilir. Tekrar kullanmanız gerekiyorsa CreatePaywallView metodunu yeniden çağırın. Yeniden oluşturmadan iki kez çağırmak AdaptyUIError.viewAlreadyPresented hatasına yol açabilir.

var parameters = new AdaptyUICreatePaywallViewParameters()
  .SetPreloadProducts(preloadProducts)
  .SetLoadTimeout(new TimeSpan(0, 0, 3));

AdaptyUI.CreatePaywallView(paywall, parameters, (view, error) => {
  // handle the result
});

Parametreler:

ParametreZorunlulukAçıklama
paywallzorunluİstenen paywall için bir controller elde etmek amacıyla kullanılan AdaptyPaywall nesnesi.
loadTimeoutvarsayılan: 5 snBu değer, metodun zaman aşımını sınırlar. Zaman aşımına ulaşılırsa önbellekteki 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; işlem arka planda farklı isteklerden oluşabilir.
PreloadProductsisteğe bağlıEkrandaki ürünlerin gösterim zamanlamasını optimize etmek için bir AdaptyPaywallProducts dizisi sağlayın. nil geçilirse AdaptyUI gerekli ürünleri otomatik olarak getirir.
CustomTagsisteğe bağlıÖzel etiketlerin ve çözümlenmiş değerlerinin bir sözlüğünü tanımlayın. Özel etiketler paywall içeriğinde yer tutucu olarak işlev görür ve paywall içinde kişiselleştirilmiş içerik için belirli dizelerle dinamik olarak değiştirilir. Daha fazla bilgi için Paywall builder’da özel etiketler konusuna bakın.
CustomTimersisteğe bağlıÖzel zamanlayıcıların ve bitiş tarihlerinin bir sözlüğünü tanımlayın. Özel zamanlayıcılar, paywall’ınızda geri sayım sayaçları göstermenizi sağlar.

Birden fazla dil kullanıyorsanız Paywall Builder yerelleştirmesinin nasıl ekleneceğini ve yerel kodların nasıl doğru kullanılacağını buradan öğrenin.

Görünümü aldıktan sonra paywall’ı gösterin.

Varlıkları özelleştirme

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

Kahraman görselleri ve videolarının önceden tanımlanmış ID’leri vardır: hero_image ve hero_video. Özel 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 Unity SDK’yı 3.8.0 veya üzeri bir sürüme güncelleyin.

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

var customAssets = new Dictionary<string, AdaptyCustomAsset>
{
    { "custom_image", AdaptyCustomAsset.LocalImageFile("custom_assets/images/custom_image.png") },
    { "hero_video", AdaptyCustomAsset.LocalVideoFile("custom_assets/videos/custom_video.mp4") }
};

var parameters = new AdaptyUICreatePaywallViewParameters()
    .SetCustomAssets(customAssets)
    .SetLoadTimeout(new TimeSpan(0, 0, 3));

AdaptyUI.CreatePaywallView(paywall, parameters, (view, error) => {
    // handle the result
});

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

Geliştirici tanımlı zamanlayıcıları ayarlama

Unity uygulamanızda özel zamanlayıcılar kullanmak için, zamanlayıcı ID’leri ve bitiş tarihlerinin sözlüğünü doğrudan SetCustomTimers metoduna geçebilirsiniz. İşte bir örnek:

var customTimers = new Dictionary<string, DateTime> {
    { "CUSTOM_TIMER_6H", DateTime.Now.AddHours(6) },
    { "CUSTOM_TIMER_NY", new DateTime(2025, 1, 1) }
};

var parameters = new AdaptyUICreatePaywallViewParameters()
    .SetCustomTimers(customTimers)
    .SetLoadTimeout(new TimeSpan(0, 0, 3));

AdaptyUI.CreatePaywallView(paywall, parameters, (view, error) => {
    // handle the result
});

Bu örnekte CUSTOM_TIMER_NY ve CUSTOM_TIMER_6H, Adapty Kontrol Paneli’nde ayarladığınız geliştirici tanımlı zamanlayıcıların Timer ID’leridir. Zamanlayıcı çözümleyici, uygulamanızın her zamanlayıcıyı doğru değerle dinamik olarak güncellemesini sağlar. Örneğin:

  • CUSTOM_TIMER_NY: Yeni Yıl gibi zamanlayıcının bitiş tarihine kalan süre.
  • CUSTOM_TIMER_6H: Kullanıcının paywall’ı açtığı andan itibaren başlayan 6 saatlik sürede kalan zaman.

Varsayılan kitle paywall’ıyla paywall getirme hızını artırma

Genellikle paywalllar neredeyse anında getirilir, bu nedenle bu süreci hızlandırma konusunda endişelenmenize gerek yoktur. Ancak çok sayıda kitle ve paywalla sahipseniz ve kullanıcılarınızın zayıf bir internet bağlantısı varsa, paywall getirme işlemi beklenenden uzun sürebilir. Bu durumda, 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 All Users kitlesine ait paywall’ı getiren GetPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak önerilen yaklaşımın, yukarıdaki Paywall’ı Getirme bölümünde ayrıntılı olarak açıklanan getPaywall metoduyla paywall getirmek olduğunu anlamak kritik önem taşır.

GetPaywallForDefaultAudience yerine GetPaywall kullanmayı değerlendirin; zira GetPaywallForDefaultAudience’ın önemli sınırlamaları vardır:

  • Uyumluluk sorunları: Birden fazla uygulama sürümünü desteklerken sorun yaratabilir; geriye dönük uyumlu tasarımlar oluşturmanızı ya da eski sürümlerin yanlış görüntülenebileceğini kabul etmenizi gerektirir.
  • Kişiselleştirme yok: Yalnızca “All Users” kitlesine yönelik içerik gösterir; ülke, attribution veya özel özelliklere dayalı hedefleme yapılamaz.

Kullanım durumunuzda daha hızlı getirme bu dezavantajlardan daha önemliyse, aşağıda gösterildiği gibi GetPaywallForDefaultAudience kullanın. Aksi takdirde yukarıda açıklanan 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 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 parametrenin, eksi (-) karakteriyle ayrılmış bir veya iki alt etiket içeren bir dil kodu olması beklenir. İlk alt etiket dili, ikincisi bölgeyi belirtir.

Ö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; başarısız olursa önbellekteki 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 karşılaştığını düşünüyorsanız, önbellekte veri varsa onu döndürmek için .returnCacheDataElseLoad kullanmayı düşünebilirsiniz. Bu senaryoda kullanıcılar en güncel veriyi alamayabilir, ancak internet bağlantısı ne kadar kötü olursa olsun daha hızlı yükleme süreleri yaşarlar. Önbellek düzenli olarak güncellenir, bu nedenle ağ isteklerinden kaçınmak amacıyla oturum sırasında kullanmak güvenlidir.

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

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