iOS SDK'da paywall getirme işlemini optimize etme

iOS’ta güvenilir bir paywall getirme işlemi üç şeyi başarır: hızlı render eder, kitleyeye hedeflenmiş paywall’ı döndürür ve ağ yavaş olduğunda sorunsuz yedek sunar. Aşağıdaki kurallar bunu sağlamak için zamanlama, önbellekleme ve yedek desenlerini kapsar.

Bu kurallar, Adapty.activate() ve Adapty.identify() işlemlerinin tamamlandığını varsayar. Bkz. iOS SDK’da çağrı sırası.

Kurallar ve tuzaklar

Bunu yapBunu yapmaNeden
Göstermek üzere olduğunuz placement’ı çekin.Başlangıçta tüm placement’ları eş zamanlı olarak önceden çekin.Toplu önceden çekme ana thread’i bloke eder ve burst sırasında siyah ekrana yol açar.
getPaywall işlevini attribution’ın çözülmesine fırsat tanıdıktan sonra çekin — örneğin activate işlevinden 1–2 saniye sonra ya da onProfileUpdate tetiklendikten sonra.getPaywall işlevini App.init() sırasında çağırın.Attribution henüz gelmemiştir. Paywall, varsayılan kitleye göre çözümlenir ve segmentleri ile ASA kişiselleştirmesini sessizce atlar.
Her placement için bir loadTimeout belirleyin ve bir yedek paywall yapılandırın.getPaywall işleminin bitmesini süresiz bekleyin.Zaman aşımı olmadan, bağlantısı zayıf olan kullanıcılar ağ çözülene kadar boş bir ekran görür — ya da uygulamayı kapatır.
fetchPolicy ve loadTimeout parametre referansı için Paywall ve ürünleri getirme sayfasına, doğru placement’ı seçmek için ise Placement’lar sayfasına bakın.

Bağlantı sorunları için ayarlar

Sürekli zayıf bağlantının yaşandığı pazarlar için (kırsal alanlar, toplu taşıma, yönlendirme sorunlarından etkilenen bölgeler):

  • İlk fetch dışında her fetch işleminde fetchPolicy: .returnCacheDataElseLoad kullanın.
  • Adapty Kontrol Paneli’ndeki her placement için bir yedek paywall yapılandırın.
  • loadTimeout değerini 3–5 saniye olarak ayarlayın ve zaman aşımı gerçekleştiğinde yedek paywalla geçin.
  • Paywall gösterimini getProfile() sonucuna bağlamayın. getPaywall işlemini bağımsız olarak çağırın; böylece yavaş bir profil yüklemesi arayüzü bloke etmez.