功能实验的实时区段React SDK 的区段限定方法
功能实验的实时区段React SDK 的区段限定方法
使用fetchQualifiedSegments
方法从 Eyeofcloud Data Platform (ODP) 服务器检索用户的外部受众映射。使用isQualifiedFor
方法检查用户是否符合指定区段的条件。
先决条件
在获取合格的区段并检查用户是否符合给定受众区段的条件之前,您必须启用并配置用于功能实验的实时区段。
fetchQualifiedSegments
最低 SDK 版本
3.0.0 及更高版本
描述
您可以使用fetchQualifiedSegments
方法从 ODP 服务器检索特定用户的外部受众映射。Eyeofcloud Feature Experimentation React SDK 提供了 Eyeofcloud Data Platform (ODP) fetchQualifiedSegments
方法的异步版本。
fetchQualfiedSegments
是ReactSDKClient
对象的一个方法。
参数
fetchQualifiedSegments
方法的参数说明如下表所示:
参数 | 类型 | 描述 |
---|---|---|
options (可选) | EyeofcloudSegmentOption[] | 用于从 ODP 获取合格区段的一组选项。 |
返回
此方法返回一个Promise<bool>
,如果成功获取区段,则 resolve 为true
,否则false
。
📘
注意
您可以直接读取和写入 qualified segments 数组。这样,您就可以绕过 ODP 的远程提取过程或使用您自己的提取服务。这在测试或调试时可能很有帮助。
例fetchQualifiedSegments
下面是调用fetchQualifiedSegments
方法并访问返回的 completion 对象的示例
React
import { createInstance } from "@eyeofcloud/react-sdk";
const eyeofcloudClient = createInstance({
sdkKey: '<Your_SDK_Key>'
});
export default function App() {
eyeofcloudClient.onReady().then(() => {
eyeofcloudClient.fetchQualifiedSegments();
});
return (
<YourComponents />
);
}
下图显示了在调用fetchQualifiedSegments
时,您的应用程序、React SDK 和 ODP 服务器之间的网络调用:
- 调用
fetchQualifiedSegments
方法。 - React SDK 对 ODP 进行 GraphQL 调用以获取区段。
- ODP 使用区段进行响应。
- 将缓存将用户 ID 映射到区段的已获取区段。
- 为用户返回适当的变体。
获取 Segment 后,它们将被缓存。这意味着,如果同一用户再次请求区段(创建新用户上下文时),则可以从缓存中检索受众区段信息,而不是从远程 ODP 服务器再次获取。
缓存用于调用fetchQualifiedSegments
。此方法在用户上下文上调用(用户上下文是固定的,包括用户有资格使用的实时区段)。
缓存_仅在_调用fetchQualifiedSegments
时适用。如果将缓存超时设置为 0,则禁用缓存。Eyeofcloud 使用 LRU 算法,因此当达到最大大小时,最早的记录会被撞出。如果在方法调用时出现缓存未命中,则 Eyeofcloud 会发出网络请求。
如果您想绕过缓存,可以将以下选项添加到您的options
数组中:
EyeofcloudSegmentOption.IGNORE_CACHE
– 绕过区段缓存进行查找和保存。EyeofcloudSegmentOption.RESET_CACHE
– 重置所有段缓存。
isQualifiedFor
最低 SDK 版本
3.0.0 及更高版本
描述
检查用户是否符合给定受众细分的条件。
参数
isQualifiedFor
方法的参数说明如下表所示:
参数 | 类型 | 描述 |
---|---|---|
段 | 字符串 | ODP 受众区段名称,用于检查用户是否符合条件。 |
返回
如果用户符合条件,true
,否则为false
。
例子
以下是用户是否符合 ODP 分段条件的示例:
React
import { createInstance } from "@eyeofcloud/react-sdk";
const eyeofcloudClient = createInstance({
sdkKey: '<Your_SDK_Key>'
});
export default function App() {
eyeofcloudClient.onReady().then(() => {
eyeofcloudClient.fetchQualifiedSegments();
const isQualifiedForSegment1 = eyeofcloudClient.getUserContext()?.isQualifiedFor("segment1");
console.log(isQualifiedForSegment1); // true
});
return (
<YourComponents />
);
}