Идентификация пользователей в iOS SDK
Этот гайд для вас, если у вас есть собственная система аутентификации. Здесь вы узнаете, как работать с профилями пользователей в Adapty, чтобы они соответствовали вашей существующей системе аутентификации.
Управление покупками пользователей зависит от модели аутентификации в вашем приложении:
- Если ваше приложение не использует серверную аутентификацию и не хранит данные пользователей, см. раздел об анонимных пользователях.
- Если у вашего приложения есть (или будет) серверная аутентификация, см. раздел об идентифицированных пользователях.
Ключевые понятия:
- Профили — это сущности, необходимые для работы SDK. Adapty создаёт их автоматически.
- Они могут быть анонимными (без customer user ID) или идентифицированными (с customer user ID).
- Вы предоставляете customer user ID, чтобы связать профили в Adapty с вашей внутренней системой аутентификации.
Вот чем отличаются анонимные и идентифицированные пользователи:
| Анонимные пользователи | Идентифицированные пользователи | |
|---|---|---|
| Управление покупками | Восстановление покупок на уровне стора | История покупок сохраняется на всех устройствах через customer user ID |
| Управление профилями | Новый профиль при каждой переустановке | Один и тот же профиль на протяжении всех сессий и устройств |
| Сохранность данных | Данные анонимных пользователей привязаны к установке приложения | Данные идентифицированных пользователей сохраняются между установками приложения |
Анонимные пользователи
Если у вас нет серверной аутентификации, вам не нужно обрабатывать аутентификацию в коде приложения:
- При активации SDK на первом запуске приложения Adapty создаёт новый профиль для пользователя.
- Когда пользователь совершает покупку в приложении, она привязывается к его профилю в Adapty и его аккаунту в сторе.
- Когда пользователь переустанавливает приложение или устанавливает его на новое устройство, Adapty создаёт новый анонимный профиль при активации.
- Если пользователь ранее совершал покупки в вашем приложении, по умолчанию они автоматически синхронизируются из App Store при активации SDK.
Восстановление из резервной копии работает иначе, чем переустановка. По умолчанию при восстановлении из резервной копии SDK сохраняет кэшированные данные и не создаёт новый профиль. Вы можете настроить это поведение с помощью параметра clearDataOnBackup. Подробнее.
Таким образом, при работе с анонимными пользователями при каждой установке будут создаваться новые профили, но это не проблема: в аналитике 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 должны быть уникальными для каждого пользователя. Если вы захардкодите значение параметра, все пользователи будут считаться одним человеком.
Во время активации 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-тестов или показа разных пейволов разным пользователям