Github : https://github.com/TJHello/ABTest
Gitee: https://gitee.com/TJHello/ABTest
ABTest
一款簡單易用的ABTest開源庫
原理:通過給事件标簽,添加A,B字尾來統計ABTest結果。
1、相容友盟、Firebase,可同時打點。
2、支援線上配置ABTest。
3、支援統計留存。
4、支援統計使用時長。
使用步驟
Step1 接入自動內建插件到build.gradle(project)
buildscript {
repositories {
...
maven { url 'https://raw.githubusercontent.com/TJHello/publicLib/master'}
}
}
allprojects {
repositories {
...
maven { url 'https://raw.githubusercontent.com/TJHello/publicLib/master'}
}
}
Step2 配置build.gradle(app)
dependencies {
//需要另外接入友盟或者Firebase打點
implementation 'com.TJHello:ABTest:1.0.17'
}
Step3 配置Application
override fun onCreate() {
super.onCreate()
val isNew = true//自己判斷目前使用者是否是新使用者,如果一開始就接入了ABTest,可以寫成true。
ABTest.isDebug = true
//本地測試
ABTest.init(this, true)
.addTest(ABConfig().apply {//添加一項ABTest
this.name = "ABTestDemo"//測試名稱
this.ver = 0//AB測試版本,預設0,如果同一個測試不同版本,則修改這個數值
this.abVer = 10001//目前測試對應的應用版本号
this.data = mutableListOf("1","2")//支援任意多元度的資料
this.listenEvent = mutableListOf("ABTestDemoEvent")//需要納入AB的事件,留白則監聽所有事件
this.mergeEvent = false//合并事件(測試中)
this.mergeTag = true//合并标簽eg:data_A=value1,data_B=value2 -> data = value1_A,data = value2_B
this.onlyNew = true//僅将新增使用者納入測試結果
})
//通過Firebase-RemoteConfig線上配置ABTest(需要另外接入該庫)
ABTest.init(this, true)
RemoteConfig.init(){
if(it){
ABTest.addTestByRemoteConfig()
}
}
//通過自己的伺服器線上配置ABTest
ABTest.init(this, true)
ABTest.addTestByJsonConfig(xx)
ABTest.addTestByInfoConfig()
}
Step4 替換友盟打點
其餘友盟初始方法不變,替換友盟onEvent方法
//MobclickAgent.onEvent(context, eventId, map)
ABTest.getInstance().event(eventId,map)
日志檢視 tag : ABTestLog
打點效果
未接入ABTest前->
data |
---|
1 |
2 |
3 |
接入ABTest後->
data | data_Test_A | data_Test_B | data_Test_C | data_Test_D |
---|---|---|---|---|
1 | 1 | 1 | 1 | 1 |
2 | 2 | 2 | 2 | 2 |
3 | 3 | 3 | 3 | 3 |