Управление пользователями и сессиями на iOS
Управление пользователями и сессиями
Ключ-АСТРОМ позволяет идентифицировать пользователей в разных сессиях и на разных устройствах, управлять жизненным циклом сессии и добавлять свойства, которые применяются ко всем событиям в рамках сессии.
Идентификация пользователей
Используйте функцию identifyUser() для присвоения текущей сессии идентификатора пользователя. Это позволяет отслеживать отдельных пользователей в разных сессиях, браузерах и устройствах.
Основное использование
Swift
// После входа пользователя в систему
Astromkey.identifyUser("user@example.com")
// Или используйте внутренний идентификатор пользователя
Astromkey.identifyUser("user-12345")
Objective-C
// После входа пользователя в систему [Astromkey identifyUser:@"user@example.com"]; // Или используйте внутренний идентификатор пользователя [Astromkey identifyUser:@"user-12345"];
Удалить идентификацию пользователя
Чтобы удалить пользовательский тег (например, при выходе из системы), передайте nil либо пустую строку:
Swift
func logout() {
// Четкая идентификация пользователя
Astromkey.identifyUser(nil)
}
Objective-C
- (void)logout {
// Четкая идентификация пользователя
[Astromkey identifyUser:nil];
}
Важные соображения
- Данные не сохраняются — пользовательский тег не хранится. Необходимо вызывать функцию
identifyUser()для каждой новой сессии. - Автоматическая перемаркировка — когда сессия разделяется из-за простоя или истечения времени ожидания, последующая сессия автоматически перемаркируется тем же идентификатором пользователя.
- Конфиденциальность — при выборе идентификатора следует учитывать правила защиты конфиденциальности. Хэшированные или анонимизированные идентификаторы могут быть предпочтительнее.
- Когда пользователь закрывает приложение или изменяет настройки конфиденциальности, сессии не переименовываются автоматически. Необходимо повторно вызвать функцию
identifyUser()после начала новой сессии.
Свойства сессии
Свойства сессии представляют собой пары «ключ-значение», которые применяются ко всем событиям в текущей сессии. Используйте их для добавления контекста, характеризующего сессию пользователя.
Свойства событий и сессий необходимо настроить перед их использованием. Входящие свойства событий и сессий, которые не настроены, отбрасываются во время приема событий.
Отправить свойства сессии
Swift
Astromkey.sendSessionPropertyEvent(
DTXSessionPropertyEventData()
.addSessionProperty("session_properties.product_tier", value: "premium")
.addSessionProperty("session_properties.loyalty_status", value: "gold")
.addSessionProperty("session_properties.onboarding_complete", value: true)
)
Objective-C
[Astromkey sendSessionPropertyEvent:
[[[[DTXSessionPropertyEventData alloc] init]
addSessionProperty:@"session_properties.product_tier" value:@"premium"]
addSessionProperty:@"session_properties.loyalty_status" value:@"gold"]
addSessionProperty:@"session_properties.onboarding_complete" value:@YES]];
Правила наименования свойств
- Ключи должны начинаться с символа
session_properties.. - Названия полей должны содержать только буквенно-цифровые символы, символы подчеркивания и точки.
- За каждой точкой должен следовать буквенный символ.
- За каждым символом подчеркивания должна следовать буква или цифра.
- Значения должны быть примитивными типами (
String,Int,Double,Bool).
Допустимые примеры:
session_properties.product_tiersession_properties.loyalty_statussession_properties.onboarding_complete
Для настройки параметров сессии в Ключ-АСТРОМ требуется конфигурация на стороне сервера. Параметры, которые не настроены, отбрасываются во время приема данных.
Пределы
- Название:
- Максимальная длина имени поля: 100 символов (включая префикс
session_properties.). - Допустимые символы в имени поля:
A–Z,a–z,0–9, нижнее подчеркивание_и точка..
- Максимальная длина имени поля: 100 символов (включая префикс
- Количество параметров — можно настроить максимум 50 параметров сессии.
- Значения — для свойств сессии строкового типа данных длина ограничена 5000 символами.
Обновить свойства сессии
В течение одной сессии можно отправлять свойства сессии несколько раз. Однако, если вы отправляете одно и то же свойство несколько раз, агрегация сессии сохраняет только одно значение (первое или последнее, в зависимости от конфигурации).
Swift
// Начальные свойства
Astromkey.sendSessionPropertyEvent(
DTXSessionPropertyEventData()
.addSessionProperty("session_properties.cart_value", value: 0)
)
// Обновить после добавления пользователем элементов
Astromkey.sendSessionPropertyEvent(
DTXSessionPropertyEventData()
.addSessionProperty("session_properties.cart_value", value: 149.99)
)
Objective-C
// Начальные свойства
[Astromkey sendSessionPropertyEvent:
[[DTXSessionPropertyEventData alloc] init]
addSessionProperty:@"session_properties.cart_value" value:@0]];
// Обновить после добавления пользователем элементов
[Astromkey sendSessionPropertyEvent:
[[DTXSessionPropertyEventData alloc] init]
addSessionProperty:@"session_properties.cart_value" value:@149.99]];
Завершение сессии
Используйте функцию endVisit() для ручного закрытия текущей сессии и начала новой. Все открытые действия закрываются и отправляются на сервер.
Swift
func logout() {
// Четкая идентификация пользователя
Astromkey.identifyUser(nil)
// Завершить текущую сессию
Astromkey.endVisit()
}
Objective-C
- (void)logout {
// Четкая идентификация пользователя
[Astromkey identifyUser:nil];
// Завершить текущую сессию
[Astromkey endVisit];
}
Сеансы также автоматически завершаются по истечении времени ожидания бездействия и максимальной продолжительности сеанса, настроенной в вашей среде Ключ-АСТРОМ.