iOS SDK'da abonelik durumunu kontrol etme

Adapty ile abonelik durumunu takip etmek çok kolaydır. Ürün kimliklerini kodunuza elle girmenize gerek yoktur. Bunun yerine, aktif bir access level olup olmadığını kontrol ederek kullanıcının abonelik durumunu zahmetsizce doğrulayabilirsiniz.

Abonelik durumunu kontrol etmeye başlamadan önce App Store Server Notifications ayarlarını yapın.

Access level ve AdaptyProfile nesnesi

Access level’lar, AdaptyProfile nesnesinin özelliklerdir. Profili; uygulamanız başladığında, örneğin bir kullanıcıyı tanımladığınızda, alıp değişiklik olduğunda güncellemenizi öneririz. Bu sayede profil nesnesini defalarca istek atmadan kullanabilirsiniz.

Profil güncellemelerinden haberdar olmak için, aşağıdaki Abonelik durumu güncellemelerini dinleme bölümünde açıklandığı gibi profil değişikliklerini dinleyin.

Adapty SDK’nın bir mobil uygulamaya nasıl entegre edildiğini gerçek bir örnekle görmek ister misiniz? Tam kurulumu, paywall’ların gösterimini, satın alma işlemlerini ve diğer temel işlevleri içeren örnek uygulamalarımıza göz atın.

Access level’ı sunucudan alma

Access level’ı sunucudan almak için .getProfile() metodunu kullanın:

Yanıt parametreleri:

ParametreAçıklama
Profile

Bir AdaptyProfile nesnesi. Genel olarak, kullanıcının uygulamaya premium erişimi olup olmadığını belirlemek için yalnızca profilin access level durumunu kontrol etmeniz yeterlidir.

.getProfile metodu her zaman API’yi sorgulamaya çalıştığından en güncel sonucu döndürür. Herhangi bir nedenle (ör. internet bağlantısı yoksa) Adapty SDK sunucudan bilgi alamazsa, önbelleğe alınmış veriler döndürülür. Ayrıca Adapty SDK, AdaptyProfile önbelleğini düzenli aralıklarla güncelleyerek bu bilgilerin mümkün olduğunca güncel kalmasını sağlar.

.getProfile() metodu size kullanıcı profilini döndürür; bu profil üzerinden access level durumunu öğrenebilirsiniz. Bir uygulamada birden fazla access level tanımlayabilirsiniz. Örneğin, bir gazete uygulamanız varsa ve farklı konulara bağımsız abonelikler satıyorsanız “sports” ve “science” adında access level’lar oluşturabilirsiniz. Ancak çoğu zaman yalnızca bir access level’a ihtiyaç duyarsınız; böyle durumlarda varsayılan “premium” access level’ı kullanabilirsiniz.

Varsayılan “premium” access level’ını kontrol etmek için bir örnek:

Abonelik durumu güncellemelerini dinleme

Kullanıcının aboneliği her değiştiğinde Adapty bir olay tetikler.

Adapty’den mesaj alabilmek için bazı ek yapılandırmalar yapmanız gerekir:

Adapty.delegate = self

// To receive subscription updates, extend `AdaptyDelegate` with this method:
nonisolated func didLoadLatestProfile(_ profile: AdaptyProfile) {
    // handle any changes to subscription state
}

Adapty, uygulama başlangıcında da bir olay tetikler. Bu durumda önbelleğe alınmış abonelik durumu iletilir.

Abonelik durumu önbelleği

Adapty SDK’daki önbellek, profilin abonelik durumunu saklar. Bu sayede sunucuya erişilemese bile önbelleğe alınan veriler kullanılarak profil abonelik durumu hakkında bilgi edinilebilir.

Ancak önbellekten doğrudan veri isteği yapılamayacağını belirtmek gerekir. SDK, profilde herhangi bir güncelleme veya değişiklik olup olmadığını kontrol etmek için sunucuyu her dakika periyodik olarak sorgular. Yeni işlemler veya başka güncellemeler gibi değişiklikler varsa, bunlar sunucuyla senkronize kalması için önbelleğe alınan verilere yansıtılır.