Skip to main content

Как сплитовать на основе 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(), у вас появляется возможность выбрать идентификатор, который будет использоваться для назначения экспериментов пользователю.

Порядок действий

  1. Создайте эксперимент и выберите его тип: Параметр, Фича флаг, Переадресация
  2. Перейдите во вкладку "Настройки"
  3. В поле "Тип идентификатора" выберите нужный тип
  4. Создайте группы, завершите настройку остальных параметров, согласно вашей цели
  5. Сохраните изменения и опубликуйте конфиг

Поведение 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

Пользователь попадет в эксперимент, согласно прохождению по условиям в Слое, ЦА и т.п. (если эти условия включены в эксперименте)

Смотрите также