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

Adapty, her kullanıcı için dahili bir profil ID’si oluşturur. Ancak kendi kimlik doğrulama sisteminiz varsa, kendi Customer User ID’nizi belirlemeniz gerekir. Kullanıcıları Customer User ID’lerine göre Profiller bölümünde bulabilir ve sunucu taraflı API’de kullanabilirsiniz; bu ID tüm entegrasyonlara gönderilecektir.

Yapılandırma sırasında customer user ID ayarlama

Yapılandırma sırasında bir kullanıcı ID’niz varsa, bunu .activate() metoduna customerUserId parametresi olarak geçirmeniz yeterlidir:


try {
  await adapty.activate({
    apiKey: 'YOUR_PUBLIC_SDK_KEY',
    params: {
      customerUserId: 'YOUR_USER_ID'
    }
  });
} catch (error) {
  console.error('Failed to activate Adapty:', error);
}

Yapılandırma sonrasında customer user ID ayarlama

SDK yapılandırması sırasında bir kullanıcı ID’niz yoksa, daha sonra istediğiniz zaman .identify() metoduyla belirleyebilirsiniz. Bu metodun en yaygın kullanım senaryoları, kayıt veya giriş sonrasında kullanıcının anonim olmaktan çıkıp kimliği doğrulanmış bir kullanıcıya geçtiği anlardır.


try {
  await adapty.identify({ customerUserId: 'YOUR_USER_ID' });
  console.log('User identified successfully');
} catch (error) {
  console.error('Failed to identify user:', error);
}

İstek parametreleri:

ParametreZorunlulukAçıklama
customerUserIdzorunluBir string kullanıcı tanımlayıcısı.

Önemli kullanıcı verilerinin yeniden gönderilmesi

Bir kullanıcının hesabına tekrar giriş yapması gibi bazı durumlarda Adapty sunucuları o kullanıcı hakkında zaten bilgiye sahip olabilir. Bu senaryolarda Adapty SDK otomatik olarak yeni kullanıcıyla çalışmaya geçer. Anonim kullanıcıya özel özellikler veya üçüncü taraf ağlardan attribution gibi veriler aktardıysanız, bu verileri tanımlanan kullanıcı için yeniden göndermeniz gerekir.

Ayrıca, kullanıcıyı tanımladıktan sonra tüm paywall’ları ve ürünleri yeniden talep etmeniz gerektiğini unutmayın; zira yeni kullanıcının verileri farklı olabilir.

Çıkış yapma ve giriş yapma

Kullanıcıyı istediğiniz zaman .logout() metodunu çağırarak çıkışa zorlayabilirsiniz:


try {
  await adapty.logout();
  console.log('User logged out successfully');
} catch (error) {
  console.error('Failed to logout user:', error);
}

Ardından .identify() metodunu kullanarak kullanıcı girişi yapabilirsiniz.

appAccountToken atama (iOS)

appAccountToken, App Store işlemlerini dahili kullanıcı kimliğinizle ilişkilendirmenizi sağlayan bir UUID’dir.
StoreKit bu token’ı her işlemle ilişkilendirir; böylece backend’iniz App Store verilerini kullanıcılarınızla eşleştirebilir.

Kullanıcı başına oluşturulan kararlı bir UUID kullanın ve aynı hesap için farklı cihazlarda da aynı UUID’yi yeniden kullanın. Bu sayede satın almalar ve App Store bildirimleri doğru şekilde ilişkilendirilmiş olur.

Token’ı iki şekilde ayarlayabilirsiniz: SDK aktivasyonu sırasında veya kullanıcıyı tanımlarken.

appAccountToken’ı her zaman customerUserId ile birlikte geçirmelisiniz. Yalnızca token’ı geçerseniz, işleme dahil edilmez.

// During configuration:
await adapty.activate({
    apiKey: 'YOUR_PUBLIC_SDK_KEY',
    params: {
        customerUserId: 'YOUR_USER_ID',
        ios: { appAccountToken: "YOUR_APP_ACCOUNT_TOKEN" },
    }
});
// Or when identifying users
await adapty.identify({
    customerUserId: 'YOUR_USER_ID',
    params: {
        ios: { appAccountToken: 'YOUR_APP_ACCOUNT_TOKEN' },
    }
});

