假设我有一个小型企业产品,我们正在向组织销售该产品。如何确保同一组织中的所有用户都能获得相同的体验?
例如,假设我有以下两个用户( id为123的用户和id为456的用户)属于同一组织( id为789的组织)。
调用isFeatureEnabled('my_feature', userId)会为不同的用户返回不同的值。
我如何确保用户123和456获得相同的体验,因为他们属于同一组织?
发布于 2019-06-29 04:56:22
根据用例的不同,有几种方法可以做到这一点。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 UI中为此用例设置属性和受众的说明,请参阅this documentation article。
通过使用属性和访问群体,您可以逐个启用或禁用特定组织的功能。但是,这种方法不允许您随机部署到可能的organizationIds的百分比,或者对随机抽样的organizationIds执行A/B测试。
--
用例2:如果您想对organizationIds的随机抽样运行rollout,或者运行A/B测试,其中随机的一组组织获得特定的体验,您应该将organizationId作为userId参数传递给isFeatureEnabled接口:
isFeatureEnabled('my_feature', '789'); // User 123
isFeatureEnabled('my_feature', '789'); // User 456isFeatureEnabled的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测试。
https://stackoverflow.com/questions/56813128
复制相似问题