比方说,我有一种小型企业产品,我们正在销售给组织。如何确保同一组织中的所有用户获得相同的体验?
例如,假设我有以下两个用户(ID为123的用户和ID为456的用户)属于同一组织(ID为789的组织)。
呼叫isFeatureEnabled('my_feature', userId)
为不同的用户返回不同的值。
由于用户123和456属于同一组织,因此如何确保他们获得相同的体验?
答案 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测试