Gizlenmiş hesap ID’lerini ayarlama (Android)

Google Play, kullanıcı gizliliğini ve güvenliğini artırmak amacıyla belirli kullanım senaryolarında gizlenmiş hesap ID’leri gerektirir. Bu ID’ler, Google Play’in kullanıcı bilgilerini anonim tutarken satın almaları tanımlamasına yardımcı olur; bu durum özellikle sahtekarlık önleme ve analitik açısından önem taşır.

Uygulamanız hassas kullanıcı verisi işliyorsa veya belirli gizlilik düzenlemelerine uymak zorundaysanız bu ID’leri ayarlamanız gerekebilir. Gizlenmiş ID’ler, Google Play’in gerçek kullanıcı tanımlayıcılarını açığa çıkarmadan satın almaları takip etmesine olanak tanır.

// During configuration:
await adapty.activate({
  apiKey: 'YOUR_PUBLIC_SDK_KEY',
  params: {
    android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' },
  }
});
// Or when identifying users
await adapty.identify({
    customerUserId: 'YOUR_USER_ID',
    params: {
        android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' },
    }
});

Cihazlar arası kullanıcı tespiti

SDK etkinleştirildiğinde, StoreKit (iOS) veya Google Play Billing (Android) üzerinden kullanıcının mevcut haklarını otomatik olarak okur ve bunları Adapty backend’iyle senkronize eder. Aktif bir abonelik, uygulamanın restorePurchases çağrısı yapmadan Adapty profilinde görünür.

Otomatik olarak gerçekleşmeyen şey, yeni bir cihazdaki profilin orijinal cihazdaki profille aynı kullanıcıya ait olduğunun tanınmasıdır. Adapty, profilleri Customer User ID ile eşleştirir; dolayısıyla kimlik sürekliliği CUID olarak ne kullandığınıza bağlıdır.

Adapty’nin cihazlar arasında neleri algılayabildiği

KurulumunuzAdapty’nin algıladığıYapmanız gereken
Customer User ID = device_id (uygulama girişi yok)Yeni cihaz farklı bir CUID ve dolayısıyla farklı bir profil alır. Abonelik, Access level updated olayı aracılığıyla yeni profile senkronize edilir; ancak subscription_started tetiklenmez — yeni profil, orijinal satın almanın devralıcısı olarak değerlendirilir. subscription_started üzerine kurulu analizler, geri dönen kullanıcıları eksik sayar.Geri dönen bir kullanıcının cihazlar arasında mevcut profille eşleşmesi için Customer User ID olarak kararlı bir hesap kimliği kullanın.
Customer User ID = kararlı hesap kimliği (her cihazda oturum açma)SDK, activate() sırasında aboneliği otomatik olarak senkronize eder ve identify(), CUID ile mevcut profili eşleştirir.Ek kurulum gerekmez — hem kimlik hem de abonelik otomatik olarak çözümlenir.
Apple Family Sharing devralıcısıAile üyesi, aboneliği yalnızca Access level updated olayı aracılığıyla alır — subscription_started tetiklenmez.Access level updated olayını dinleyin. Tam olay matrisi için Apple Family Sharing sayfasına bakın.
Aynı Apple/Google hesabı, farklı uygulama içi kullanıcılarSatın almayı kaydeden ilk profil üst profil olur. Sonraki profiller, tek bir Access level updated olayıyla bir devralıcı zinciri aracılığıyla aboneliği görür.Oturum açmayı zorunlu kılın, ardından modelinize uygun bir paylaşım modu seçin.

Yeni bir cihazda satın almaları geri yükleme

Paywallınızda kullanıcı tarafından başlatılan bir “Satın almaları geri yükle” butonu gösterin. Apple App Review (kural 3.1.1) bunu zorunlu kılar ve otomatik senkronizasyonun uç bir durumu kaçırması halinde yedek olarak işlev görür. Buton, SDK’nızda restorePurchases çağrısı yapmalıdır.

İlk açılışta programatik bir restorePurchases çağrısı normal kullanım için gerekli değildir — SDK, activate() sırasında zaten eşdeğerini çalıştırır. Programatik çağrıları yalnızca zorunlu bir güncel makbuz kontrolü için ayırın; örneğin activate() tamamlandıktan sonra eksik erişimi hata ayıklarken.