假设我有一个向组织销售的小型企业产品。如何确保同一组织中的所有用户获得相同的体验?
例如,假设我有以下两个用户(id 为 123 的用户和 id 为 456 的用户)属于同一个组织(id 为 789 的组织)。
调用isFeatureEnabled('my_feature', userId)
会为不同的用户返回不同的值。
我如何确保用户 123 和 456 获得相同的体验,因为他们属于同一个组织?
假设我有一个向组织销售的小型企业产品。如何确保同一组织中的所有用户获得相同的体验?
例如,假设我有以下两个用户(id 为 123 的用户和 id 为 456 的用户)属于同一个组织(id 为 789 的组织)。
调用isFeatureEnabled('my_feature', userId)
会为不同的用户返回不同的值。
我如何确保用户 123 和 456 获得相同的体验,因为他们属于同一个组织?
根据用例,有几种方法可以做到这一点。的完整 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 UI 中为此用例设置属性和受众的说明,请遵循此文档文章。
使用属性和受众,您可以为特定组织逐一启用或禁用功能。但是,这种方法不允许您随机推出一定百分比的可能组织 ID 或对组织 ID 的随机抽样进行 A/B 测试。
--
用例 2:如果您想对组织 ID 的随机抽样运行部署或运行 A/B 测试,其中一组随机组织获得特定体验,您应该将组织 ID 作为 userId 参数传递给 isFeatureEnabled API:
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 测试。