Unity SDK'da ilk açılışta AA hedefli paywall gösterme

Bu makale, uygulamanızın iOS derlemesi için geçerlidir. Apple Ads attribution yalnızca iOS’ta mevcuttur.

Apple Ads (AA) attribution, Adapty.Activate() çağrısından sonra asenkron olarak gelir. GetFlow erken çağrılırsa attribution henüz gelmemiş olabilir ve Adapty, placement’ı varsayılan kitleye göre çözer — AA segmentine özel paywalllar’ınızı atlayarak. AdaptyProfile.AppliedExternalAttributionProviders, uygulamanın AA attribution’ının profile uygulanıp uygulanmadığını algılamasını sağlar; böylece paywall isteği, AA segmentasyonunun doğru şekilde çözüleceği ana kadar bekleyebilir.

Important

AppliedExternalAttributionProviders yalnızca Apple Ads verilerini raporlar. Diğer sağlayıcıların attribution verileri kullanıcı profillerinde görünür ve segment filtrelerinde kullanılabilir, ancak henüz burada gösterilmez.

Başlamadan önce

İhtiyacınız olanlar:

  • Adapty Unity SDK 4.1 veya üzeri.
  • Adapty’de uygulama için yapılandırılmış Apple Ads. Bkz. Apple Ads.
Note

Örneklerde SDK 4.1’deki API adları kullanılmaktadır. SDK 4.0’da profil özelliğinin adı AppliedAttributionSources’tır. SDK 3.x’te bu özellik aynı eski adı taşır ve paywall’lar GetPaywall/GetPaywallForDefaultAudience ile getirilir; bunlar bir AdaptyPaywall döndürür. Bkz. Adapty Unity SDK’yı v4’e taşıma.

Nasıl çalışır

Adapty.Activate() çağrısının ardından SDK, arka planda Apple Ads attribution verilerini Apple’dan talep eder ve sonucu Adapty’nin backend’ine iletir. AA, profil için aktif attribution kaynağı haline geldiğinde SDK, OnLoadLatestProfile handler’ınıza güncellenmiş bir AdaptyProfile iletir; bu profildeki AppliedExternalAttributionProviders listesinde AdaptyExternalAttributionProvider.AppleAds yer alır.

Boş bir liste şu durumlardan herhangi birini ifade edebilir:

  • Bu profil için Apple Ads attribution henüz işlenmemiş.
  • Hiç attribution gelmemiş.
  • Başka bir sağlayıcıdan attribution gelmiş, bu liste onu raporlamıyor.

Liste boş olsa bile GetFlow çağrısı güvenlidir — Adapty, isteği mevcut profil durumuna uyan kitleyle, genellikle varsayılan kitleyle çözümler.

Important

Bekleme yalnızca ilk başlatma için geçerlidir. Apple Ads attribution’ı bir kez kaydedildikten sonra profile kalıcı olarak depolanır. Sonraki her başlatmada, önbelleğe alınmış profil zaten AppliedExternalAttributionProviders içinde AppleAds değerini taşır, OnLoadLatestProfile bu değerle hemen tetiklenir ve GetFlow herhangi bir gecikme olmadan Apple Ads segmentine göre belirlenen paywall’ı döndürür.

Uygulama

İlk başlatmada profildeki AdaptyExternalAttributionProvider.AppleAds değerini izleyin ve katı bir zaman aşımı uygulayın; Apple Ads attribution hiç gelmese bile bu kullanıcıların yine de bir paywall görmesi gerekir.

  1. SDK’yı etkinleştirin. Bkz. Unity SDK’yı yükle ve yapılandır.
  2. IAdaptyEventListener’ı uygulayarak ve Adapty.SetEventListener ile kaydederek profil güncellemelerine abone olun. Dinleyiciyi henüz ayarlamadıysanız bkz. Abonelik güncellemelerini dinle.
  3. AppliedExternalAttributionProviders içinde AppleAds’i izleyin. Göründüğünde paywallı isteyin — Adapty, AA segmentine göre belirlenmiş varyantı döndürecektir:
using System.Linq;

public void OnLoadLatestProfile(AdaptyProfile profile)
{
    if (profile.AppliedExternalAttributionProviders.Contains(AdaptyExternalAttributionProvider.AppleAds))
    {
        // load the paywall via Adapty.GetFlow(placementId, ...)
    }
}
  1. Abonelikle paralel olarak 3–5 saniyelik bir zamanlayıcı başlatın. Zamanlayıcı, AppleAds görünmeden önce tetiklenirse, segmentasyon beklenmeden paywall’u döndüren GetFlowForDefaultAudience ile varsayılan kitle paywall’unu isteyin.

Hangi path önce tetiklenirse paywall o yüklenmelidir; diğer path atlanmalıdır. Paywall’ın iki kez getirilmemesi için tek bir durum bayrağı (örneğin hasLoadedPaywall) kullanarak tekilleştirme yapın. Ağ isteği başarısız olursa kullanıcının mahsur kalmaması için placement’a bir yedek paywall yapılandırın.

SetEventListener yalnızca bir dinleyici kabul eder. Uygulamanız başka amaçlarla (örneğin abonelik güncellemelerini dinlemek için) zaten bir IAdaptyEventListener kullanıyorsa, ikinci bir dinleyici kaydetmek yerine kontrolü mevcut OnLoadLatestProfile metoduna ekleyin.