• 华为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仓库地址:

    1. buildscript {
    2. repositories {
    3. maven { url 'https://developer.huawei.com/repo/'}
    4. }
    5. dependencies {
    6. classpath 'com.huawei.agconnect:agcp:1.5.2.300'
    7. }
    8. }
    9. allprojects {
    10. repositories {
    11. maven { url 'https://developer.huawei.com/repo/'}
    12. }
    13. }

    2、添加AGCP插件与agc配置文件

    1、在应用级build.gradle添加如下agcp插件

    apply plugin: 'com.huawei.agconnect'

    2、在AGC控制台的 我的项目 –> 项目设置 下,下载agconnect-services.json文件,将其下载到项目的app路径下

    cke_4923.png

    3、在应用级build.gradle添加SDK依赖

    1. dependencies {
    2. implementation 'com.huawei.hms:push:5.3.0.301'
    3. implementation 'com.huawei.hms:hianalytics:5.3.1.300'
    4. }

    4、在代码中申请Push Token

    如下为简单的Android代码,我只是在一个完全新建的Android工程中,添加了一个申请Token按钮。

    1. @Override
    2. protected void onCreate(Bundle savedInstanceState) {
    3. super.onCreate(savedInstanceState);
    4. setContentView(R.layout.activity_main);
    5. findViewById(R.id.button).setOnClickListener(view -> {
    6. getToken();
    7. });
    8. }
    9. private void getToken() {
    10. // 创建一个新线程
    11. new Thread() {
    12. @Override
    13. public void run() {
    14. try {
    15. // 从agconnect-service.json文件中读取appId
    16. String appId = "your_APPId";
    17. // 输入token标识"HCM"
    18. String tokenScope = "HCM";
    19. String token = HmsInstanceId.getInstance(MainActivity.this).getToken(appId, tokenScope);
    20. Log.i(TAG, "get token: " + token);
    21. // 判断token是否为空
    22. if(!TextUtils.isEmpty(token)) {
    23. sendRegTokenToServer(token);
    24. }
    25. } catch (ApiException e) {
    26. Log.e(TAG, "get token failed, " + e);
    27. }
    28. }
    29. }.start();
    30. }
    31. private void sendRegTokenToServer(String token) {
    32. Log.i(TAG, "sending token to server. token:" + token);
    33. }

    5、配置签名文件

    需要在应用的build.gradle文件中配置相应的签名文件,如果没有签名文件,可以手动生成一个,步骤如下:

    点击Build –> 选择Generate Signed Bundle or APK –> 选择APK –> 下一步选择Create New,添加签名文件。

    cke_4924.png

    生成签名文件以后,对应的应用级build.gradle文件的配置的相关配置如下:

    1. android {
    2. signingConfigs {
    3. config {
    4. // xxx替换为您自己的签名文件
    5. keyAlias 'xxx'
    6. keyPassword 'xxxx'
    7. storeFile file('xxx.jks')
    8. storePassword 'xxxx'
    9. }
    10. }
    11. buildTypes {
    12. debug {
    13. signingConfig signingConfigs.config
    14. }
    15. release {
    16. signingConfig signingConfigs.config
    17. minifyEnabled false
    18. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    19. }
    20. }
    21. }

    6、生成并且配置SHA256签名

    6.1 执行keytool命令

    keytool -list -v -keystore <keystore-file>,其中 <keystore-file>为应用签名证书的完整路径,命令示例如下

    cke_4925.png

    6.2 将SHA256配置到AGC界面

    cke_4926.png

    二、集成华为分析

    生成AB测试的报告,需要使用华为分析服务,因此需要在代码中集成华为分析SDK,由于AB测试事件属于华为分析的自动采集事件,因此华为分析的集成步骤非常简单:

    1、在应用级build.gradle添加SDK依赖

    1. dependencies {
    2. implementation 'com.huawei.hms:hianalytics:5.3.1.300'
    3. }

    2、在OnCreate中初始化华为分析

    1. HiAnalyticsTools.enableLog();
    2. HiAnalyticsInstance instance = HiAnalytics.getInstance(this);

    三、运行App,获取Push Token

    App运行与获取Push Token的相关日志如下

    cke_4927.png

    四、创建Push作为测试。

    在AGC界面,选择我的项目,在项目上选择推送服务 – 选择 添加推送通知;

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

    按要求随便查看一个Push测试,并且定向推动到指定设备,此时填入上一个步骤申请的Token。 点击提交以后,可以看到相应的测试效果。

    cke_4928.png

    五、创建AB测试。

    在AGC界面,选择我的项目 –> 选择 AB测试 – 右上角选择创建通知实验。

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

    cke_4929.png

    需要注意的是:

    • 当前实验目标用户只能选择 受众群组, 但是受众群组是来自于华为分析,并且该数据是每日计算,隔天生成。

    也就是说,今天选择的受众群组,只能覆盖到昨天的用户。所以要注意隔天进行测试。

    • 创建好的AB测试,可以通过最右侧的操作,选择 调测 来进行Push效果的调测。调测所使用的aaid的获取如下
      1. public void getAAID() {
      2. Task<AAIDResult> idResult = HmsInstanceId.getInstance(this).getAAID();
      3. idResult.addOnSuccessListener(new OnSuccessListener<AAIDResult>() {
      4. @Override
      5. public void onSuccess(AAIDResult aaidResult) {
      6. // 获取AAID方法成功
      7. String aaid = aaidResult.getId();
      8. Log.d(TAG, "getAAID successfully, aaid is " + aaid );
      9. }
      10. }).addOnFailureListener(new OnFailureListener() {
      11. @Override
      12. public void onFailure(Exception myException) {
      13. // 获取AAID失败
      14. Log.d(TAG, "getAAID failed, catch exceptio : " + myException);
      15. }
      16. });
      17. }

    cke_4930.png

    六、查看实验报告:

    对于已运行的实验,可以在右侧操作栏点击 报告 查看相应的AB测试数据报告,界面参考如下:

    cke_4931.png

    七、参考文档:

    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

  • 相关阅读:
    Ubuntu系统升级
    Redis Insight 版本 2.32 翻译中文
    C# 多态性
    使用OkHttp和Java来下载
    JDBC003--java中执行update修改数据表操作
    行列式学习笔记(一)
    No Monotone Triples
    spring框架Bean的作用域?对需要保持会话状态的bean应使用prototype作用域?为啥?
    Android集成其他应用的sdk(aar)如何实现application合并
    分组密码的模式
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/125439444