Идентификация пользователей в Unity SDK
Этот гайд для вас, если у вас есть собственная система аутентификации. Здесь вы узнаете, как работать с профилями пользователей в Adapty так, чтобы это соответствовало вашей системе аутентификации.
То, как вы управляете покупками пользователей, зависит от модели аутентификации вашего приложения:
- Если приложение не использует бэкенд-аутентификацию и не хранит данные пользователей, см. раздел об анонимных пользователях.
- Если в вашем приложении есть (или будет) бэкенд-аутентификация, см. раздел об идентифицированных пользователях.
Ключевые понятия:
- Профили — это сущности, необходимые для работы SDK. Adapty создаёт их автоматически.
- Они могут быть анонимными (без customer user ID) или идентифицированными (с customer user ID).
- Вы передаёте customer user ID, чтобы связать профили в Adapty с вашей внутренней системой аутентификации.
Вот в чём разница между анонимными и идентифицированными пользователями:
| Анонимные пользователи | Идентифицированные пользователи | |
|---|---|---|
| Управление покупками | Восстановление покупок на уровне стора | Сохранение истории покупок на всех устройствах через customer user ID |
| Управление профилем | Новый профиль при каждой переустановке | Один и тот же профиль во всех сессиях и на всех устройствах |
| Сохранность данных | Данные анонимного пользователя привязаны к установке приложения | Данные идентифицированного пользователя сохраняются между установками приложения |
Анонимные пользователи
Если у вас нет бэкенд-аутентификации, обрабатывать аутентификацию в коде приложения не нужно:
- При активации SDK при первом запуске приложения Adapty создаёт новый профиль для пользователя.
- Когда пользователь совершает покупку в приложении, она привязывается к его профилю в Adapty и его аккаунту в сторе.
- При переустановке приложения или установке на новое устройство Adapty создаёт новый анонимный профиль при активации.
- Если пользователь ранее совершал покупки в вашем приложении, по умолчанию они автоматически синхронизируются из App Store при активации SDK.
Таким образом, при работе с анонимными пользователями при каждой установке будет создаваться новый профиль — но это не проблема, поскольку в аналитике Adapty можно настроить, что считается новой установкой.
Для анонимных пользователей установки нужно считать по ID устройств. В этом случае каждая установка приложения на устройстве считается отдельной установкой, включая переустановки.
Идентифицированные пользователи
Есть два способа идентифицировать пользователей в приложении:
-
При входе/регистрации: Если пользователи входят в систему после запуска приложения, вызовите
identify()с customer user ID при их аутентификации. -
При активации SDK: Если customer user ID уже известен на момент запуска приложения, передайте его при вызове
activate().
По умолчанию, когда Adapty получает покупку от customer user ID, который уже связан с другим customer user ID, уровень доступа предоставляется обоим профилям. Вы можете изменить эту настройку: передавать платный доступ от одного профиля к другому или полностью отключить совместный доступ. Подробнее см. в статье.
При входе/регистрации
Если вы идентифицируете пользователей после запуска приложения (например, после входа в аккаунт или регистрации), используйте метод identify, чтобы задать их customer user ID.
- Если вы ещё не использовали этот customer user ID, Adapty автоматически привяжет его к текущему профилю.
- Если вы уже использовали этот customer user ID для идентификации пользователя, Adapty переключится на работу с профилем, связанным с этим customer user ID.
Customer user ID должны быть уникальными для каждого пользователя. Если захардкодить значение параметра, все пользователи будут считаться одним.
Adapty.Identify("YOUR_USER_ID", (error) => { // Unique for each user
if(error == null) {
// successful identify
}
});
При активации SDK
Если customer user ID уже известен на момент активации SDK, его можно передать прямо в методе activate, не вызывая identify отдельно.
Если вы знаете customer user ID, но задаёте его только после активации, это означает, что при активации Adapty создаст новый анонимный профиль и переключится на существующий только после вызова identify.
Вы можете передать как существующий customer user ID (который уже использовался ранее), так и новый. Если передать новый, созданный при активации профиль автоматически привяжется к этому customer user ID.
По умолчанию создание анонимных профилей не влияет на дашборды аналитики, поскольку установки считаются по ID устройств.
ID устройства представляет одну установку приложения из стора на устройстве и обновляется только после переустановки приложения. Он не зависит от того, первая это или повторная установка, и от того, используется ли существующий customer user ID.
Создание профиля (при активации SDK или выходе из аккаунта), вход в систему или обновление приложения без переустановки не генерируют дополнительные события установки.
Если вы хотите считать установки по уникальным пользователям, а не по устройствам, перейдите в App settings и настройте Installs definition for analytics.
using UnityEngine;
using AdaptySDK;
var builder = new AdaptyConfiguration.Builder("YOUR_API_KEY")
.SetCustomerUserId("YOUR_USER_ID"); // Customer user IDs must be unique for each user. If you hardcode the parameter value, all users will be considered as one.
Adapty.Activate(builder.Build(), (error) => {
if (error != null) {
// handle the error
return;
}
});
Выход пользователей из системы
Если у вас есть кнопка для выхода из аккаунта, используйте метод logout.
При выходе из аккаунта для пользователя создаётся новый анонимный профиль.
Adapty.Logout((error) => {
if(error == null) {
// successful logout
}
});
Чтобы снова войти в приложение, используйте метод identify.
Разрешить покупки без входа в систему
Если пользователи могут совершать покупки как до, так и после входа в приложение, нужно убедиться, что после входа они сохранят доступ:
- Когда пользователь, не вошедший в систему, совершает покупку, Adapty привязывает её к ID его анонимного профиля.
- Когда пользователь входит в свой аккаунт, Adapty переключается на работу с его идентифицированным профилем.
- Если это новый customer user ID (например, покупка была сделана до регистрации), Adapty привязывает customer user ID к текущему профилю, сохраняя всю историю покупок.
- Если это существующий customer user ID (customer user ID уже связан с профилем), после переключения профиля нужно получить актуальный уровень доступа. Для этого можно либо вызвать
getProfileсразу после идентификации, либо подписаться на обновления профиля, чтобы данные синхронизировались автоматически.
Следующие шаги
Поздравляем! Вы реализовали логику встроенных покупок в своём приложении! Желаем успехов с монетизацией!
Чтобы получить от Adapty ещё больше, изучите следующие темы:
- Тестирование: Убедитесь, что всё работает как ожидается
- Онбординги: Вовлекайте пользователей с помощью онбордингов и повышайте удержание
- Интеграции: Подключайтесь к сервисам маркетинговой атрибуции и аналитики буквально одной строкой кода
- Задать атрибуты профиля: Добавляйте кастомные атрибуты к профилям пользователей и создавайте сегменты для A/B-тестов или показа разных пейволов разным пользователям