Unity SDK'da flow ve paywall çekmeyi optimize etme

Unity’de güvenilir bir flow veya paywall çekme işlemi üç şeyi yapar: hızlı render eder, kitleye göre hedeflenmiş varyantı döndürür ve ağ yavaş olduğunda düzgün şekilde yedek çözüme geçer. Aşağıdaki kurallar bunu sağlamak için gereken zamanlama, önbellekleme ve yedek desenlerini kapsar.

Tip

Bu kurallar, Adapty.Activate() ve Adapty.Identify() fonksiyonlarının zaten tamamlandığını varsayar. Bkz. Unity SDK’da çağrı sırası.

Kurallar ve tuzaklar

Bunu yapBunu yapmaNeden
Göstermek üzere olduğunuz placement’ı getirin.Başlatma sırasında tüm placement’ları eş zamanlı olarak önceden getirin.Toplu önceden getirme ana iş parçacığını engeller ve bu sırada siyah ekran oluşturur.
GetFlow’u attribution’ın çözümlenme şansı bulduktan sonra getirin — örneğin, Activate’ten 1–2 saniye sonra ya da OnLoadLatestProfile tetiklendikten sonra.GetFlow’u Awake() içinde çağırın.Attribution henüz gelmedi. Flow varsayılan kitleye göre çözümlenir ve segmentleri ile ASA kişiselleştirmesini sessizce atlar.
Bir loadTimeout belirleyin ve her placement için bir yedek paywall yapılandırın.GetFlow’u süresiz olarak bekleyin.Zaman aşımı olmadan, kötü bağlantıdaki kullanıcılar ağ çözümlenene kadar boş ekran görür ya da uygulamayı kapatır.

fetchPolicy ve loadTimeout parametre referansı için Paywall’ları ve ürünleri getir sayfasına, doğru placement’ı seçmek için ise Placement’lar sayfasına bakın.

Uygulama paketinden ilk ekran medyasını gösterme

Bir flow, görsellerini ve videolarını Adapty’den indirir. İlk ekranın medyasını anında göstermek için bunu uygulama paketinden sunabilirsiniz. Bu yöntem, mevcut yerel onboarding gibi halihazırda paketlediğiniz medyayı yeniden kullanmak için idealdir.

  1. Flow & Paywall Builder’da resim veya videoya bir özel medya ID’si atayın. Oraya yüklediğiniz dosya yedek olarak kalır.
  2. Dosyayı Unity projenize ekleyin.
  3. Flow görünümünü oluştururken SetCustomAssets ile ilgili ID için paketlenmiş dosyayı aktarın:
// "welcome_video", Flow & Paywall Builder'da ayarlanan özel medya kimliğidir
var bundledAssets = new Dictionary<string, AdaptyCustomAsset>
{
    { "welcome_video", AdaptyCustomAsset.LocalVideoFile("custom_assets/videos/welcome.mp4") }
};

var parameters = new AdaptyUICreateFlowViewParameters()
    .SetCustomAssets(bundledAssets);

AdaptyUI.CreateFlowView(flow, parameters, (view, error) => {
    // sonucu işle
});

Paketlenmiş dosyalar uygulamanızın indirme boyutunu artırır; bu nedenle yalnızca kullanıcıların ilk gördüğü medyayı paketleyin.

Paket içine almadığınız medya dosyaları yine de anında görünür: flow’un düzeni her görüntünün küçük, düşük çözünürlüklü bir kopyasını (video için sabit kare dahil) içerir ve tam dosya yüklenene kadar onu gösterir.

customAssets referansının tamamı için bkz. Varlıkları özelleştirme.

Zayıf bağlantı için ayarlama

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

  • İlk fetch dışındaki tüm fetch işlemlerinde fetchPolicy değerini AdaptyPlacementFetchPolicy.ReturnCacheDataElseLoad olarak ayarlayın.
  • Adapty kontrol panelinde 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 paywalli kabul edin.
  • Flow gösterimini GetProfile’a bağlamayın. Yavaş bir profilin arayüzü engellemesini önlemek için GetFlow’u bağımsız olarak çağırın.