Идентификация пользователей в Android SDK
Этот гайд для вас, если у вас есть собственная система аутентификации. Здесь вы узнаете, как работать с профилями пользователей в Adapty, чтобы они соответствовали вашей существующей системе аутентификации.
То, как вы управляете покупками пользователей, зависит от модели аутентификации вашего приложения:
- Если ваше приложение не использует бэкенд-аутентификацию и не хранит данные пользователей, смотрите раздел об анонимных пользователях.
- Если ваше приложение использует (или будет использовать) бэкенд-аутентификацию, смотрите раздел об идентифицированных пользователях. Ключевые понятия:
- Профили — сущности, необходимые для работы SDK. Adapty создаёт их автоматически.
- Они могут быть анонимными (без customer user ID) или идентифицированными (с customer user ID).
- Вы передаёте customer user ID, чтобы связать профили в Adapty с вашей внутренней системой авторизации.
Вот чем различаются анонимные и идентифицированные пользователи:
| Анонимные пользователи | Идентифицированные пользователи | |
|---|---|---|
| Purchase management | Восстановление покупок на уровне стора | История покупок сохраняется на всех устройствах благодаря customer user ID |
| Profile management | Новый профиль при каждой переустановке | Один и тот же профиль в разных сессиях и на разных устройствах |
| Data persistence | Данные анонимных пользователей привязаны к установке приложения | Данные идентифицированных пользователей сохраняются между установками приложения |
Анонимные пользователи
Если у вас нет серверной аутентификации, вам не нужно обрабатывать аутентификацию в коде приложения:
- Когда SDK активируется при первом запуске приложения, Adapty создаёт новый профиль для пользователя.
- Когда пользователь совершает покупку в приложении, она привязывается к его профилю в Adapty и его аккаунту в сторе.
- Когда пользователь переустанавливает приложение или устанавливает его на новое устройство, Adapty создаёт новый анонимный профиль при активации.
- Если пользователь ранее совершал покупки в вашем приложении, по умолчанию они автоматически синхронизируются из App Store при активации SDK. Таким образом, для анонимных пользователей при каждой установке будет создаваться новый профиль — но это не проблема, поскольку в аналитике Adapty можно настроить, что считается новой установкой.
Для анонимных пользователей установки нужно считать по идентификаторам устройств. В этом случае каждая установка приложения на устройство считается отдельной установкой, включая повторные.
Идентифицированные пользователи
У вас есть два способа идентифицировать пользователей в приложении:
-
При входе/регистрации: Если пользователи входят в систему после запуска приложения, вызовите
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) должны быть уникальными для каждого пользователя. Если задать значение параметра жёстко в коде, все пользователи будут считаться одним.
Дождитесь срабатывания колбэка завершения identify, прежде чем вызывать другие методы SDK. Параллельные вызовы могут попасть в анонимный профиль вместо идентифицированного. См. Порядок вызовов в Android SDK.
Во время активации SDK
Если вы знаете customer user ID уже в момент активации SDK, его можно передать прямо в методе activate — вызывать identify отдельно не нужно.
Если customer user ID известен, но вы задаёте его только после активации, то при активации Adapty создаст новый анонимный профиль и переключится на существующий лишь после вызова identify.
Вы можете передать как существующий customer user ID (который уже использовался ранее), так и новый. Если вы передадите новый, профиль, созданный при активации, будет автоматически привязан к этому customer user ID.
По умолчанию создание анонимных профилей не влияет на аналитические дашборды, поскольку установки учитываются на основе идентификаторов устройств. Идентификатор устройства соответствует одной установке приложения из стора на устройстве и обновляется только при переустановке приложения. Он не зависит от того, первая это установка или повторная, и от того, используется ли существующий customer user ID.
Создание профиля (при активации SDK или выходе из системы), вход в систему или обновление приложения без переустановки не генерируют дополнительные события установки. Если вы хотите считать установки по уникальным пользователям, а не устройствам, перейдите в App settings и настройте Installs definition for analytics.
Выход пользователей из системы
Если в приложении есть кнопка выхода, используйте метод logout.
При выходе из системы для пользователя создаётся новый анонимный профиль.
Чтобы снова авторизовать пользователей в приложении, используйте метод identify.
Разрешите покупки без входа в систему
Если пользователи могут совершать покупки как до, так и после входа в приложение, нужно убедиться, что после авторизации они сохранят доступ к своим покупкам:
- Когда неавторизованный пользователь совершает покупку, Adapty привязывает её к анонимному идентификатору профиля.
- Когда пользователь входит в аккаунт, Adapty переключается на работу с его идентифицированным профилем.
- Если это новый customer user ID (например, покупка была совершена до регистрации), Adapty присваивает customer user ID текущему профилю, сохраняя всю историю покупок.
- Если это существующий customer user ID (customer user ID уже привязан к профилю), нужно получить актуальный уровень доступа после переключения профиля. Можно вызвать
getProfileсразу после идентификации или подписаться на обновления профиля, чтобы данные синхронизировались автоматически.
Следующие шаги
Поздравляем! Вы реализовали логику встроенных покупок в своём приложении. Желаем вам успехов в монетизации! Чтобы получить от Adapty ещё больше, изучите эти темы:
- Тестирование: Убедитесь, что всё работает как ожидается
- Онбординги: Вовлекайте пользователей с помощью онбордингов и повышайте удержание
- Интеграции: Подключите сервисы маркетинговой атрибуции и аналитики буквально в одну строку кода
- Установка пользовательских атрибутов профиля: Добавляйте пользовательские атрибуты к профилям, создавайте сегменты и запускайте A/B-тесты или показывайте разные пейволы разным пользователям