简介

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

您将建立什么

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

您将会学到什么

硬件要求

软件要求

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

具体操作,请按照《HUAWEI HMS Core集成准备》中详细说明来完成。

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

在Android Studio项目中集成SDK

针对Android Studio开发环境,华为提供了Maven仓集成方式的HMS Core SDK包。在开始开发前,您需要将HMS Core SDK集成到您的Android Studio项目中。
远程Maven仓集成SDK的操作步骤如下所示:
1. 在Android Studio开发环境中添加当前应用的AppGallery Connect配置文件

a)登录AppGallery Connect网站,单击"我的项目"。

b)在项目列表中找到您的项目,在项目中单击需要集成HMS Core SDK的应用。

c)在"项目设置 > 常规"页面的"应用"区域,点击"agconnect-services.json"下载配置文件。

d)将"agconnect-services.json"文件拷贝到应用级根目录下。

2. 在主工程gradle中添加Maven仓地址和agconnect服务依赖。

buildscript { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } dependencies { classpath 'com.huawei.agconnect:agcp:1.4.1.300' } } allprojects { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } }

3. 在app模块gradle中添加插件配置并集成SDK版本。
a)打开应用级的build.gradle文件。

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

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

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

配置混淆脚本

1. 若工程配置满足以下所有条件,则无需配置混淆脚本。

a)项目中集成的SDK版本号{version}不低于5.0.4.300。

b)工程目录下build.gradle文件中Android Studio的gradle插件版本不低于3.4.0,如:classpath 'com.android.tools.build:gradle:3.4.0'

c)未主动禁用R8代码混淆或在工程目录下gradle.properties文件中配置:android.enableR8=true。

2. 若工程配置不满足以上任一条件,编译APK前需要配置混淆脚本,避免Analytics Kit和DTM被混淆导致功能异常。

a)打开安卓工程的混淆配置文件。Android Studio开发环境里的配置文件是"proguard-rules.pro",Eclipse开发环境里的配置文件是"proguard-project.txt"。
b)加入排除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*"

Demo实现

创建配置

  1. 登录AppGallery Connect网站,点击"我的项目"图标。
  2. 选择需要查看的动态标签管理数据的应用。
  3. 点击"增长 > 动态标签管理"进入创建配置页面,创建配置需要您首先点击"开通分析服务"按钮,开通分析服务。
  4. 如果您已经开通分析服务,那么您可以直接点击"创建配置"按钮通过创建配置来设置配置名称,修改操作记录储存时间以及上报设置。

创建变量

  1. 在"变量管理"页面,点击配置按钮。
  2. 配置预设变量如:Event Name。

创建条件

  1. 在"条件管理"页面,点击"新建"按钮。
  2. 新建条件并保存。

创建代码

  1. 在"代码管理"页面,点击"新建"按钮。
  2. 新建代码配置,点击"保存"。

创建版本

  1. 在"版本管理"页面,点击"新建"按钮。
  2. 输入版本名称及版本描述创建版本,点击"确定"。

配置文件导入

  1. 在"版本管理"页面,点击对应版本名称,进入版本详情页面。
  2. 在"版本详情"页面,点击发布并确定。
  3. 点击"下载",将下载的"DTM-*******.json"添加到src\main\assets\containers\目录下。

上报自定义事件

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

展示上报事件

  1. 将编译生成的Demo安装到手机上,并执行adb shell setprop debug.huawei.hms.analytics.app <packageName> 命令进入调试模式,打开APK可完成事件上报。
  2. 登录AppGallery Connect网站,点击"我的项目"图标,选择需要查看分析数据的应用,点击"华为分析 > 应用调试"页面,您将会在HUAWEI Analytics网站上看到上报的事件。
    在Demo中上报了自定义打点事件"Purchase",同时由于在动态标签配置中设置的触发条件为"all_event",并且在"华为分析"代码中设置操作类型为"修改事件",因此该自定义打点事件会触发修改事件操作,并将创建代码中待添加/修改的参数"from_dtm"上报,因此在HA的分析界面中您将看到对应上报事件。

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

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

您可以单击下面的按钮下载源代码:

源码下载

已复制代码