Unity SDK'da abonelik durumunu kontrol etme

Kullanıcıların ücretli içeriklere erişip erişemeyeceğine ya da bir paywall görmesi gerekip gerekmediğine karar vermek için profildeki access level değerini kontrol etmeniz gerekir.

Bu makalede, kullanıcılara paywall mı göstereceğinizi yoksa ücretli özelliklere erişim mi vereceğinizi belirlemek amacıyla profil durumuna nasıl erişeceğiniz anlatılmaktadır.

Abonelik durumunu alma

Bir kullanıcıya paywall mı yoksa ücretli içerik mi göstereceğinize karar verirken, profildeki access level değerini kontrol edersiniz. İki seçeneğiniz var:

  • En güncel profil verilerine hemen ihtiyaç duyduğunuzda (örneğin uygulama başlangıcında) veya güncellemeyi zorlamak istediğinizde GetProfile çağırın.
  • Abonelik durumu her değiştiğinde otomatik olarak yenilenen yerel bir kopya tutmak için otomatik profil güncellemelerini ayarlayın.

Profili alma

Abonelik durumunu almanın en kolay yolu, profile erişmek için GetProfile metodunu kullanmaktır:

Adapty.GetProfile((profile, error) => {
  if (error != null) {
    // handle the error
    return;
  }

// check the access
});

Abonelik güncellemelerini dinleme

Uygulamanızda profil güncellemelerini otomatik olarak almak için:

  1. AdaptyEventListener sınıfını genişletin ve OnLoadLatestProfile metodunu uygulayın. Adapty, kullanıcının abonelik durumu her değiştiğinde bu metodu otomatik olarak çağırır.
  2. Bu metot çağrıldığında güncellenen profil verilerini saklayın; böylece ek ağ istekleri yapmadan uygulamanızın her yerinde kullanabilirsiniz.
public class SubscriptionManager : MonoBehaviour, AdaptyEventListener {
    private AdaptyProfile currentProfile;
    
    void Start() {
        // Register this object as an Adapty event listener
        Adapty.SetEventListener(this);
    }
    
    // Store the profile when it updates
    public void OnLoadLatestProfile(AdaptyProfile profile) {
        currentProfile = profile;
        // Update UI, unlock content, etc.
    }
    
    public void OnInstallationDetailsSuccess(AdaptyInstallationDetails details) { }
    public void OnInstallationDetailsFail(AdaptyError error) { }
    
    // Use stored profile instead of calling getProfile()
    public bool HasAccess() {
        if (currentProfile?.AccessLevels != null && 
            currentProfile.AccessLevels.ContainsKey("premium")) {
            return currentProfile.AccessLevels["premium"].IsActive;
        }
        return false;
    }
}

Adapty, uygulamanız başladığında OnLoadLatestProfile’ı otomatik olarak çağırır; bu sayede cihaz çevrimdışı olsa bile önbelleğe alınmış abonelik verileri sağlanır.

Profili paywall mantığıyla bağlama

Paywall gösterme veya ücretli özelliklere erişim verme konusunda anlık kararlar almanız gerektiğinde, kullanıcının profilini doğrudan kontrol edebilirsiniz. Bu yaklaşım; uygulama başlangıcı, premium bölümlere girerken veya belirli içerikleri görüntülemeden önce gibi senaryolarda işe yarar.

private void CheckAccessLevel()
{
    Adapty.GetProfile((profile, error) => {
        if (error != null) {
            Debug.LogError("Error checking access level: " + error.Message);
            // Show paywall if access check fails
            return;
        }
        
        var accessLevel = profile.AccessLevels["YOUR_ACCESS_LEVEL"];
        if (accessLevel == null || !accessLevel.IsActive) {
            // Show paywall if no access
        }
    });
}

private void InitializePaywall()
{
    LoadPaywall();
    CheckAccessLevel();
}

Sonraki adımlar

Abonelik durumunu nasıl takip edeceğinizi öğrendiğinize göre, kullanıcıların ödedikleri şeylere erişebildiğinden emin olmak için kullanıcı profilleriyle çalışmayı öğrenin.