简介

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

您将建立什么

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

您将会学到什么

硬件要求

软件要求

需要的知识点

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

  1. 创建AppGallery Connect应用
  2. 创建Android Studio工程
  3. 添加应用包名并保存配置文件
  4. 配置Maven仓地址及AGC gradle插件
  5. 在Android Studio配置签名文件
具体操作,请按照《集成SDK》中详细说明来完成。

添加当前应用的AppGallery Connect配置文件

针对Android Studio开发环境,华为提供了Maven仓集成方式的HMS Core SDK包。在开始开发前,您需要将HMS Core SDK集成到您的Android Studio项目中。
远程Maven仓集成SDK的操作步骤如下所示:

  1. 登录AppGallery Connect网站,单击"我的项目"。
  2. 在项目列表中找到您的项目,在项目中单击需要集成HMS Core SDK的应用。
  3. 在"项目设置 > 常规"页面的"应用"区域,点击"agconnect-services.json"下载配置文件。
  4. 将"agconnect-services.json"文件拷贝到应用级根目录下。

配置HMS Core SDK的Maven仓地址

  1. 打开Android Studio项目级"build.gradle"文件。
  2. 添加HUAWEI agcp插件以及Maven代码库。
    • 在"buildscript > repositories"中配置HMS Core SDK的Maven仓地址。
    • 在"allprojects > repositories"中配置HMS Core SDK的Maven仓地址。
    • 如果App中添加了"agconnect-services.json"文件则需要在"buildscript > dependencies"中增加agcp配置。
      buildscript { repositories { google() jcenter() // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... // 增加agcp配置。 classpath 'com.huawei.agconnect:agcp:1.4.2.300' } } allprojects { repositories { google() jcenter() // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} } }

添加编译依赖

  1. 打开应用级的"build.gradle"文件。
  2. 在文件头apply plugin: ‘com.android.application'下一行添加如下配置。
    apply plugin: ‘com.huawei.agconnect'
  3. 在"dependencies"中添加如下编译依赖。
    implementation ‘com.huawei.hms:hianalytics:{version}'
    implementation ‘com.huawei.hms:dtm-api:{version}'

同步工程

在完成以上的配置后,点击工具栏中的gradle同步图标,完成"build.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) Gradle plugin 5.0以下版本,未主动禁用R8代码混淆或在工程目录下"gradle.properties"文件中配置:android.enableR8=true。Gradle plugin 5.0及以上版本,可以忽略该配置。
  2. 若工程配置不满足以上任一条件,编译APK前需要配置混淆脚本,避免Analytics Kit和DTM被混淆导致功能异常。
    a) Android Studio开发环境,在应用级根目录下打开混淆配置文件"proguard-rules.pro";Eclipse开发环境,在应用级根目录下打开混淆配置文件"proguard-project.txt"。
    b) 加入排除Analytics Kit和DTM的混淆配置。
    -ignorewarnings -keepattributes *Annotation* -keepattributes Exceptions -keepattributes InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable -keep class com.huawei.hianalytics.**{*;} -keep class com.huawei.updatesdk.**{*;} -keep class com.huawei.hms.**{*;} -keep public class androidx.recyclerview.widget.RecyclerView{ public ; } -keep public class androidx.recyclerview.widget.RecyclerView$LayoutManager{ public ; } -keep public class android.support.v7.widget.RecyclerView{ public ; } -keep public class android.support.v7.widget.RecyclerView$LayoutManager{ public ; }

    若开发者使用了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. 在弹出的"配置预设变量"页面中,选中待创建的预设变量,点击"确定"。

创建条件

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

创建代码

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

创建版本

  1. 在"版本管理"页面,点击"新建"按钮。
  2. 在"创建版本"页面输入版本名称和描述后,选择"创建版本"或"创建并发布此版本",点击"确定"。

发布版本

  1. 在"版本管理"页面,点击对应版本名称,进入版本详情页面。
  2. 在"版本详情"页面,点击"发布"并确定。

上报自定义事件

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

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获得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); } }

Kotlin示例代码

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val instance = HiAnalytics.getInstance(this) HiAnalyticsTools.enableLog() // 开发者自定义事件打点上报 // 自定义事件名称为"Purchase" val eventName = "Purchase" // 自定义事件相关的字段 val bundle = Bundle() bundle.apply { putDouble("price", 999.0) putLong("quantity", 100L) putString("currency", "CNY") } // 进行事件上报 instance.let { it.onEvent(eventName, bundle) } }

展示上报事件

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

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

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

相关文档
您可以单击下面的按钮下载源代码:

Android项目源码下载

Code copied