1、<SDK>A/B Testing 支持哪些语言的 SDK?

目前共支持 13 种 SDK 集成。详见:技术对接指南

客户端SDK::Android、iOS/macOS、Web/h5/WAP、微信小程序、支付宝小程序、快应用

服务端SDK:Java、Golang、Php、C++、C#、Flutter、Python


2、<SDK>什么是 $ABTestTrigger

当一个用户命中试验进组后,AB-SDK 会上报 $ABTestTrigger 事件,标识该用户已经触发了试验。同时,$ABTestTrigger 也可作为事件筛选项,在神策分析各大分析模型(如事件分析、用户路径分析、LTV分析等)中使用。


3、<SDK>SDK 没有获取到分流结果或获取分流结果失败后,是否有重试机制?

SDK 有分流结果的缓存机制,缓存默认过期时间为 10 分钟。调用编程试验如果之前没有请求到分流结果,则每次都会重新发送分流请求。分流缓存与重试机制确保了分流服务的稳定。


4、<SDK>发布到期后,试验将自动终止运行,所有试验用户将执行代码兜底策略,这里兜底策略指的是发布规则中的默认策略吗?

不是,当一个试验结束后,app 通过 SDK 就再也拿不到该试验的分流结果,那么就会走代码中的兜底处理逻辑。


5、<SDK>服务端SDK应该如何设置Distinct ID参数?

对于注册用户,推荐使用客户业务系统中的用户 ID 作为 Distinct ID,不建议使用用户名、Email、手机号码等可以被修改的信息作为 Distinct ID,此时为登录ID,isLoginId参数为true. 使用登录ID调用API获取分流结果之前,请确保

已将登录ID与匿名ID关联,具体方式可参考用户注册/登录

对于未注册用户,Distinct ID为用户的匿名ID,此时isLoginId参数为false, 获取匿名ID的方法如下:

  1. 后端获取前端 JavaScript SDK 生成的匿名 ID 的方式:
    可以在 Cookie 里面找到 key 为 sensorsdata2015jssdkcross 的 value 值然后进行 decodeURIComponent 解码,最后通过 JSON.parse 方法得到一个对象,对象里面的 distinct_id 的值即为所需要的 ID
    (注意,如果前端已经调用过 login 方法,那么此时 distinct_id 为登录 ID,所以需要先获取 first_id 字段的值,如果获取不到,就去获取 distinct_id 的值)。
  2. 如果 App 中嵌入了  Login 方法,需要客户端使用神策提供的获取匿名 ID (anonymous_id) 接口,将匿名 ID 传给服务端,服务端使用客户端传过来的匿名 ID 作为 Distinct ID。方式如下:
    Android:Android SDK获取匿名ID
    iOS:iOS SDK获取匿名ID
    其他客户端SDK可参考该客户端神策分析SDK的集成文档。


6、<试验配置>最多能够同时跑多少试验?

在一个项目中,默认支持最多同时在线的试验数量为 20 个。如需增加最大在线试验数量,请与神策工作人员联系。


7、<试验配置>试验上线运行与试验发布有什么不同?

试验运行中和试验已发布是试验的两个不同状态,标识了试验进行中的不同阶段。当一个试验完成上线操作后,此试验状态会变更为运行中,即表示试验正式开始。在经过一段时间的 A/B 试验后,试验回收到优胜版本,此时通过将此试验发布,试验状态会变更为已发布,在产品正式发版前,可以快速将优胜版本发布到全量用户,扩大试验收益。发布计划


8、<调试设备>如何调试试验?

可以通过配置调试设备的方式来调试试验。详见:调试设备管理

试验发布前绑定的调试设备在仅”调试中“、”运行中“、”运行中(暂停)“状态下的试验中生效。在试验发布时配置的调试设备仅在”已发布“、”已发布(暂停)“状态下的试验中生效。

此外,命中调试设备白名单的用户只会命中分流,不会触发进组事件,因此不会对试验报告产生影响。


9、<指标管理>A/B Testing 支持哪些指标类型?

支持 7 种类型的指标,分为两个大类

检验类型指标:转化率、人均值、人均事件均值、人均事件比值、漏斗分析

业务类型指标:事件分析、留存分析

检验类型指标与业务类型指标的区别是检验类指标可以做统计学检验。


10、<指标管理>如何实现 AB 指标的复用?

可通过 A/B Testing 试验指标管理模块对一个项目中指标进行统一管理,包括指标的增删改查、复制以及查看指标日志等操作。详见:试验指标管理


11、<分流>如何保证用户分流结果的唯一性?例如不会发生这种情况:用户今天被分在对照组版本,明天又被分到了试验组版本中,发生了跳版本。

通过 AB 哈希分桶策略,当一个流量经过一个试验层时,只会把哈希分桶策略分配并匹配进一个桶内,从而确保用户分流结果的唯一性。


12、<分流>调整分组流量比例与命中试验的关系是什么?

调整试验分组的流量比例后,原本已经进组的用户保持原进组策略不变(不会出组跳组),新进用户会按照调整后的流量比例进行分流。


13、<分流>什么是流量互斥?什么是流量正交?

在一个项目中,处于同一实验层内的所有试验在流量分配上是互斥关系,处于不同层内的试验再流量分配上是正交关系。

例如:在一个项目中有试验层A、试验层B 两个试验层,其中试验层 A 中有两个试验 a1, a2,试验层 B 中有两个试验 b1, b2

当一个用户进来后,他可能命中的试验有且仅有以下 4 种情况组合:

a1 + b1 , a1 + b2, a2 + b1, a2 + b2


14、<试验报告>试验上线后多久可以查看数据报告?

试验流量报告、实时数据报告在试验上线后立即可以查看。试验总览、业务数据报告以及自定义报告在试验上线后第二日产出。


15、<试验报告>试验上线后,怎么能尽早发现试验无进组的情况?

试验上线后,可通过试验报告→试验流量来实时查看累计流量看板和进组用户列表,确认试验有无进组用户。