1. 程式人生 > 其它 >華為 AGC - 推送通知類 AB 測試實戰指導

華為 AGC - 推送通知類 AB 測試實戰指導

華為 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 配置檔案

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測試操作文件

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-abtest-introduction-0000001058210679

2、華為Push SDK開發指南:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/android-app-quickstart-0000001071490422-V5

3、華為分析服務SDK 開發指南:

https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-dev-process-0000001050163813