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

Adapty создаёт внутренний ID профиля для каждого пользователя. Однако если у вас есть собственная система аутентификации, вы можете задать свой Customer User ID. Пользователей можно находить по Customer User ID в разделе Profiles, а также использовать его в серверном API — он будет передаваться во все интеграции.

Установка Customer User ID при конфигурации

Если ID пользователя уже известен на этапе конфигурации, просто передайте его в параметре customerUserId метода .activate():

adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID"
});

Хотите увидеть реальный пример интеграции Adapty SDK в мобильное приложение? Посмотрите наши примеры приложений — они демонстрируют полную настройку: отображение пейволов, совершение покупок и другие базовые функции.

Установка Customer User ID после конфигурации

Если ID пользователя недоступен при конфигурации SDK, его можно задать позже в любой момент с помощью метода .identify(). Чаще всего этот метод вызывают после регистрации или авторизации — когда анонимный пользователь становится аутентифицированным.

try {
    await adapty.identify("YOUR_USER_ID");
    // successfully identified
} catch (error) {
    // handle the error
}

Параметры запроса:

  • Customer User ID (обязательный): строковый идентификатор пользователя.

Повторная передача важных данных пользователя

В некоторых случаях — например, когда пользователь снова входит в аккаунт — серверы Adapty уже располагают информацией о нём. В таких ситуациях Adapty SDK автоматически переключится на работу с новым пользователем. Если вы передавали какие-либо данные анонимному пользователю — например, пользовательские атрибуты или атрибуцию из сторонних сетей — необходимо повторно отправить эти данные для идентифицированного пользователя.

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

Выход и вход

Вы можете выйти из аккаунта в любой момент, вызвав метод .logout():

try {
    await adapty.logout();
    // successful logout
} catch (error) {
    // handle the error
}

После этого можно войти снова, используя метод .identify().

Назначение appAccountToken (iOS)

appAccountToken — это UUID, позволяющий связывать транзакции App Store с внутренними идентификаторами пользователей.
StoreKit прикрепляет этот токен к каждой транзакции, поэтому ваш бэкенд может сопоставлять данные App Store с вашими пользователями.

Используйте стабильный UUID, сгенерированный для каждого пользователя, и применяйте его для одного и того же аккаунта на всех устройствах. Это гарантирует, что покупки и уведомления App Store будут корректно привязаны.

Токен можно задать двумя способами: при активации SDK или при идентификации пользователя.

Всегда передавайте appAccountToken вместе с customerUserId. Если передать только токен, он не будет включён в транзакцию.

// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID",
    ios: { appAccountToken: "YOUR_APP_ACCOUNT_TOKEN" },
});

// Or when identifying users
try {
    await adapty.identify("YOUR_USER_ID", {
        ios: {appAccountToken: 'YOUR_APP_ACCOUNT_TOKEN'}
    });
    // successfully identified
} catch (error) {
    // handle the error
}

Установка обфусцированных идентификаторов аккаунта (Android)

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

Задавать такие идентификаторы может потребоваться, если ваше приложение работает с чувствительными пользовательскими данными или должно соответствовать определённым требованиям конфиденциальности. Обфусцированные идентификаторы позволяют Google Play отслеживать покупки без раскрытия реальных пользовательских данных.

// During configuration:
adapty.activate("PUBLIC_SDK_KEY", {
    customerUserId: "YOUR_USER_ID",
    android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
});

// Or when identifying users
try {
    await adapty.identify("YOUR_USER_ID", {
        android: { obfuscatedAccountId: 'YOUR_OBFUSCATED_ACCOUNT_ID' }
    });
    // successfully identified
} catch (error) {
    // handle the error
}