華為 AGC - 推送通知類 AB 測試實戰指導
華為 AppGallery Connect 服務,提供有 AB 測試功能,可以已經正常使用的 Push 通知或者遠端配置,建立對照試驗測試,用於對比不同方案的區別,可以幫助產品或者運營的同事,通過科學資料選擇最佳方案。
下面是在華為 AGC 平臺,從零開始使用推送通知類 AB 測試的實戰指導教程。如有不對的地方,還請多多指導。
一、整合 Push
首先,使用推送通知類 AB 測試之前,需要完成華為 Push 服務的整合,該步驟屬於前置條件,屬於必須整合的步驟。 部分同學的應用可能使用的是三方平臺提供的合一的 Push 服務,例如個推友盟極光等三方平臺,只要正確完成整合即可,對於該場景下的可以無需執行如下步驟。
下面介紹最簡單的,在 Android 平臺第一方整合華為 Push 的步驟,大家也可以直接參考華為 Push 的官方文件進行整合。
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 配置檔案
2.1 在應用級 build.gradle 新增如下 agcp 外掛
apply plugin: 'com.huawei.agconnect'
2.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測試操作文件
2、華為Push SDK開發指南:
3、華為分析服務SDK 開發指南: