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

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

Указание Customer User ID при конфигурации

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

using UnityEngine;
using AdaptySDK;

var builder = new AdaptyConfiguration.Builder("YOUR_API_KEY")
    .SetCustomerUserId("YOUR_USER_ID");

Adapty.Activate(builder.Build(), (error) => {
    if (error != null) {
        // handle the error
        return;
    }
}); 

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

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

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

Adapty.Identify("YOUR_USER_ID", (error) => {
  if(error == null) {
    // successful identify
  }
});

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

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

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

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

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

Выход и вход в систему

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

Adapty.Logout((error) => {
  if(error == null) {
    // successful logout
  }
});

После этого вы можете выполнить вход пользователя с помощью метода .identify().

Присвоение appAccountToken (iOS)

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

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

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

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

using UnityEngine;
using AdaptySDK;
using System;

// During configuration:
var appAccountToken = new Guid("YOUR_APP_ACCOUNT_TOKEN");
var builder = new AdaptyConfiguration.Builder("YOUR_API_KEY")
    .SetCustomerUserId("YOUR_USER_ID", appAccountToken);

Adapty.Activate(builder.Build(), (error) => {
    if (error != null) {
        // handle the error
        return;
    }
}); 

// Or when identifying users
Adapty.Identify("YOUR_USER_ID", appAccountToken, (error) => {
    if (error == null) {
        // successful identify
    }
});

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

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

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

using UnityEngine;
using AdaptySDK;

// During configuration:
var builder = new AdaptyConfiguration.Builder("YOUR_API_KEY")
    .SetCustomerUserId("YOUR_USER_ID", null, "YOUR_OBFUSCATED_ACCOUNT_ID");

Adapty.Activate(builder.Build(), (error) => {
    if (error != null) {
        // handle the error
        return;
    }
});

// Or when identifying users
Adapty.Identify("YOUR_USER_ID", null, "YOUR_OBFUSCATED_ACCOUNT_ID", (error) => {
    if (error == null) {
        // successful identify
    }
});