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)
- Adapty Kontrol Paneli’nde ürünlerinizi oluşturun.
- Adapty Kontrol Paneli’nde bir paywall oluşturun ve ürünleri ekleyin.
- Adapty Kontrol Paneli’nde placement oluşturun ve paywall’ınızı ekleyin.
- 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:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| placementId | zorunlu | İ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: | 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: Yerel kod ve kullanım önerileri hakkında daha fazla bilgi için Yerelleştirmeler ve yerel kodlar sayfasına bakın. |
| fetchPolicy | varsayı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 Ö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. |
| loadTimeout | varsayı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 |
Yanıt parametreleri:
| Parametre | Açı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:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| paywall | zorunlu | İstenen paywall için bir controller elde etmek amacıyla kullanılan AdaptyPaywall nesnesi. |
| loadTimeout | varsayı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. |
| PreloadProducts | isteğ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. |
| CustomTags | isteğ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. |
| CustomTimers | isteğ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:
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| placementId | zorunlu | İ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: | 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: |
| fetchPolicy | varsayı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 Ö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. |