设为首页 加入收藏

TOP

[UWP] 对应用进行A/B测试(一)
2017-10-11 16:07:02 】 浏览:1397
Tags:UWP 应用 进行 A/B 测试

【对A/B测试的看法】

开发者在Dev Center中设置几种应用变体,这几种变体有几个变量的值不一样,比如有变体A和变体B(当然还可以加上变体C,Dev Center最多支持5个变体),A和B的不同在于Button的颜色btnColor,A是Amber,B是Blue

这些值设置好之后,Dev Center通过设置的变体比例随机返回变体的变量值 ,比如变体A:变体B = 1:3,那么返回的btnColor值中Amber : Blue = 1:3

开发者根据这些值对应用做一些改变,不同的返回值对应不同的应用表现(比如界面的颜色,某个Button是否显示等等),开发者直接在应用内用随机数也可以粗浅的实现类似的效果,但Dev Center的A/B测试比应用内随机数强大太多了,比如可以方便的使用户在不同的变体间转化,还有日志功能

至于A/B测试的用途,让一小部分用户先用新功能,根据反馈数据决定是否全面上新版的用法我很喜欢,其他的自己搜吧

 

微软官方的例子是两种变体,差别在于Button的Content和背景色,用的事件有用户看到Button和点击Button,从这里就能看出一点A/B测试的用途了,用于判断哪种UI设计更优,然而本文的A/B测试并没有实际用途,只是我想试用一下这个新功能,做完后的效果应该是一半人看的到翻译按钮,一般人看不到翻译按钮

 

【进行A/B测试前置条件】

1.要测试的应用是UWP应用

2.设置好自己的开发机

 【Dev Center中创建一个实验】

首先进入Dev Center的仪表板,网页左边会列出你所有的应用,选择要进行A/B测试的应用,选中服务下的实验模块,先新建一个API密钥, 点击 新API密钥给这个密钥取个名字 ,然后点击API密钥上方的新实验

 

输入实验名称

下面的测试实验CheckBox 选中后 实验激活了之后还可以继续编辑,可以通过勾选这个来测试客户端是否真的获取到了变量的值 ,方法为将某一个变体的 分配 调整到100%然后观察程序的表现

但微软说这个应该只在内部测试的时候勾上

Note Check this box only if you are creating a test experiment to validate parameters through internal testing. Do not check this box if you are creating an experiment that you will release to customers.

snip_20160406220004

 

查看事件名称是用来向Dev Center写日志的,在这里的事件是 “用户看到翻译按钮”

  • 目标名称

   对测试目标的描述,比如我这里的Add Translate Button,这个之后会显示在【结果摘要】里

  • 转换事件名称

A conversion event is an arbitrary string that represents an objective for this goal. Your app code will send this conversion event string to Dev Center when the user reaches an objective

这里我的理解是,转换事件名称就代表一个目标,在程序中使用这个转换事件名称写Log时就代表这个目标完成了

  • 目标

最大化或最小化转换事件的发生,这个不太清楚是什么意思,原文提到每个用户24h只记录一次事件,那这个最大化或最小化有什么区别呢?

Note Dev Center reports only the first conversion event for each user view in a 24-hour time period. If a user triggers multiple conversion events in your app within a 24-hour period, only the first conversion event is reported. This is intended to help prevent a single user from skewing the experiment results for a sample group of users when the goal is to maximize the number of users who perform a conversion.

 

screenshot-developer.microsoft.com 2016-04-07 22-15-27

 

然后是变体和设置

这里设置了两个变体 一个是Translate,代表显示翻译按钮,另一个NoTranslate代表不显示翻译按钮。

下方的三个输入框 分别填 设置名(可以理解成变量名)  变体1该设置的值 变体2该设置的值

值可以填String、Integer、Double、Boolean类型的,在写代码的时候有对应的方法直接获取

snip_20160406215833

 

填完之后点保存,然后再点激活,Dev Center里的设置就完成了,下面开始敲代码

 

【应用内编写代码】

  1. 首先添加Microsoft Store Engagement SDK的引用
  2. 在项目的引用上右键单击 选择添加引用

snip_20160406222416

 

然后就可以敲代码了,这个很明显要在各个页面中使用,所以写成一个Helper类

LogTranslateViewed在页面加载的时候调用,LogTranslateClick在翻译按钮点击时调用

  1 public static class ExperimentHelper
  2     {
  3 
  4         #region const strings 
  5         private const string API_KEY = "Your Key Here";
  6 
  7         public const string TranslateButtonVisibility = "TranslateButtonVisibility";
  8 
  9         private const string UseTranslateButton = "useTranslateButton";
 10 
 11         private const string ViewEventName = "userViewedTranslateButton";
 12         #endregion
 13 
 14         private static ExperimentClient experimentClient;
 15 
 16         private static ExperimentVariation variation;
 17 
 18         private static ExperimentVariationResult result;
 19 
 20         static ExperimentHelper()
 21         {
 22             experimentClient = new ExperimentClient(API_KEY);
 23         }
 24          
 25         /// <summary>
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[UWP] 对应用进行A/B测试 下一篇[深入浅出Windows 10]QuickCharts..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目