Как заставить isFeatureEnabled возвращать одинаковое значение для всех пользователей в одной организации? - PullRequest
1 голос
/ 28 июня 2019

Скажем, у меня есть продукт для малого бизнеса, который мы продаем организациям. Как я могу гарантировать, что все пользователи в одной организации получают одинаковый опыт?

Например, допустим, у меня есть следующие два пользователя (пользователь с идентификатором 123 и пользователь с идентификатором 456), которые принадлежат к одной организации (организация с идентификатором 789).

Вызов isFeatureEnabled('my_feature', userId) возвращает разные значения для разных пользователей.

Как мне обеспечить, чтобы пользователи 123 и 456 получали одинаковый опыт, поскольку они принадлежат к одной организации?

1 Ответ

2 голосов
/ 28 июня 2019

Есть несколько способов сделать это в зависимости от варианта использования.Полная подпись API isFeatureEnabled выглядит следующим образом:

isFeatureEnabled(feature_key, userId, attributes)

, где в целом:

isFeatureEnabled(
  'my_feature',               // feature key identifier linking feature to Optimizely UI
  '123',                      // userId parameter used as input to random bucketing
  { 'organizationId': '789' } // attributes used for non-random targeting
)

-

Вариант использования 1 : если вы хотите вручную выбрать один за другим, для какой организации будет включена эта функция, вам следует использовать таргетинг на аудиторию с помощью атрибутов.

Вы можете передать в качестве атрибута OrganizationId инастроить аудиторию для таргетинга на всех посетителей этой организации.

isFeatureEnabled('my_feature', '123', { organizationId: '789' } ); // User 123
isFeatureEnabled('my_feature', '456', { organizationId: '789' } ); // User 456

Инструкции по настройке атрибутов и аудиторий в пользовательском интерфейсе Optimizely для этого варианта использования приведены в этой статье документации .

Использование атрибутов и аудиторий позволяет вам включать или отключать функцию для конкретных организаций по одному.Тем не менее, этот подход не позволяет вам случайным образом откатиться до процента возможных организационных идентификаторов или выполнить A / B-тестирование случайной выборки организационных идентификаторов.

-

ИспользованиеСлучай 2 : Если вы хотите запустить развертывание на случайной выборке из OrganizationIds или запустить A / B-тест, в котором случайный набор организаций получает особый опыт, вы должны передать значение OrganizationId в качестве параметра userId API-интерфейсу isFeatureEnabled:

isFeatureEnabled('my_feature', '789'); // User 123
isFeatureEnabled('my_feature', '789'); // User 456

Параметр userId для isFeatureEnabled используется для случайного размещения пользователя.Поскольку userId может принимать любую строку, использование OrganizationId в этом случае гарантирует, что оба пользователя 123 и 456. будут объединены в один и тот же интерфейс.

-

Вариант использования 3 : если вы хотите иметь возможность выполнять A / B-тестирование в разных организациях, но при этом иметь возможность ориентироваться только на определенные организации, вам следует объединить методы двух указанных выше способов, как показано ниже:

isFeatureEnabled('my_feature', '789', { companyId: '789' } ); // User 123
isFeatureEnabled('my_feature', '789', { companyId: '789' } ); // User 456

Этот способ позволяет вам вручную (а не случайным образом) выбирать один за другим, какой клиент должен видеть опыт или иметь право на эксперимент, а также позволяет выполнять развертывание в произвольном порядке в разных организациях или запуск A / B-теста в разных организациях..

...