Как сплитовать на основе userId, profileId, deviceId?
Описание
Sigma предоставляет возможность проведения экспериментов на сайте и в приложении, в которых могут участвовать как анонимные, так и авторизованные пользователи.
Для этого логично использовать какой-либо анонимный идентификатор (например, GA ClientId) на анонимных и id личного кабинета для авторизованных.
Для использования данной опции необходимо указать соответствующий идентификатор пользователя. Передача данных предварительно настраивается с помощью методов SDK или API. Затем в интерфейсе выбирается нужный тип идентификатора с помощью специального поля.
Рекомендуется внимательно ознакомиться с документацией перед началом работы с данной опцией.
Объект userData
Сплитование (разделение пользователей по вариантам эксперимента) осуществляется
с помощью трех типов id пользователя в объекте userData
:
Тип идентификатора | Описание |
---|---|
userId | Анонимный идентифкатор пользователя. Например, ClientID в Google Analytics и Yandex.Metrica или Fingerprint в NodeJs |
profileId | Идентификатор авторизованного пользователя. Например, ID личного кабинета |
deviceId | Идентификатор устройства пользователя. Полезно для проведения экспериментов в приложениях |
Объект userData
может быть представлен следующим образом:
const userData = {
userId: <YOUR_USER_ID>,
profileId: <YOUR_PROFILE_ID>,
deviceId: <YOUR_DEVICE_ID>
}
Этот объект необходимо передать в метод init
экземпляра класса Sigma
вместе с токеном
вашего проекта:
const token = <YOUR_TOKEN>;
const sigma = new Sigma();
sigma.init({ token, userData });
Выбор типа идентификатора в интерфейсе
Как только вы передали данные в init()
, у вас появляется возможность выбрать идентификатор, который будет использоваться для назначения экспериментов пользователю.
Порядок действий
- Создайте эксперимент и выберите его тип: Параметр, Фича флаг, Переадресация
- Перейдите во вкладку "Настройки"
- В поле "Тип идентификатора" выберите нужный тип
- Создайте группы, завершите настройку остальных параметров, согласно вашей цели
- Сохраните изменения и опубликуйте конфиг
Поведение Sigma
Метод | Описание поведения |
---|---|
SDK: getParamValue | Если в userData передан сооветствующий тип идентификатора, то пользователю вернется значение по эксперименту. В противном случае будет возвращен null |
SDK: getFeatureValue | |
SDK: checkFlag | |
SDK: getAllUserExperiments | Будет учтен тип идентификатора пользователя по соответствующему эксперименту в конкатенированном списке |
API: estimate/all | Поведение такое же как в описанных выше методах |
Пример №1: Для эксперимента выбран тип profileId, в userData передается только userId
Пользователь без profileId (или он не был передан в userData) не попадет в эксперимент. Ему будет возвращен null для методов в связке с getExperiment
Пример №2: Для эксперимента выбран тип profileId, в userData был передан profileId
Пользователь попадет в эксперимент, согласно прохождению по условиям в Слое, ЦА и т.п. (если эти условия включены в эксперименте)