Управление пользователями и сессиями
Управление пользователями и сессиями
Ключ-АСТРОМ позволяет идентифицировать пользователей в разных сессиях и на разных устройствах, управлять жизненным циклом сессии и добавлять свойства, которые применяются ко всем событиям в рамках сессии.
Идентификация пользователей
Используйте функцию identifyUser() для присвоения текущей сессии идентификатора пользователя. Это позволяет отслеживать отдельных пользователей в разных сессиях, браузерах и устройствах.
Важные соображения
- Данные не сохраняются — пользовательский тег не хранится. Необходимо вызывать функцию
identifyUser()для каждой новой сессии. - Автоматическая перемаркировка — когда сессия разделяется из-за простоя или истечения времени ожидания, последующая сессия автоматически перемаркируется тем же идентификатором пользователя.
- Конфиденциальность — при выборе идентификатора следует учитывать правила защиты конфиденциальности. Хэшированные или анонимизированные идентификаторы могут быть предпочтительнее.
- Когда пользователь закрывает приложение или изменяет настройки конфиденциальности, сессии не переименовываются автоматически. Необходимо повторно вызвать функцию
identifyUser()после начала новой сессии.
Базовое использование
Kotlin
// После входа пользователя в систему
Astromkey.identifyUser("user@example.com")
// Или используйте внутренний идентификатор пользователя
Astromkey.identifyUser("user-12345")
Java
// После входа пользователя в систему
Astromkey.identifyUser("user@example.com");
// Или используйте внутренний идентификатор пользователя
Astromkey.identifyUser("user-12345");
Удалить идентификацию пользователя
Чтобы удалить пользовательский тег (например, при выходе из системы), передайте null либо пустую строку:
Kotlin
fun logout() {
// Четкая идентификация пользователя
Astromkey.identifyUser(null)
}
Java
public void logout() {
// Четкая идентификация пользователя
Astromkey.identifyUser(null);
}
Используйте свойства сессии
Свойства сессии представляют собой пары «ключ-значение», которые применяются ко всем событиям в текущей сессии. Используйте их для добавления контекста, характеризующего сессию пользователя.
Свойства событий и сессий необходимо настроить перед их использованием. Входящие свойства событий и сессий, которые не настроены, отбрасываются во время приема событий.
Отправить свойства сессии
Kotlin
Astromkey.sendSessionPropertyEvent(
SessionPropertyEventData()
.addSessionProperty("session_properties.product_tier", "premium")
.addSessionProperty("session_properties.loyalty_status", "gold")
.addSessionProperty("session_properties.onboarding_complete", true)
)
Java
Astromkey.sendSessionPropertyEvent(
new SessionPropertyEventData()
.addSessionProperty("session_properties.product_tier", "premium")
.addSessionProperty("session_properties.loyalty_status", "gold")
.addSessionProperty("session_properties.onboarding_complete", true)
);
Правила наименования свойств
Ключи должны иметь префикс session_properties. и соответствовать правилам, указанным в разделе «Свойства событий и сессий».
Для настройки параметров сессии в Ключ-АСТРОМ требуется конфигурация на стороне сервера. Параметры, которые не настроены, отбрасываются во время приема данных.
Обновить свойства сессии
В течение одной сессии можно отправлять свойства сессии несколько раз. Однако, если вы отправляете одно и то же свойство несколько раз, агрегация сессии сохраняет только одно значение (первое или последнее, в зависимости от конфигурации).
Kotlin
// Начальные свойства
Astromkey.sendSessionPropertyEvent(
SessionPropertyEventData()
.addSessionProperty("session_properties.cart_value", 0)
)
// Обновить после добавления пользователем элементов
Astromkey.sendSessionPropertyEvent(
SessionPropertyEventData()
.addSessionProperty("session_properties.cart_value", 149.99)
)
Java
// Начальные свойства
Astromkey.sendSessionPropertyEvent(
new SessionPropertyEventData()
.addSessionProperty("session_properties.cart_value", 0)
);
// Обновить после добавления пользователем элементов
Astromkey.sendSessionPropertyEvent(
new SessionPropertyEventData()
.addSessionProperty("session_properties.cart_value", 149.99)
);