Как Sigma определяет группу A/B и значение фича-флага
Схема работы
Настройки целевой аудитории доступны для версий SDK, начиная с NodeJs 2.0.0 и Js 2.0.0
Фича-флаги
Что это
Фича-флаги (Feature Flags) — модуль Sigma, позволяющий ги бко управлять включением и выключением функциональной сущности на сайте и в приложении (например, чат). Также фича-флаги позволяют управлять контентным содержимым: в административной панели вы можете присвоить то или иное значение в зависимости от каких-либо условий.
Типы правил
Ниже описан механизм работы фича-флагов без запущенного эксперимента. При работе с экспериментом, переходите к разделу Эксперименты
В фича-флагах есть два типа правил, от которых зависит присвоение значения пользователю:
Значение
(по-умолчанию) — правило по умолчанию, по которому будет присвоено значение, если пользователь не попал ни под одно из назначенных условий (или условий нет вовсе)- Просто
Значение
— произвольное правило, в котором может быть одно и более условий, установленных в административной панели. Значение будет присвоено, если пользователь попал под установленные условия
Ограничений на количество правил и условий нет.
Пример
Мы хотели бы изменять текст приветствия, который содержится в <h1>
, в зависимости от браузера пользователя.
Для этого мы определим три значения:
Значение
(по-умолчанию):Welcome!
. Значение будет присвоено всем пользователям по умолчаниюЗначение
(1):Welcome user from browser Chrome!
. Значение будет присвоено пользователям браузера Chrome.Значение
(2):Welcome user from browser Safari!
. Значение будет присвоено пользователям браузера Safari.
В этом примере, если пользователь зашел с Opera, Edge и других браузеров (кроме Chrome и Safari), то получит значение по умолчанию Welcome!
Как работают правила фича-флагов
- В условиях вы можете выбрать Поле (характеристика пользователя), которое будет проверяться
перед тем, как назначить значение. Например,
browser.name
(имя браузера) - Вы можете установить несколько условий, комбинируя разные Поля. Например,
browser.name
иbrowser.version
Операции для условий
Комбинируя несколько условий друг с другом для одного Правила, вы можете установить
Операцию для условий. Поддерживается два типа операций: AND
(и) и OR
(или)
Пример
Вернемся к примеру с браузером. Давайте добавим к Значение
(1) еще одно условие browser.version equal 107.0.5304.110
.
Те перь значение для Chrome будет возвращаться только в случае, если пользователь попадает под оба условия (версия будет
равняться 107.0.5304.110
), т.к. мы выбрали Операцию для условий AND
.
Если пользователь зашел с Chrome, но при этом версия отличается, то ему присвоится
значение по умолчанию — Welcome!
Что будет, если создать одинаковые условия в двух правилах
- Мы рекомендуем не создавать одинаковые правила типа
Значение
с разными значениями - Если вы все же по какой-то причине это сделали, то пользователю назначится то значение, чье правило стоит выше в административной панели
Что будет, если создать противоречащие условия в одном правиле
Если в правиле противоречащие условия, тогда пользователь перейдет к следующему правилу в цепочке.
Пример
В правиле установлены browser.name equal Chrome
и browser.name not equal Chrome
с Операцией для условий AND
.
- 1-й пользователь зашел с браузера Chrome. Он попадает в первое условие, но во второе — нет
- 2-й пользователь зашел с браузера Opera. Он попадает во второе условие, но в первое — нет
Оба пользователя не подойдут под правило, т.к. условия не соблюдены. Они последуют далее по цепочке остальных правил.
Если и под другие правила (если они есть) они не подходят, то им присвоится значение из Значение
(по-умолчанию).
Эксперименты
Что это
Эксперименты — модуль Sigma, позволяющий запускать A/B-тестирования на сайте и в приложении.
Модуль работает с тремя типами: Параметры
, Фича-флаги
и Переадресация
.
Иерархия в методах
Метод | Что делает |
---|---|
getExperiment |
|
getFeatureValue |
|
getParamValue | Получение значения параметра в зависимости от группы |
checkFlag | Все что делает getExperiment() и getFeatureValue(). Также метод работает как с самостоятельным фича-ф лагом, так и с фича-флагом, связанным с экспериментом |
Принудительный список пользователей
Принудительный список игнорирует следующие стратегии:
- Глобальные условия
- Слой
- Процент выделенного трафика (Allocation)
Правила фича-флагов не игнорируются, т.к. у одной группы может быть несколько значений, если правил будет тоже несколько. В данном кейсе пользователю назначится группа, которую вы установили в списке, но значение будет получено, исходя из правил.
Стратегия | В какую группу попадут пользователи |
---|---|
Процент трафика равен 0% | Пользователь будет определен в группу эксперимента в любом случае |
Эксперименту выделено 10% слоя, пользователь не попал в группу слоя из 10% | |
В глобальных условиях установлено правило geo.country equal Russia. Пользователь зашел из Казахстана | |
В эксперименте установлен фича-флаг. Добавили пользователя в список группы А. У фича-флага для группы А два правила | Пользователь попадет в группу А в любом случае. Значение будет присвоено в зависимости от попадания под условия одного из двух правил |
Что будет, если отключить запущенный A/B и потом снова включить
Реконфигурация статуса эксперимента | Пользователи перемешаются? |
---|---|
Запустили A/B, затем отключили и спустя время снова включили | Перемешивания не будет после повторного включения. Пользователи получат те же группы, что и в первый раз |