Идентификация пользователей в React Native SDK
Adapty создаёт внутренний ID профиля для каждого пользователя. Однако если у вас есть собственная система аутентификации, вы можете задать свой Customer User ID. Пользователей можно находить по Customer User ID в разделе Profiles, а также использовать его в серверном API — он будет передаваться во все интеграции.
Установка Customer User ID при конфигурации
Если ID пользователя уже известен на этапе конфигурации, просто передайте его в параметре customerUserId метода .activate():
adapty.activate("PUBLIC_SDK_KEY", {
customerUserId: "YOUR_USER_ID"
});
Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.
Установка Customer User ID после конфигурации
Если ID пользователя недоступен при конфигурации SDK, его можно задать позже в любой момент с помощью метода .identify(). Чаще всего этот метод вызывают после регистрации или авторизации — когда анонимный пользователь становится аутентифицированным.
try {
await adapty.identify("YOUR_USER_ID");
// successfully identified
} catch (error) {
// handle the error
}
Параметры запроса:
- Customer User ID (обязательный): строковый идентификатор пользователя.
Повторная передача важных данных пользователя
В некоторых случаях — например, когда пользователь снова входит в аккаунт — серверы Adapty уже располагают информацией о нём. В таких ситуациях Adapty SDK автоматически переключится на работу с новым пользователем. Если вы передавали какие-либо данные анонимному пользователю — например, пользовательские атрибуты или атрибуцию из сторонних сетей — необходимо повторно отправить эти данные для идентифицированного пользователя.
Также важно учитывать, что после идентификации пользователя следует повторно запросить все пейволы и продукты, поскольку данные нового пользователя могут отличаться.
Выход и вход
Вы можете выйти из аккаунта в любой момент, вызвав метод .logout():
try {
await adapty.logout();
// successful logout
} catch (error) {
// handle the error
}
После этого можно войти снова, используя метод .identify().
Назначение appAccountToken (iOS)
appAccountToken — это UUID, позволяющий связывать транзакции App Store с внутренними идентификаторами пользователей.
StoreKit прикрепляет этот токен к каждой транзакции, поэтому ваш бэкенд может сопоставлять данные App Store с вашими пользователями.
Используйте стабильный UUID, сгенерированный для каждого пользователя, и применяйте его для одного и того же аккаунта на всех устройствах. Это гарантирует, что покупки и уведомления App Store будут корректно привязаны.
Токен можно задать двумя способами: при активации SDK или при идентификации пользователя.
Всегда передавайте appAccountToken вместе с customerUserId.
Если передать только токен, он не будет включён в транзакцию.
// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
customerUserId: "YOUR_USER_ID",
ios: { appAccountToken: "YOUR_APP_ACCOUNT_TOKEN" },
});
// Or when identifying users
try {
await adapty.identify("YOUR_USER_ID", {
ios: {appAccountToken: 'YOUR_APP_ACCOUNT_TOKEN'}
});
// successfully identified
} catch (error) {
// handle the error
}
Установка обфусцированных идентификаторов аккаунта (Android)
Google Play требует использования обфусцированных идентификаторов аккаунта в ряде сценариев для защиты конфиденциальности и безопасности пользователей. Эти идентификаторы помогают Google Play отслеживать покупки, сохраняя анонимность пользователей, что особенно важно для предотвращения мошенничества и аналитики.
Задавать такие идентификаторы может потребоваться, если ваше приложение работает с чувствительными пользовательскими данными или должно соответствовать определённым требованиям конфиденциальности. Обфусцированные идентификаторы позволяют Google Play отслеживать покупки без раскрытия реальных пользовательских данных.
// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
customerUserId: "YOUR_USER_ID",
android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
});
// Or when identifying users
try {
await adapty.identify("YOUR_USER_ID", {
android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
});
// successfully identified
} catch (error) {
// handle the error
}