Unity SDK'da remote config paywallları için paywallları ve ürünleri getir
Adapty, farklı kullanıcı segmentleri için farklı ürünler satmak amacıyla paywallları kullanır. Remote config paywallları, hangi ürünlerin gösterileceğini ve paywall tasarımını belirlemenizi sağlayan özel parametreler içerir.
Bu sayfa, remote config paywalllarının nasıl getirileceğini açıklamaktadır. Paywall Builder ile oluşturulmuş paywalllar getiriyorsanız, lütfen Unity SDK’da Paywall Builder paywallları için paywallları ve ürünleri getir sayfasına bakın.
Paywall getir
Adapty Kontrol Paneli’nde bir placement oluşturduğunuzda, o placement’ın adını kodunuzda kullanarak kullanıcıya gösterilecek paywall’ı alırsınız.
Adapty.GetPaywall("YOUR_PLACEMENT_ID", "en", (paywall, error) => {
if (error != null) {
// hata işleme
return;
}
// paywall'ı kullan
});
Parametreler:
| Parametre | Açıklama |
|---|---|
| placementId | Adapty Kontrol Paneli’nde oluşturduğunuz placement’ın ID’si. |
| locale | Dil tercihi için isteğe bağlı bir parametre. Varsayılan olarak nil (veya Swift için nil). ISO 639-1 veya BCP 47 formatında olabilir (ör. en, pt-BR). Adapty’nin yerelleştirme süreci hakkında daha fazla bilgi için Paywall yerelleştirmeleri ve dil kodları sayfasına bakın. |
| fetchPolicy | Bu parametre, verilerin nasıl ve nereden getirileceğini belirler. FetchPolicy.ReloadRevalidatingCacheData (varsayılan) önbelleği yeniden doğrular; FetchPolicy.ReturnCacheDataElseLoad önce önbelleği kontrol eder, bulamazsa yükler; FetchPolicy.ReturnCacheDataDontLoad yalnızca önbelleği kullanır. Çevrimdışı kullanım için ReturnCacheDataDontLoad tercih edilir. |
getPaywall fonksiyonu, AdaptyPaywall nesnesini döndürür. Bu nesne, paywall’ı ekranınızda görüntülemek için ihtiyaç duyduğunuz tüm meta verileri içerir: başlık, açıklama, özel parametreler ve daha fazlası.
Paywall ürünlerini getir
Paywall meta verilerini aldıktan sonra, ürün listesini getirmeniz gerekir. Bu sayede kullanıcıya fiyat, açıklama ve diğer yerel bilgileri gösterebilirsiniz.
Adapty.GetPaywallProducts(paywall, (products, error) => {
if (error != null) {
// hata işleme
return;
}
// products listesini kullan
});
Parametreler:
| Parametre | Açıklama |
|---|---|
| paywall | Önceki adımda aldığınız AdaptyPaywall nesnesi. |
getPaywallProducts fonksiyonu, AdaptyPaywallProduct nesne listesini döndürür.
Paywall ürünlerini teklif belirlemeden getir
Belirli durumlarda, sunulan teklifi (başlangıç teklifi, promosyon teklifi vb.) belirlemeden yalnızca ürün listesini almak isteyebilirsiniz. Bu, ürün ekranını daha hızlı yüklemenizi sağlar.
Adapty.GetPaywallProductsWithoutDeterminingOffer(paywall, (products, error) => {
if (error != null) {
// hata işleme
return;
}
// products listesini kullan
});
Varsayılan kitle için paywall getir
Adapty SDK, varsayılan olarak kullanıcıya atanmış kitleye göre paywall döndürür. Ancak bazı durumlarda, profil ve kitle bilgisi henüz hazır olmadan önce bir paywall göstermek isteyebilirsiniz. Bu durumda getPaywallForDefaultAudience kullanın:
Adapty.GetPaywallForDefaultAudience("YOUR_PLACEMENT_ID", "en", (paywall, error) => {
if (error != null) {
// hata işleme
return;
}
// paywall'ı kullan
});
getPaywallForDefaultAudience, yalnızca varsayılan kitle için tanımlanmış paywallı döndürür. Kullanıcı farklı bir segment veya kitleye aitse, bu fonksiyon yanlış paywallı döndürebilir.
Sonraki adım
Paywallı ve ürünleri başarıyla getirdikten sonra, bunları kullanıcıya nasıl göstereceğinizi öğrenmek için Remote config ile paywall’ı görüntüle sayfasına bakın. import SampleApp from ‘@site/src/locales/tr/reusable/SampleApp.md’; Remote config ve özel paywallları göstermeden önce, bunlara ilişkin bilgileri çekmeniz gerekir. Bu konunun remote config ve özel paywalllarla ilgili olduğunu lütfen unutmayın. Paywall Builder ile özelleştirilmiş paywallları çekmek için Paywall Builder paywalllarını ve konfigürasyonlarını çekme konusuna bakabilirsiniz.
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)
-
Adapty Kontrol Paneli’nde ürünlerinizi oluşturun.
-
Bir paywall oluşturun ve ürünlerinizi paywalla ekleyin (Adapty Kontrol Paneli’nde).
-
Placement’lar oluşturun ve paywallınızı placement’a ekleyin (Adapty Kontrol Paneli’nde).
-
Adapty SDK’yı yükleyin (mobil uygulamanıza).
Paywall bilgilerini çekme
Adapty’de bir ürün, hem App Store hem de Google Play’deki ürünlerin bir birleşimi olarak işlev görür. Bu çapraz platform ürünler, belirli mobil uygulama placement’larında gösterebilmeniz için paywall’lara entegre edilir.
Ürünleri görüntülemek için getPaywall metoduyla placement’larınızdan birinden bir Paywall almanız gerekir.
Ürün ID’lerini doğrudan koda yazmayın. Doğrudan kodlamanız gereken tek ID, placement ID’dir. 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 yönetmelidir; bir paywall bugün iki ürün döndürüyorsa ve yarın üç ürün döndürüyorsa, kod değişikliği yapmadan hepsini gösterin.
Adapty.GetPaywall("YOUR_PLACEMENT_ID", "en", (paywall, error) => {
if(error != null) {
// handle the error
return;
}
// paywall - the resulting object
});
| Parametre | Zorunluluk | Açıklama |
|---|---|---|
| placementId | zorunlu | Placement tanımlayıcısı. 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 daha fazla alt etiketten oluşan bir dil kodu olması beklenir. İlk alt etiket dili, ikincisi ise bölgeyi belirtir. Ö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ı bölümüne 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 ulaşmasını sağladığından bu seçeneği öneriyoruz. Ancak kullanıcılarınızın kararsız bir internet bağlantısıyla çalıştığını düşünüyorsanız, mevcut olduğunda ö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ı iki katmanda saklar: 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ırız. 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ı garanti edecek şekilde tasarlanmıştır. |
| loadTimeout | varsayı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ış veri veya yerel yedek döndürülür. Nadir durumlarda bu metodun |
| Ürün ID’lerini sabit olarak kodlamayın! Paywalllar uzaktan yapılandırıldığından, mevcut ürünler, ürün sayısı ve özel teklifler (ücretsiz deneme gibi) zamanla değişebilir. Kodunuzun bu senaryoları ele aldığından emin olun. |
Örneğin, başlangıçta 2 ürün aldıysanız uygulamanız bu 2 ürünü göstermelidir. Ancak daha sonra 3 ürün gelirse, herhangi bir kod değişikliği gerektirmeden uygulamanız 3 ürünü de göstermelidir. Sabit olarak kodlamanız gereken tek şey placement ID’dir.
Yanıt parametreleri:
| Parametre | Açıklama |
|---|---|
| Paywall | Ürün kimliklerinin listesini, paywall tanımlayıcısını, remote config’i ve diğer çeşitli özellikleri içeren bir AdaptyPaywall nesnesi. |
Ürünleri getir
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:
| Parametre | Açıklama |
|---|---|
| Products | Ürün tanımlayıcısı, ürün adı, fiyat, para birimi, abonelik süresi ve diğer çeşitli özellikleri içeren AdaptyPaywallProduct nesnelerinin listesi. |
Kendi paywall tasarımınızı uygularken, büyük olasılıkla AdaptyPaywallProduct nesnesindeki bu özelliklere ihtiyaç duyacaksınız. Aşağıda en sık kullanılan özellikler gösterilmektedir; mevcut tüm özellikler hakkında ayrıntılı bilgi için bağlantılı belgeye başvurun. | |
| Özellik | Açıklama |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Başlık | Ürünün başlığını göstermek için product.LocalizedTitle kullanın. Yerelleştirme, cihazın dil ayarına değil, kullanıcının seçtiği mağaza ülkesine göre yapılır. |
| Fiyat | Fiyatın yerelleştirilmiş halini göstermek için product.Price.LocalizedString kullanın. Bu yerelleştirme cihazın dil ayarına göre yapılır. Fiyata sayı olarak erişmek için product.Price.Amount kullanabilirsiniz; değer yerel para biriminde döner. İlgili para birimi sembolünü almak için product.Price.CurrencySymbol kullanın. |
| Abonelik Dönemi | Dönemi (örn. hafta, ay, yıl vb.) göstermek için product.Subscription?.LocalizedPeriod kullanın. Bu yerelleştirme cihazın dil ayarına göre yapılır. Abonelik dönemine programatik olarak erişmek için product.Subscription?.Period kullanın. Buradan Unit enum’una erişerek uzunluğu öğrenebilirsiniz (AdaptySubscriptionPeriodUnit.Day, AdaptySubscriptionPeriodUnit.Week, AdaptySubscriptionPeriodUnit.Month, AdaptySubscriptionPeriodUnit.Year veya AdaptySubscriptionPeriodUnit.Unknown). NumberOfUnits değeri ise dönem birimi sayısını verir. Örneğin üç aylık bir abonelik için Unit özelliğinde AdaptySubscriptionPeriodUnit.Month, NumberOfUnits özelliğinde ise 3 görürsünüz. |
| Başlangıç Teklifi | Bir aboneliğin başlangıç teklifi içerip içermediğini göstermek (rozet veya başka bir gösterge) için product.Subscription?.Offer?.Phases özelliğine bakın. Bu liste, ücretsiz deneme aşaması ve başlangıç fiyatı aşaması olmak üzere en fazla iki indirim aşaması içerebilir. Her aşama nesnesinde şu yararlı özellikler yer alır:• PaymentMode: AdaptyPaymentMode.FreeTrial, AdaptyPaymentMode.PayAsYouGo, AdaptyPaymentMode.PayUpFront ve AdaptyPaymentMode.Unknown değerlerine sahip bir enum. Ücretsiz denemeler AdaptyPaymentMode.FreeTrial türünde olur.• Price: İndirimli fiyatın sayısal değeri. Ücretsiz denemelerde bu değer 0 olur.• LocalizedNumberOfPeriods: Teklifin süresini cihazın dil ayarına göre yerelleştirilmiş şekilde açıklayan bir string. Örneğin üç günlük bir deneme teklifi bu alanda "3 days" gösterir.• SubscriptionPeriod: Alternatif olarak, teklif döneminin ayrıntılarına bu özellikle ulaşabilirsiniz. Teklifler için bir önceki bölümde açıklanan şekilde çalışır.• LocalizedSubscriptionPeriod: İndirimin abonelik döneminin kullanıcının dil ayarına göre biçimlendirilmiş hali. |
Varsayılan kitle paywallı ile paywall getirmeyi hızlandırın
Paywalllar genellikle neredeyse anında getirilir, bu yüzden bu süreci hızlandırmak için 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 beklenenden 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.
Bu sorunu çözmek için, belirtilen placement’ın paywallını All Users kitlesi için getiren GetPaywallForDefaultAudience metodunu kullanabilirsiniz. Ancak, önerilen yaklaşımın yukarıdaki Paywall Getirme bölümünde açıklandığı gibi getPaywall metoduyla paywall getirmek olduğunu unutmayın.
GetPaywallForDefaultAudience yerine GetPaywall kullanmayı tercih edin; zira ikincisinin önemli kısıtlamaları vardır:
- Uyumluluk sorunları: Birden fazla uygulama sürümünü desteklerken sorunlara yol açabilir; ya geriye dönük uyumlu tasarımlar gerektirir ya da eski sürümlerin yanlış görüntülenmesini göze almanız gerekir.
- Kişiselleştirme yok: Yalnızca “Tüm Kullanıcılar” kitlesine yönelik içerik gösterir; ülke, attribution veya özel özniteliklere dayalı hedefleme devre dışı kalır.
Bu dezavantajlara rağmen daha hızlı yükleme sizin için öncelikliyse, 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 | İstediğiniz Placement’ın tanımlayıcısı. Bu, 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 etiketten oluşan bir dil kodu olmalıdır. İlk alt etiket dil, ikincisi ise bölge içindir. Örnek: |
| 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 ulaşması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, mevcut önbellek verisini döndürmek için Önbelleğin uygulama yeniden başlatıldığında korunduğunu, yalnızca uygulama yeniden yüklendiğinde veya manuel temizlik yapıldığında 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ı getirmek için CDN, CDN’e erişilemediği durumlarda 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 her zaman paywalllarınızın en güncel sürümüne ulaşmanızı garantilemek için tasarlanmıştır. |