Unity SDK'da Paywall Builder paywalllerini ve konfigürasyonlarını getirme
Adapty Kontrol Paneli’nde yeni Paywall Builder ile paywall’unuzun görsel kısmını tasarladıktan sonra, bunu mobil uygulamanızda gösterebilirsiniz. Bu süreçteki ilk adım, placement ile ilişkili paywall’u ve görünüm yapılandırmasını aşağıda açıklandığı gibi almaktır.
Yeni Paywall Builder, Unity SDK sürüm 3.3.0 veya üzeriyle çalışır.
Lütfen bu konunun Paywall Builder ile özelleştirilmiş paywallları kapsadığını unutmayın. Eğer paywalllarınızı manuel olarak uyguluyorsanız, lütfen Uzak config paywalllar için paywall ve ürünleri mobil uygulamanızda 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)
- 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’lar oluşturun ve paywallınızı ekleyin.
- Mobil uygulamanıza Adapty SDK kurun.
Paywall Builder ile tasarlanan paywall’u 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 gösterilecek içeriği hem de nasıl gösterileceğini barındırır. Yine de placement aracılığıyla ID’sini, view konfigürasyonunu almanız ve ardından mobil uygulamanızda sunmanız gerekir. En iyi performansı sağlamak için, paywall’ı ve görünüm yapılandırmasını olabildiğince erken almanız, böylece kullanıcıya sunulmadan önce görsellerin indirilmesi için yeterli süre tanımanız kritik önem taşır.
Bir 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’ın tanımlayıcısı. Adapty Kontrol Paneli’nde bir 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 dil, ikincisi ise bölge içindir. Örnek: 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ı sayfasına bakın. |
| fetchPolicy | varsayılan: .reloadRevalidatingCacheData | SDK varsayılan olarak sunucudan veri yüklemeye çalışır; 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 erişmesini 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, mevcut olması halinde önbelleğe alınmış veriyi döndürmek için Önbelleğin uygulama yeniden başlatıldığında bozulmadan kaldığını; yalnızca uygulama yeniden yüklendiğinde veya manuel temizlik yapıldığında silindiğini unutmayın. Adapty SDK, paywall’ları yerel olarak iki katmanda depolar: yukarıda açıklanan düzenli olarak güncellenen önbellek ve yedek paywall’lar. Paywall’ları daha hızlı getirmek için CDN, CDN’e ulaşılamadığı durumlarda 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 her zaman paywall’larınızın en güncel sürümünü almanızı garantilemek 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 önbelleğe alınmış veri veya yerel yedek döndürülür. Nadir durumlarda bu metodun |
| Yanıt parametreleri: |
| Parametre | Açıklama |
|---|---|
| Paywall | Ürün kimliklerinin listesini, paywall tanımlayıcısını, remote config’i ve diğer birçok özelliği içeren bir AdaptyPaywall nesnesi. |
Paywall Builder ile tasarlanan paywall’un görünüm yapılandırmasını getirin
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’u getirdikten sonra, Paywall Builder kullanılarak oluşturulduğunu gösteren bir ViewConfiguration içerip içermediğini kontrol edin. Bu bilgi, paywall’u nasıl görüntüleyeceğinizi belirler. ViewConfiguration mevcutsa Paywall Builder paywall’u olarak ele alın; yoksa remote config paywall olarak işleyin.
Unity SDK’da, görünüm yapılandırmasını manuel olarak önceden getirmeye gerek kalmadan 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 edinmek amacıyla kullanılan AdaptyPaywall nesnesi. |
| loadTimeout | varsayılan: 5 sn | Bu yöntem için zaman aşımı sınırını belirler. Zaman aşımına ulaşılırsa önbelleğe alınmış veriler veya yerel yedek döndürülür. Arka planda farklı isteklerden oluşabileceğinden, bu yöntem nadir durumlarda loadTimeout içinde belirtilenden biraz daha geç zaman aşımına uğrayabilir. |
| PreloadProducts | isteğe bağlı | Ekranda ürünlerin görüntülenme süresini 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; paywall içinde kişiselleştirilmiş içerik sunmak için belirli dizelerle dinamik olarak değiştirilirler. Daha fazla ayrıntı 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örüntülemenizi sağlar. |
Birden fazla dil kullanıyorsanız, Paywall Builder yerelleştirmesi eklemeyi ve yerel ayar kodlarını doğru kullanmayı buradan öğrenebilirsiniz.
Görünümü elde ettikten sonra, paywallı gösterin.
Varlıkları özelleştirme
Paywallınızdaki görüntü ve videoları özelleştirmek için özel varlıkları uygulayın.
Hero görüntü ve videoların önceden tanımlanmış ID’leri vardır: hero_image ve hero_video. Özel bir varlık paketinde, bu öğeleri ID’leriyle hedefleyerek davranışlarını özelleştirirsiniz.
Diğer görüntü ve videolar için Adapty kontrol panelinde özel bir ID belirlemeniz gerekir.
Örneğin şunları yapabilirsiniz:
- Bazı kullanıcılara farklı bir görüntü veya video gösterin.
- Uzaktaki ana görüntü yüklenirken yerel bir önizleme görüntüsü gösterin.
- Video başlamadan önce bir önizleme görüntüsü gösterin.
Bu özelliği kullanmak için Adapty Unity SDK’yı 3.8.0 veya üzeri bir sürüme güncelleyin.
Aşağıda, basit bir sözlük aracılığıyla özel varlıkları nasıl sağlayabileceğinize dair bir örnek bulunmaktadır:
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) => {
// sonucu işle
});
Bir asset bulunamazsa, paywall varsayılan görünümüne geri döner.
Unity uygulamanızda geliştirici tanımlı zamanlayıcılar kurma
Unity uygulamanızda özel zamanlayıcılar kullanmak için, zamanlayıcı ID’leri ve bitiş tarihlerinden oluşan bir sözlüğü doğrudan SetCustomTimers metoduna geçirebilirsiniz. İş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: Yılbaşı gibi zamanlayıcının bitiş anına 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ı ile paywall getirme işlemini hızlandırın
Genellikle paywalllar neredeyse anında getirilir, bu yüzden bu süreci hızlandırma konusunda endişelenmenize gerek yoktur. Ancak çok sayıda kitle ve paywallınız varsa ve kullanıcılarınızın internet bağlantısı zayıfsa, bir paywallın getirilmesi istediğinizden daha uzun sürebilir. Böyle durumlarda, hiç paywall göstermemek yerine sorunsuz bir kullanıcı deneyimi sağlamak amacıyla varsayılan bir paywall görüntülemek isteyebilirsiniz.
Bunu çözmek için, belirtilen placement’ın All Users kitlesine ait paywallını getiren GetPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak, önerilen yaklaşımın Paywall Getirme bölümünde açıklandığı gibi getPaywall metoduyla paywall getirmek olduğunu anlamak çok önemlidir.
GetPaywallForDefaultAudience yerine GetPaywall kullanmayı tercih edin; çünkü 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 yanlış görüntülenebileceğ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 niteliklere dayalı hedefleme yapılamaz.
Bu dezavantajlara karşın 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çıklandığı şekilde 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ı. Adapty Kontrol Paneli’nde bir placement oluştururken belirttiğiniz değerdir. |
| locale | isteğe bağlı varsayılan: | Paywall yerelleştirmesinin tanımlayıcısı. Bu parametre, eksi (-) karakteriyle ayrılmış bir veya iki alt etiket içeren bir dil kodu olmalıdır. İlk alt etiket dili, ikincisi ise bölgeyi belirtir. Örnek: |
| fetchPolicy | varsayılan: .reloadRevalidatingCacheData | SDK varsayılan olarak sunucudan veri yüklemeye çalışır ve başarısız olursa önbellekteki veriyi döndürür. Kullanıcılarınızın her zaman en güncel verilere erişmesini 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, önbellekte veri varsa onu döndürmek için Önbelleğin, uygulama yeniden başlatıldığında silinmediğini; yalnızca uygulama kaldırıldığında veya manuel temizleme yapıldığında temizlendiğini unutmayın. Adapty SDK, paywall’ları yerel olarak iki katmanda depolar: yukarıda açıklanan düzenli güncellenen önbellek ve yedek paywall’lar. Paywall’ları daha hızlı yüklemek için CDN, CDN’e erişilemediği durumlar için 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 paywall’larınızın her zaman en güncel sürümünü almanızı garantilemek için tasarlanmıştır. |