简介

使用华为动态标签管理器Dynamic Tag Manager(DTM),您可以从Web界面快速、安全、轻松地部署及更新标签配置,配合Huawei Analytics强大的分析能力,实现基于数据驱动的运营。

您将会建立什么

在这个Codelab中,你将使用已经创建好的Demo Project实现对华为Dynamic Tag Manager开放服务的API调用,通过Demo Project你可以体验到:

您将会学到什么

硬件要求

软件要求

集成HUAWEI HMS Core能力,需要完成以下准备工作

确保已经完成高级分析服务的开通(开通步骤参见开发高级分析服务)。

针对AndroidStudio开发环境,华为提供了maven仓集成方式的HMS SDK包。在开始开发前,您需要将HMS SDK集成到您的AndroidStudio开发环境中。
远程maven仓集成SDK

在Android Studio开发环境中添加当前应用的AppGallery Connect配置文件。

1.登录AppGallery Connect网站,选择"我的应用"。
2.在名称列表中找到应用所在的产品,点击对应手机设备的"Android应用"链接。

3.选择"开发>概览"。
4.单击"应用"栏下的"agconnect-services.json"下载配置文件。

5.在Android Studio中,切换至Project视图,将从AppGallery Connect网站获取的agconnect-services.json文件移至Android应用模块app的根目录下。

在app模块gradle中添加插件配置和SDK的版本集成。

1、打开应用级的build.gradle文件

2、在"dependencies"中添加如下编译依赖,{version} 需要替换为实际的SDK版本号,如:implementation 'com.huawei.hms:hianalytics:4.0.0.300'implementation 'com.huawei.hms:dtm-api:4.0.1.300'

implementation 'com.huawei.hms:hianalytics:{version}' implementation 'com.huawei.hms:dtm-api:{version}'

配置混淆脚本

编译APK前需要配置不要混淆Huawei Analytics Kit和DTM,避免功能异常。

打开Android工程的混淆配置文件。

加入排除Analytics Kit和DTM的混淆配置。

-dontwarn com.huawei.hms.** -keep interface com.huawei.hms.analytics.type.HAEventType{*;} -keep interface com.huawei.hms.analytics.type.HAParamType{*;} -keep class com.huawei.hms.analytics.HiAnalyticsTools{ public static void enableLog(); public static void enableLog(int); } -keep class com.huawei.hms.analytics.HiAnalyticsInstance{*;} -keep class com.huawei.hms.analytics.HiAnalytics{*;} -keep class com.huawei.hms.feature.** { public *; } -keep public class com.huawei.hms.common.** { public *; } -keep class com.huawei.hms.analytics.internal.filter.EventFilter{ public void logFilteredEvent(java.lang.String, android.os.Bundle); public java.lang.String getUserProfile(java.lang.String); } -keep public class com.huawei.hms.dtm.EventFilter { public <fields>; public <methods>; }

如果开发者使用了AndResGuard,需要在混淆配置文件中加入AndResGuard白名单;若没有,可以跳过。

"R.string.hms*", "R.string.connect_server_fail_prompt_toast", "R.string.getting_message_fail_prompt_toast", "R.string.no_available_network_prompt_toast", "R.string.third_app_*", "R.string.upsdk_*", "R.layout.hms*", "R.layout.upsdk_*", "R.drawable.upsdk*", "R.color.upsdk*", "R.dimen.upsdk*", "R.style.upsdk*", "R.string.agc*"

点击"Sync now"或"Sync Project with Gradle Files",开始构建工程。如果出现错误,请检查网络连接是否正常,以及检查gradle文件是否正确。

动态标签管理

参见开发指南中的"服务端操作"章节登录动态标签管理页面,下文将以"华为分析"为例,对创建配置、创建变量、创建条件、创建代码、创建版本、发布版本等功能依次进行介绍。

创建配置

首次使用动态标签管理器服务,您首先需要为您的应用创建配置,在"配置管理"界面,点击"创建配置":

在对话框中填写配置名称,应用类型选择为"Android",操作记录选择为"6个月",点击"确定":

创建成功后,您可以在"配置管理"界面中查看到已创建的配置:

创建变量

在"配置管理"界面,点击已创建配置的名称进入配置界面,选择"变量管理"页签进入"变量管理"页面:

