Идентификация пользователей в Android SDK

Этот гайд для вас, если у вас есть собственная система аутентификации. Здесь вы узнаете, как работать с профилями пользователей в Adapty, чтобы они соответствовали вашей существующей системе аутентификации.

То, как вы управляете покупками пользователей, зависит от модели аутентификации вашего приложения:

Ключевые понятия:

  • Профили — сущности, необходимые для работы SDK. Adapty создаёт их автоматически.
  • Они могут быть анонимными (без customer user ID) или идентифицированными (с customer user ID).
  • Вы предоставляете customer user ID, чтобы связать профили в Adapty с вашей внутренней системой аутентификации.

Вот чем различаются анонимные и идентифицированные пользователи:

Анонимные пользователиИдентифицированные пользователи
Управление покупкамиВосстановление покупок на уровне стораСохранение истории покупок на всех устройствах через customer user ID
Управление профилямиНовый профиль при каждой переустановкеОдин и тот же профиль во всех сессиях и на всех устройствах
Сохранность данныхДанные анонимных пользователей привязаны к установке приложенияДанные идентифицированных пользователей сохраняются между установками приложения

Анонимные пользователи

Если у вас нет бэкенд-аутентификации, вам не нужно обрабатывать аутентификацию в коде приложения:

  1. Когда SDK активируется при первом запуске приложения, Adapty создаёт новый профиль для пользователя.
  2. Когда пользователь совершает покупку в приложении, она связывается с его профилем Adapty и его аккаунтом в сторе.
  3. Когда пользователь переустанавливает приложение или устанавливает его на новом устройстве, Adapty создаёт новый анонимный профиль при активации.
  4. Если пользователь ранее совершал покупки в вашем приложении, по умолчанию его покупки автоматически синхронизируются из App Store при активации SDK.

Таким образом, при работе с анонимными пользователями при каждой установке будут создаваться новые профили — но это не проблема, поскольку в аналитике Adapty вы можете настроить, что считать новой установкой.

Для анонимных пользователей установки нужно считать по ID устройств. В этом случае каждая установка приложения на устройство считается установкой, включая переустановки.

Идентифицированные пользователи

У вас есть два способа идентифицировать пользователей в приложении:

  • При входе/регистрации: Если пользователи входят в систему после запуска приложения, вызовите identify() с customer user ID в момент аутентификации.

  • При активации SDK: Если customer user ID уже известен на момент запуска приложения, передайте его при вызове activate().

По умолчанию, когда Adapty получает покупку от Customer User ID, который уже привязан к другому Customer User ID, уровень доступа предоставляется обоим — то есть оба профиля получают платный доступ. Вы можете настроить это поведение так, чтобы платный доступ переносился с одного профиля на другой, или полностью отключить совместный доступ. Подробнее см. в статье.

identify-diagram.webp

При входе/регистрации

Если вы идентифицируете пользователей после запуска приложения (например, после входа или регистрации), используйте метод identify, чтобы задать их customer user ID.

  • Если вы раньше не использовали этот customer user ID, Adapty автоматически свяжет его с текущим профилем.
  • Если вы уже использовали этот customer user ID для идентификации пользователя, Adapty переключится на работу с профилем, связанным с этим customer user ID.

Customer user ID должны быть уникальными для каждого пользователя. Если вы задаёте значение параметра жёстко в коде, все пользователи будут считаться одним и тем же.

При активации 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.

Выход пользователей из системы

Если в приложении есть кнопка выхода, используйте метод logout.

Выход из системы создаёт новый анонимный профиль для пользователя.

Чтобы снова войти в приложение, используйте метод identify.

Разрешение покупок без входа в систему

Если ваши пользователи могут совершать покупки как до, так и после входа в приложение, нужно убедиться, что после входа они сохранят доступ:

  1. Когда пользователь, не вошедший в систему, совершает покупку, Adapty привязывает её к ID его анонимного профиля.
  2. Когда пользователь входит в свой аккаунт, Adapty переключается на работу с его идентифицированным профилем.
    • Если это новый customer user ID (например, покупка была совершена до регистрации), Adapty присваивает customer user ID текущему профилю, сохраняя всю историю покупок.
    • Если это существующий customer user ID (customer user ID уже привязан к профилю), после переключения профиля нужно получить актуальный уровень доступа. Можно вызвать getProfile сразу после идентификации или подписаться на обновления профиля, чтобы данные синхронизировались автоматически.

Дальнейшие шаги

Поздравляем! Вы реализовали логику встроенных платежей в своём приложении! Желаем вам успехов в монетизации!

Чтобы получить от Adapty ещё больше пользы, изучите эти темы:

  • Тестирование: Убедитесь, что всё работает корректно
  • Онбординги: Вовлекайте пользователей с помощью онбордингов и повышайте удержание
  • Интеграции: Подключайте сервисы маркетинговой атрибуции и аналитики буквально в одну строку кода
  • Настройка атрибутов профиля: Добавляйте кастомные атрибуты к профилям пользователей и создавайте сегменты для A/B-тестов или показа разных пейволов разным пользователям