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:
AdaptyEventListenersınıfını genişletin veOnLoadLatestProfilemetodunu uygulayın. Adapty, kullanıcının abonelik durumu her değiştiğinde bu metodu otomatik olarak çağırır.- 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.