Управление пользователями и сессиями на iOS

Материал из Документация Ключ-АСТРОМ
Версия от 18:02, 19 августа 2026; IKuznetsov (обсуждение | вклад) (Новая страница: «= Управление пользователями и сессиями = Ключ-АСТРОМ позволяет идентифицировать пользователей в разных сессиях и на разных устройствах, управлять жизненным циклом сессии и добавлять свойства, которые применяются ко всем событиям в рамках сессии. == И...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Управление пользователями и сессиями

Ключ-АСТРОМ позволяет идентифицировать пользователей в разных сессиях и на разных устройствах, управлять жизненным циклом сессии и добавлять свойства, которые применяются ко всем событиям в рамках сессии.

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

Используйте функцию 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_tier
  • session_properties.loyalty_status
  • session_properties.onboarding_complete

Для настройки параметров сессии в Ключ-АСТРОМ требуется конфигурация на стороне сервера. Параметры, которые не настроены, отбрасываются во время приема данных.

Пределы

  • Название:
    • Максимальная длина имени поля: 100 символов (включая префикс session_properties.).
    • Допустимые символы в имени поля: A–Z, a–z, 0–9, нижнее подчеркивание _ и точка ..
  • Количество параметров — можно настроить максимум 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];
}

Сеансы также автоматически завершаются по истечении времени ожидания бездействия и максимальной продолжительности сеанса, настроенной в вашей среде Ключ-АСТРОМ.