Идентификация пользователей в Kotlin Multiplatform SDK
Adapty создаёт внутренний идентификатор профиля для каждого пользователя. Однако если у вас есть собственная система аутентификации, вы можете задать свой Customer User ID. Пользователей можно находить по Customer User ID в разделе Profiles, а также использовать этот идентификатор в server-side API — он будет передаваться во все интеграции.
Установка Customer User ID при конфигурации
Если ID пользователя известен на этапе конфигурации, передайте его как параметр customerUserId в метод .activate():
Adapty.activate(
AdaptyConfig.Builder("PUBLIC_SDK_KEY")
.withCustomerUserId("YOUR_USER_ID")
.build()
).onSuccess {
// successful activation
}.onError { error ->
// handle the error
}
}
Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.
Установка Customer User ID после конфигурации
Если ID пользователя недоступен при конфигурации SDK, его можно задать позже в любой момент с помощью метода .identify(). Наиболее распространённые случаи использования этого метода — после регистрации или авторизации, когда пользователь переходит из анонимного состояния в аутентифицированное.
Adapty.identify("YOUR_USER_ID").onSuccess {
// successful identify
}.onError { error ->
// handle the error
}
Параметры запроса:
- Customer User ID (обязательный): строковый идентификатор пользователя.
Повторная отправка важных данных пользователя
В ряде случаев, например когда пользователь снова входит в свой аккаунт, серверы Adapty уже располагают информацией об этом пользователе. В таких ситуациях Adapty SDK автоматически переключается на работу с новым пользователем. Если вы передавали какие-либо данные анонимному пользователю — например, пользовательские атрибуты или атрибуции из сторонних сетей — их необходимо повторно отправить для идентифицированного пользователя.
Важно также помнить, что после идентификации пользователя следует заново запросить все пейволы и продукты, поскольку данные нового пользователя могут отличаться.
Выход и вход в аккаунт
Вы можете выйти из аккаунта пользователя в любой момент, вызвав метод .logout():
Adapty.logout().onSuccess {
// successful logout
}.onError { error ->
// handle the error
}
После этого можно выполнить вход пользователя с помощью метода .identify().
Присвоение appAccountToken (iOS)
iosAppAccountToken — это UUID, который позволяет связывать транзакции App Store с внутренней идентификацией пользователя.
StoreKit привязывает этот токен к каждой транзакции, что позволяет вашему бэкенду сопоставлять данные App Store с вашими пользователями.
Используйте стабильный UUID, генерируемый на каждого пользователя, и применяйте его для одного и того же аккаунта на всех устройствах. Это гарантирует корректную привязку покупок и уведомлений App Store.
Токен можно задать двумя способами — при активации SDK или при идентификации пользователя.
Параметр iosAppAccountToken необходимо всегда передавать вместе с customerUserId.
Если передать только токен, он не будет включён в транзакцию.
// During configuration:
Adapty.activate(
AdaptyConfig.Builder("PUBLIC_SDK_KEY")
.withCustomerUserId(
id = "YOUR_USER_ID",
iosAppAccountToken = "YOUR_IOS_APP_ACCOUNT_TOKEN"
)
.build()
).onSuccess {
// successful activation
}.onError { error ->
// handle the error
}
// Or when identifying users
Adapty.identify(
customerUserId = "YOUR_USER_ID",
iosAppAccountToken = "YOUR_IOS_APP_ACCOUNT_TOKEN"
).onSuccess {
// successful identify
}.onError { error ->
// handle the error
}
Установка обфусцированных идентификаторов аккаунта (Android)
Google Play требует использования обфусцированных идентификаторов аккаунта в определённых сценариях для защиты конфиденциальности и безопасности пользователей. Эти идентификаторы позволяют Google Play отслеживать покупки, сохраняя анонимность данных пользователя, что особенно важно для предотвращения мошенничества и аналитики.
Задавать эти идентификаторы может потребоваться, если приложение работает с конфиденциальными пользовательскими данными или должно соответствовать определённым требованиям конфиденциальности. Обфусцированные идентификаторы позволяют Google Play отслеживать покупки, не раскрывая реальные идентификаторы пользователей.
Параметр androidObfuscatedAccountId необходимо всегда передавать вместе с customerUserId.
Если передать только обфусцированный идентификатор аккаунта, он не будет включён в транзакцию.
// During configuration:
Adapty.activate(
AdaptyConfig.Builder("PUBLIC_SDK_KEY")
.withCustomerUserId(
id = "YOUR_USER_ID",
androidObfuscatedAccountId = "YOUR_OBFUSCATED_ACCOUNT_ID"
)
.build()
).onSuccess {
// successful activation
}.onError { error ->
// handle the error
}
// Or when identifying users
Adapty.identify(
customerUserId = "YOUR_USER_ID",
androidObfuscatedAccountId = "YOUR_OBFUSCATED_ACCOUNT_ID"
).onSuccess {
// successful identify
}.onError { error ->
// handle the error
}