A/B Testing SDK 依赖于神策分析微信小程序 SDK v1.14.7 及以上版本,在使用前请确保已经成功集成依赖于神策分析微信小程序 SDK,并进行了 SDK 初始化,详情可参考 SDK 集成 (微信小程序)。
集成和初始化 SDK
首先您需要集成神策分析微信小程序 SDK。在 A/B Testing 插件初始化时需要传入请求分流试验的地址,请联系运营人员获取(创建具体的试验后,可下载 SDK 说明文档/复制具体代码示例)。
同步引入方式:
- 数据接收地址( server_url )与分流试验请求地址( url )域名均需配置到微信公众平台--开发管理--开发设置--服务器域名-- requrest 合法域名中
A/B Testing SDK API
获取试验变量 API
初始化 SDK 之后,通过 API 获取具体试验的变量值,根据获取试验变量值的方式,可分为下面三种策略:
- fetchCacheABTest :读取本地缓存,缓存不存在时使用默认值
- asyncFetchABTest :忽略本地缓存,从服务端获取数据
- fastFetchABTest :优先读取本地缓存,缓存不存在时从服务端获取数据
如何确定应该选择哪个API获取试验变量值?
1.一般情况下,我们推荐使用fastFetchABTest获取试验变量值。
2.如果您对性能有要求,可以使用fetchCacheABTest, 只从本地缓存中获取变量值,但可能导致用户无法及时命中最新的试验。
3.如果您进行时间片轮转试验,且对时效性有要求,可以使用asyncFetchABTest 获取试验变量值,但会存在一定的网络延迟。
1. asyncFetchABTest 和 fastFetchABTest 接口会在主线程回调试验变量值,fetchCacheABTest 接口会在当前线程返回试验变量值
2. 请确保默认值 default_value 和当前试验值类型相同。比如参数对应试验值为 Int 类型,则传入的 default_value 也必须是 Int 类型,同时返回的试验结果 result 也是 Int 类型
以 fastFetchABTest 为例,可在相应的业务逻辑中添加如下代码:
携带自定义属性获取试验变量
v0.0.11 及以上版本 支持自定义属性扩充受众筛选能力,可以通过 API 添加自定义属性获取具体试验的变量值,根据获取试验变量值的方式,可分为下面 2 种策略:
- asyncFetchABTest :忽略本地缓存,从服务端获取数据
- fastFetchABTest :优先读取本地缓存,缓存不存在时从服务端获取数据
请确保对A/B分流返回的 result 结果 & 接口中使用的默认值,都做了正常的业务逻辑处理!
以 fastFetchABTest 为例,可在相应的业务逻辑中添加如下代码:
自定义属性值支持字符串、字符串数组、数值、布尔和日期时间格式,并且属性名支持英文、数字、下划线,且不能以数字开头。
获取设备主体试验变量
SDK支持使用设备主体进行分流。需要您在初始化SDK时,将匿名ID设置为公共属性。初始化并设置公共属性的具体方式如下:
后续可以使用
- fetchCacheABTest :读取本地缓存,缓存不存在时使用默认值
- asyncFetchABTest :忽略本地缓存,从服务端获取数据
- fastFetchABTest :优先读取本地缓存,缓存不存在时从服务端获取数据
三种方式同获取试验变量
使用示例
调试试验
可以通过录入调试设备的方式,把小程序用户加入调试设备;在试验调试状态下,会强制命中当前试验指定的分组(调试设备在调试状态和正式上线阶段都会生效)。
集成神策分析微信小程序 SDK 后,在开发者工具控制台中查看任意一条数据,可以获取当前用户的 distinct_id(设备ID)。在开发版及体验版中,通过手机打开控制台也可以通过类似方式获取到 distinct_id。
将此 distinct_id (设备ID)添加到调试设备中。