Capacitor SDK'da kullanıcıları tanımlama

Kullanıcıların satın almalarını nasıl yönettiğiniz, uygulamanızın kimlik doğrulama modeline bağlıdır:

Temel kavramlar:

  • Profiller, SDK’nın çalışması için gereken varlıklardır. Adapty bunları otomatik olarak oluşturur. Anonim (müşteri kullanıcı kimliği olmadan) veya tanımlanmış (müşteri kullanıcı kimliğiyle) olabilirler.
  • Müşteri kullanıcı kimlikleri, Adapty’nin kullanıcılarınızı Adapty profilleriyle ilişkilendirmesi için sizin oluşturduğunuz isteğe bağlı tanımlayıcılardır.

Anonim ve tanımlanmış kullanıcılar arasındaki farklar şunlardır:

Anonim kullanıcılarTanımlı kullanıcılar
Satın alma yönetimiMağaza düzeyinde satın alma geri yüklemeMüşteri kullanıcı ID’si ile cihazlar arası satın alma geçmişini koruma
Profil yönetimiHer yeniden yüklemede yeni profilOturumlar ve cihazlar arası aynı profil
Veri kalıcılığıAnonim kullanıcıların verileri cihaza/kuruluma bağlıdırTanımlı kullanıcıların verileri cihazlar ve oturumlar arası korunur

Anonim kullanıcılar

Eğer backend kimlik doğrulamanız yoksa, uygulama kodunda kimlik doğrulamayı yönetmenize gerek yoktur:

  1. SDK, uygulamanın ilk başlatılmasında etkinleştirildiğinde, Adapty kullanıcı için yeni bir profil oluşturur.
  2. Kullanıcı uygulama içinde herhangi bir satın alma yaptığında, bu satın alma kullanıcının Adapty profiliyle ve mağaza hesabıyla ilişkilendirilir.
  3. Kullanıcı uygulamayı yeniden yüklediğinde veya yeni bir cihazdan yüklediğinde, Adapty etkinleştirme sırasında yeni bir boş profil oluşturur.
  4. Kullanıcı daha önce uygulamanızda satın alma yapmışsa, varsayılan olarak satın almaları SDK etkinleştirmesinde App Store’dan otomatik olarak senkronize edilir.

Yedekten geri yükleme işlemleri, yeniden yüklemelerden farklı davranır. Varsayılan olarak, bir kullanıcı yedekten geri yüklediğinde, SDK önbelleğe alınmış verileri korur ve yeni bir profil oluşturmaz. Bu davranışı clearDataOnBackup ayarını kullanarak yapılandırabilirsiniz. Daha fazla bilgi edinin.

Tanımlanan kullanıcılar

  • Bir profilin henüz customer user ID’si yoksa (yani kullanıcı oturum açmamışsa), customer user ID gönderdiğinizde bu profille ilişkilendirilir.
  • Yeniden yükleme, oturum açma veya yeni bir cihazdan yükleme durumunda, daha önce bu kullanıcıya ait bir customer user ID gönderdiyseniz yeni profil oluşturulmaz. Bunun yerine, customer user ID ile ilişkilendirilmiş mevcut profile geçilir.

Uygulamada kullanıcıları tanımlamak için iki seçeneğiniz vardır:

  • Giriş/kayıt sırasında: Kullanıcılar uygulama başladıktan sonra giriş yaparsa, kimlik doğrulama sırasında identify() fonksiyonunu bir customer user ID ile çağırın.

  • SDK etkinleştirme sırasında: Uygulama başladığında elinizde zaten bir customer user ID varsa, activate() çağrısı sırasında gönderin.

Varsayılan olarak, Adapty bir Customer User ID’den satın alma aldığında ve bu ID başka bir Customer User ID ile ilişkilendirilmişse, access level paylaşılır; yani her iki profil de ücretli erişime sahip olur. Bu ayarı, ücretli erişimi bir profilden diğerine aktaracak şekilde veya paylaşımı tamamen devre dışı bırakacak şekilde yapılandırabilirsiniz. Daha fazla ayrıntı için makaleye bakın.

