華為AppGallery Connect服務,提供有AB測試功能,可以已經正常使用的Push通知或者遠端配置,建立對照試驗測試,用于對比不同方案的差別,可以幫助産品或者營運的同僚,通過科學資料選擇最佳方案。
下面是在華為AGC平台,從零開始使用推送通知類AB測試的實戰指導教程。如有不對的地方,還請多多指導。
一、內建Push
首先,使用推送通知類AB測試之前,需要完成華為Push服務的內建,該步驟屬于前置條件,屬于必須內建的步驟。 部分同學的應用可能使用的是三方平台提供的合一的Push服務,例如個推友盟極光等三方平台,隻要正确完成內建即可,對于該場景下的可以無需執行如下步驟。
下面介紹最簡單的,在Android平台第一方內建華為Push的步驟,大家也可以直接參考華為Push的官方文檔進行內建。
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-app-quickstart-0000001071490422
1、在項目級的build.gradle中添加Maven倉庫位址:
buildscript {
repositories {
maven { url 'https://developer.huawei.com/repo/'}
}
dependencies {
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
}
}
allprojects {
repositories {
maven { url 'https://developer.huawei.com/repo/'}
}
}
2、添加AGCP插件與agc配置檔案
1、在應用級build.gradle添加如下agcp插件
apply plugin: 'com.huawei.agconnect'
2、在AGC控制台的 我的項目 –> 項目設定 下,下載下傳agconnect-services.json檔案,将其下載下傳到項目的app路徑下
3、在應用級build.gradle添加SDK依賴
dependencies {
implementation 'com.huawei.hms:push:5.3.0.301'
implementation 'com.huawei.hms:hianalytics:5.3.1.300'
}
4、在代碼中申請Push Token
如下為簡單的Android代碼,我隻是在一個完全建立的Android工程中,添加了一個申請Token按鈕。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(view -> {
getToken();
});
}
private void getToken() {
// 建立一個新線程
new Thread() {
@Override
public void run() {
try {
// 從agconnect-service.json檔案中讀取appId
String appId = "your_APPId";
// 輸入token辨別"HCM"
String tokenScope = "HCM";
String token = HmsInstanceId.getInstance(MainActivity.this).getToken(appId, tokenScope);
Log.i(TAG, "get token: " + token);
// 判斷token是否為空
if(!TextUtils.isEmpty(token)) {
sendRegTokenToServer(token);
}
} catch (ApiException e) {
Log.e(TAG, "get token failed, " + e);
}
}
}.start();
}
private void sendRegTokenToServer(String token) {
Log.i(TAG, "sending token to server. token:" + token);
}
5、配置簽名檔案
需要在應用的build.gradle檔案中配置相應的簽名檔案,如果沒有簽名檔案,可以手動生成一個,步驟如下:
點選Build –> 選擇Generate Signed Bundle or APK –> 選擇APK –> 下一步選擇Create New,添加簽名檔案。
生成簽名檔案以後,對應的應用級build.gradle檔案的配置的相關配置如下:
android {
signingConfigs {
config {
// xxx替換為您自己的簽名檔案
keyAlias 'xxx'
keyPassword 'xxxx'
storeFile file('xxx.jks')
storePassword 'xxxx'
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
}
release {
signingConfig signingConfigs.config
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
6、生成并且配置SHA256簽名
6.1 執行keytool指令
keytool -list -v -keystore <keystore-file>,其中 <keystore-file>為應用簽名證書的完整路徑,指令示例如下
6.2 将SHA256配置到AGC界面
二、內建華為分析
生成AB測試的報告,需要使用華為分析服務,是以需要在代碼中內建華為分析SDK,由于AB測試事件屬于華為分析的自動采集事件,是以華為分析的內建步驟非常簡單:
1、在應用級build.gradle添加SDK依賴
dependencies {
implementation 'com.huawei.hms:hianalytics:5.3.1.300'
}
2、在OnCreate中初始化華為分析
HiAnalyticsTools.enableLog();
HiAnalyticsInstance instance = HiAnalytics.getInstance(this);
三、運作App,擷取Push Token
App運作與擷取Push Token的相關日志如下
四、建立Push作為測試。
在AGC界面,選擇我的項目,在項目上選擇推送服務 – 選擇 添加推送通知;
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/
按要求随便檢視一個Push測試,并且定向推動到指定裝置,此時填入上一個步驟申請的Token。 點選送出以後,可以看到相應的測試效果。
五、建立AB測試。
在AGC界面,選擇我的項目 –> 選擇 AB測試 – 右上角選擇建立通知實驗。
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/
需要注意的是:
- 目前實驗目标使用者隻能選擇 閱聽人群組, 但是閱聽人群組是來自于華為分析,并且該資料是每日計算,隔天生成。
也就是說,今天選擇的閱聽人群組,隻能覆寫到昨天的使用者。是以要注意隔天進行測試。
- 建立好的AB測試,可以通過最右側的操作,選擇 調測 來進行Push效果的調測。調測所使用的aaid的擷取如下
public void getAAID() {
Task<AAIDResult> idResult = HmsInstanceId.getInstance(this).getAAID();
idResult.addOnSuccessListener(new OnSuccessListener<AAIDResult>() {
@Override
public void onSuccess(AAIDResult aaidResult) {
// 擷取AAID方法成功
String aaid = aaidResult.getId();
Log.d(TAG, "getAAID successfully, aaid is " + aaid );
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception myException) {
// 擷取AAID失敗
Log.d(TAG, "getAAID failed, catch exceptio : " + myException);
}
});
}
六、檢視實驗報告:
對于已運作的實驗,可以在右側操作欄點選 報告 檢視相應的AB測試資料報告,界面參考如下:
七、參考文檔:
1、華為AGC AB測試操作文檔
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-abtest-introduction-0000001058210679
2、華為Push SDK開發指南: