如何获取isFeatureEnabled为同一组织中的所有用户返回相同的值?

时间:2019-06-28 20:56:22

标签: optimizely

比方说,我有一种小型企业产品,我们正在销售给组织。如何确保同一组织中的所有用户获得相同的体验?

例如,假设我有以下两个用户(ID为123的用户和ID为456的用户)属于同一组织(ID为789的组织)。

呼叫isFeatureEnabled('my_feature', userId)为不同的用户返回不同的值。

由于用户123和456属于同一组织,因此如何确保他们获得相同的体验?

1 个答案:

答案 0 :(得分:2)

根据用例,有几种方法可以执行此操作。 isFeatureEnabled的完整API签名如下:

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 UI中设置属性和受众的说明,请遵循this documentation article

使用属性和受众群体,可以一对一地启用或禁用特定组织的功能。但是,这种方法不允许您随机部署一定百分比的可能组织ID,也不能对组织ID的随机样本进行A / B测试。

-

用例2 :如果您要对组织ID的随机样本进行推广或在随机组织获得特定经验的情况下进行A / B测试,则应以isFeatureEnabled API的userId参数:

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

isFeatureEnabled的userId参数用于随机存储用户。由于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测试