identify-diagram.webp

Giriş/kayıt sırasında

Uygulamanın başlatılmasından sonra (örneğin kullanıcı giriş yaptıktan veya kayıt olduktan sonra) kullanıcıları tanımlamak için identify metodunu kullanarak müşteri kullanıcı kimliğini ayarlayın.

  • Bu müşteri kullanıcı kimliğini daha önce kullanmadıysanız, Adapty bunu otomatik olarak mevcut profille ilişkilendirir.
  • Bu müşteri kullanıcı kimliğini daha önce kullanıcıyı tanımlamak için kullandıysanız, Adapty bu müşteri kullanıcı kimliğiyle ilişkilendirilmiş profile geçiş yapar.

Müşteri kullanıcı kimliği oluştururken, kullanıcı verilerinizle birlikte kaydedin; böylece yeni cihazdan giriş yaptıklarında veya uygulamanızı yeniden yüklediklerinde aynı kimliği gönderebilirsiniz.

Diğer SDK metodlarını çağırmadan önce her zaman identify metodunu await ile bekleyin. Eş zamanlı çağrılar #3006 profileWasChanged hatasına yol açar veya anonim profile düşer. Bkz. Capacitor SDK’da çağrı sırası.

try {
  await adapty.identify({ customerUserId: "YOUR_USER_ID" });
  // successfully identified
} catch (error) {
  // handle the error
}

SDK etkinleştirme sırasında

SDK’yı etkinleştirirken müşteri kullanıcı kimliğini zaten biliyorsanız, identify metodunu ayrıca çağırmak yerine activate metodunda doğrudan gönderebilirsiniz.

Müşteri kullanıcı kimliğini bilmenize rağmen yalnızca etkinleştirme sonrasında ayarlıyorsanız, bu şu anlama gelir: etkinleştirme sırasında Adapty yeni bir boş profil oluşturur ve siz identify metodunu çağırana kadar mevcut profile geçmez. Mevcut bir müşteri kullanıcı kimliği (daha önce kullandığınız) veya yeni bir tane geçirebilirsiniz. Yeni bir tane geçerseniz, aktivasyon sırasında oluşturulan yeni profil otomatik olarak müşteri kullanıcı kimliğine bağlanır.

Oluşturulan boş profilleri kontrol paneli analizinden hariç tutmak için App settings bölümüne gidin ve Installs definition for analytics ayarını yapılandırın.

await adapty.activate({
  apiKey: "YOUR_PUBLIC_SDK_KEY",
  params: {
    customerUserId: "YOUR_USER_ID"
  }
});

Kullanıcı oturumunu kapatma

Kullanıcıların oturumunu kapatmak için bir butonunuz varsa, logout metodunu kullanın. Bu işlem kullanıcı için yeni bir anonim profil kimliği oluşturur.

try {
  await adapty.logout();
  // successful logout
} catch (error) {
  // handle the error
}

Kullanıcıları uygulamaya tekrar giriş yaptırmak için identify metodunu kullanın.

Giriş yapmadan satın alma işlemine izin verme

Kullanıcılarınız uygulamaya giriş yapmadan önce ve sonra satın alma yapabiliyorsa ek bir ayar yapmanıza gerek yoktur: İşte nasıl çalıştığı:

  1. Oturum açmamış bir kullanıcı satın alma yaptığında, Adapty bunu anonim profil ID’sine bağlar.
  2. Kullanıcı hesabına giriş yaptığında, Adapty tanımlanmış profiliyle çalışmaya geçer.
    • Eğer mevcut bir customer user ID ise (customer user ID zaten bir profile bağlıysa), Adapty işlemleri otomatik olarak senkronize eder.
    • Eğer yeni bir customer user ID ise (örneğin, satın alma kayıt öncesinde yapılmışsa), Adapty customer user ID’sini mevcut profile atar; böylece tüm satın alma geçmişi korunur.