天天看點

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

1、在應用級build.gradle添加如下agcp插件

apply plugin: 'com.huawei.agconnect'      

2、在AGC控制台的 我的項目 –> 項目設定 下,下載下傳agconnect-services.json檔案,将其下載下傳到項目的app路徑下

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

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,添加簽名檔案。

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

生成簽名檔案以後,對應的應用級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>為應用簽名證書的完整路徑,指令示例如下

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

6.2 将SHA256配置到AGC界面

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

二、內建華為分析

生成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的相關日志如下

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

四、建立Push作為測試。

在AGC界面,選擇我的項目,在項目上選擇推送服務 – 選擇 添加推送通知;

​​https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/​​

按要求随便檢視一個Push測試,并且定向推動到指定裝置,此時填入上一個步驟申請的Token。 點選送出以後,可以看到相應的測試效果。

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

五、建立AB測試。

在AGC界面,選擇我的項目 –> 選擇 AB測試 – 右上角選擇建立通知實驗。

​​https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/​​

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

需要注意的是:

  • 目前實驗目标使用者隻能選擇 閱聽人群組, 但是閱聽人群組是來自于華為分析,并且該資料是每日計算,隔天生成。

也就是說,今天選擇的閱聽人群組,隻能覆寫到昨天的使用者。是以要注意隔天進行測試。

  • 建立好的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);
    }
  });
}      
華為AGC-推送通知類AB測試實戰指導

六、檢視實驗報告:

對于已運作的實驗,可以在右側操作欄點選 報告 檢視相應的AB測試資料報告,界面參考如下:

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

七、參考文檔:

1、華為AGC AB測試操作文檔

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

2、華為Push SDK開發指南: