华为 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 路径下

cke_4923.png

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,添加签名文件。

cke_4924.png

生成签名文件以后,对应的应用级 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>为应用签名证书的完整路径,命令示例如下

cke_4925.png

6.2 将 SHA256 配置到 AGC 界面

cke_4926.png

二、集成华为分析

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

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的获取如下

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);
		}
	});
}
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

posted @ 2022-04-11 11:10  华为开发者论坛  阅读(590)  评论(0)    收藏  举报