点击预设变量右侧的"配置"按钮,在"配置预设变量"的菜单列表中选中"Event Name",点击菜单底部的"确定":

点击自定义变量右侧的"新建"按钮,在"新建自定义变量"页面中填写变量名称,变量类型选择"事件参数",事件参数的键设置为"price"。配置完成后,点击页面顶部的"保存":

按照上述步骤,创建事件参数"currency":

然后,再创建事件参数"quantity":

创建成功后,您可以在"变量管理"页签中查看到已创建的变量:

创建条件

选择"条件管理"页签进入"条件管理"页面:

点击右侧的"新建"按钮,在"新建条件"页面中填写条件名称,条件类型选择"自定义",触发条件选择"部分事件",然后在条件变量一栏中选择"Event Name",匹配操作选择"等于",匹配值填写为"Purchase"。配置完成后,点击页面顶部的"保存":

创建成功后,您可以在"条件管理"页签中查看到已创建的条件:

创建代码

选择"代码管理"页签进入"代码管理"页面:

点击"新建"按钮,在"新建代码"页面中填写代码名称,事件类型选择"华为分析",操作选择"添加事件",设置事件名称为"HiPurchase",点击"添加"按钮,添加键名为"HiPrice"、"HiCurrency"、"HiQuantity"的三个属性,这三个属性的值依次引用事件参数变量"ep_price"、"ep_currency"、"ep_quantity"。

完成参数设置后,点击条件属性下的"添加"按钮,在弹出的"选择条件"界面中,选择"PurchaseEvents"作为代码触发条件:

配置完成后,点击"新建代码"页面顶部的"保存",完成代码创建。创建成功后,您可以在"代码管理"页签中查看到已创建的代码:

创建版本

选择"版本管理"页签进入"版本管理"页面:

点击右侧的"新建"按钮,在弹出的对话框中输入版本名称及版本描述,点击"确定":

创建成功后,您可以在"版本管理"页签中查看到已创建的版本:

发布版本

在"版本管理"页面中,点击已创建版本的版本名称,进入"版本详情"页面:

点击"发布"按钮,在弹出的对话框中确认版本信息准确无误后,点击"确定"。版本发布成功后,会在"版本详情"页面中展示发布者和发布时间信息:

下载版本

在"版本详情"页面中,点击"下载"按钮,将配置版本下载保存至本地,下载后配置文件默认命名为"DTM-*******.json"。

Demo实现

配置文件导入

创建目录src\main\assets\containers**,并将生成的配置文件:DTM-*****.json,添加到其中。如下图所示:

Activity界面

在Demo的MainActivity中实现以下流程:获得HiAnalyticsInstance实例、自定义事件、打点上报。具体实现如下:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); // 获得HiAnalyticsInstance实例 HiAnalyticsInstance instance = HiAnalytics.getInstance(this); HiAnalyticsTools.enableLog(); // 开发者自定义事件打点上报 // 自定义事件名称为"Purchase" String eventName = "Purchase"; // 自定义事件相关的字段 Bundle bundle = new Bundle(); bundle.putDouble("price", 999); bundle.putLong("quantity", 100L); bundle.putString("currency", "CNY"); // 进行事件上报 if (instance != null) { instance.onEvent(eventName, bundle); } }

展示上报事件

将编译生成的demo安装到手机上,并执行adb shell setprop debug.huawei.hms.analytics.app <packageName> 命令进入调试模式,打开apk即可完成事件上报。
在华为开发者平台注册该Demo应用->进入管理中心,打开应用市场->进入AGC分析平台->进入高级分析->进入应用调试->选择对应的调试手机设备,您将会在Huawei Analytics网站上看到上报的事件!
在Demo中上报了自定义打点事件"Purchase",同时由于在动态标签配置中设置的触发条件为

EventName="Purchase"

并且在"华为分析"代码中设置操作类型为"添加事件",因此该自定义打点事件会触发添加事件操作:即添加配置中名称设置为"HiPurchase"的事件,运行时,会将自定义事件中的"price"、"quantity"和"currency"对应的值赋值给HiPurchase的同名事件参数,因此在HA的分析界面中您将看到两个上报事件。

干得好,您已经成功完成了Codelab并学到了:

您可以阅读下面链接,了解更多相关的信息。

本Codelab中的demo源码下载地址如下:

源码下载

已复制代码