目录

接入Analytics

分析服务提供基于您上报事件的分析数据模型。

分析数据模型采用了Event-Param-User模型来记录数据,通过不同的参数对事件进行描述,同时对用户的特征也进行了描述。

术语

名称

说明

Event

事件

描述一个用户在某个时间点、某个地方、以某种方式完成了某个具体的事情。包含who、when、where、how、what等关键要素。

Param

参数

事件上报的关联参数。如加入购物车事件中的商品名称参数,商品价格参数,支持后续的深入分析。

UserProfile

用户属性

用户的属性表,常见的用户属性有设备型号、应用版本、自定义的用户属性(如食品偏好)等。

Analytics Kit会收集AAID。AAID是应用匿名标识符,每个App在同一个设备上会分配不同的AAID。AAID用于连通华为提供的各项服务,例如分析服务和远程配置。

AAID在“用户清除浏览器数据”场景下会重置。

接入步骤

对于使用了模块捆绑器(如Browserify或webpack)的Web应用,可通过以下步骤来使用Analytics SDK。

  1. 导入并初始化SDK。
    1. 导入SDK。
      • npm方式:
        import agconnect from '@agconnect/api';
        import '@agconnect/instance';
        import '@hw-hmscore/analytics-web';
      • umd方式:

        在您的html文件中,通过以下方式引用SDK。

        <script src="./hw-hmscore-analytics-web-6.x.x-300.umd.js"></script>

        其中,6.x.x-300为引用的SDK的版本号,例如6.9.9-300。

    2. 初始化SDK。

      SDK初始化时会发送网络请求,请您务必在用户同意隐私协议后再初始化SDK。

      登录AppGallery Connect网站,选择“我的项目”,在项目中找到需要集成SDK的应用,然后切换到“项目设置”页面,拷贝agConnectConfig代码片段到您的代码工程的main.js中,并完成SDK的初始化。

      // TODO: 用您应用的配置替换下方代码
      const agConnectConfig = {
        // ...
      };
      // 配置agconnect实例
      agconnect.instance().configInstance(agConnectConfig);
      // 初始化分析实例
      let analytics = agconnect.analytics();
  2. 通过onEvent接口记录定义事件。

    事件的定义请参见自动采集事件、通用、自定义事件。

  3. 请参见API说明,调用接口实现各类功能。例如:设置用户属性setUserProfile。

示例代码

  1. 导入SDK。
    • npm方式:
      import agconnect from '@agconnect/api';
      import '@agconnect/instance';
      import '@hw-hmscore/analytics-web';
    • umd方式:
      <script src="./hw-hmscore-analytics-web-6.x.x-300.umd.js"></script>
  2. 初始化配置拷贝成功后,在“main.js”的入口初始化Analytics SDK,获得HiAnalytics的实例。若拷贝的内容不正确,则无法进行埋点。
    // TODO: 用您应用的配置替换下方代码
    const agConnectConfig = {
      // ...
    };
    // 配置agconnect实例
    agconnect.instance().configInstance(agConnectConfig);
    // 初始化分析实例
    let analytics = agconnect.analytics();
  3. 自定义事件埋点,在代码合适位置插入埋点代码。
    // 自定义事件埋点,在工程合适位置插入埋点代码
    let eventId = "Complete_Exam";
    let eventParams = {
      "Score": 95,
      "Level": "high"
    };
    analytics.onEvent(eventId, eventParams);
  4. 预置事件埋点,在代码合适位置插入埋点代码。
    // 预置事件埋点,在工程合适位置插入埋点代码
    let preDefineParams = agconnect.analytics.ParamName;
    let preDefineEvents = agconnect.analytics.EventName;
    let eventParams = {};
    eventParams[preDefineParams.PRODUCTID] = 'item_ID';
    eventParams[preDefineParams.PRODUCTNAME] = 'name';
    eventParams[preDefineParams.CATEGORY] =  'category';
    eventParams[preDefineParams.QUANTITY] =  100;
    eventParams[preDefineParams.PRICE] =  10.01;
    eventParams[preDefineParams.REVENUE] =  10;
    eventParams[preDefineParams.CURRNAME] =  'currency';
    eventParams[preDefineParams.PLACEID] =  'location_ID';
    analytics.onEvent(preDefineEvents.ADDPRODUCT2WISHLIST, eventParams);

查看实时概览数据

数据成功上报后,“华为分析 > 概览 > 实时概览”页面会展示出数据,如下图:

在AppGallery Connect网站查看上报数据,请参见实时概览。

接入调试

在开发过程中可以启用调试模式,实时查看事件的记录情况,观察具体结果并根据需要进行调整。

[h2]开启调试模式

在SDK初始化之前,添加以下代码以启用调试模式(切勿在生产环境使用调试模式)。

// 启用调试模式
agconnect.analytics.InitSettings.debugMode = true;
// 调试模式下,自定义终端标识
agconnect.analytics.InitSettings.terminalName = "custom terminal name";
// 初始化分析实例 
let analytics = agconnect.analytics();

调试模式打开后,所有事件将实时上报,在“华为分析 > 应用调试”界面可实时查看上报的数据如下图:

在AGC系统上查看数据,请参见应用调试。

禁用控制台日志打印

默认打印控制台日志,如果您想禁用日志打印功能,可以在SDK初始化之前添加如下启动配置项:

// 是否禁用日志打印
agconnect.analytics.InitSettings.logDisabled = true;
// 打印的最小日志级别,不区分大小写,支持的配置:INFO|WARN|ERROR
agconnect.analytics.InitSettings.logLevel = 'INFO';

配置URL聚类

Web SDK提供URL聚类的配置,您可以在SDK初始化之前添加如下启动配置项:

// 是否启用url聚类
 agconnect.analytics.UrlClusteringOptions.enabled= false;
// 是否移除协议
 agconnect.analytics.UrlClusteringOptions.removeProtocol= true;
// 是否移除协议、域名和端口
 agconnect.analytics.UrlClusteringOptions.removeOrigin= false;
// 是否移除全部参数
 agconnect.analytics.UrlClusteringOptions.removeAllParams= true;
// 是否移除指定参数
 agconnect.analytics.UrlClusteringOptions.removeParams= {
    // 默认处理方式,移除全部参数值,保留键名。 
     removeValuesOnly: true,
     params: {
        "key1": {
            // 是否只移除参数值,保留键名,覆盖外层的配置
            removeValuesOnly: false,
           // search|anchor|both  search表示锚点前的参数位置,anchor表示锚点后的参数位置,both表示锚点前的参数位置和锚点后的参数位置。
           position: 'both',
       }
     }
   };

// 是否移除锚点
 agconnect.analytics.UrlClusteringOptions.removeAnchor= true;
// URL模式,若传入的URL按照开关处理后满足任一模式,则上报该模式。URL模式可指定 {占位符名称} 格式的占位符,占位符匹配除urlSeparators外的所有字符。
 agconnect.analytics.UrlClusteringOptions.urlPatterns= [];
 agconnect.analytics.UrlClusteringOptions.urlSeparators= ':/.?=&#'

初始化SDK后,会存储退出页面事件EXITSCREEN。若您的url带有参数信息,事件缓存会记录退出页面事件的参数信息。建议您在SDK初始化之前启用url聚类,即将UrlClusteringOptions开关设置为true,启用后退出页面事件的参数信息将不会被记录。