基础集成

更新时间:
复制 MD 格式

基础集成

1. 域名设置

在预初始化方法调用之前,开发者需要在调用SDK任意其他API之前最先调用setTrackDomainAPI设置私有化环境的收数域名。

import { setTrackDomain } from '@quicktracking/analytics';

/**
* 设置上传统计日志的主域名和备用域名。
* SDK会优先将统计数据上报到主域名,失败的情况下会再尝试将数据上报到备用域名。
* 主域名primaryDomain或不能传入null或者空串,如果传入null或者空串,SDK会打印"收数域名不能为空,请检查域名设置!"异常日志。
* 备用域名可以传入null或者空串,此时SDK认为备用域名和主域名完全相同。SDK上传数据失败后第二次也会向主域名上报数据。
* 传入的域名参数应该包含"https://" 前缀。  
*/

function setTrackDomain(primaryDomain: string, standaryDomain?: string)

参数

含义

primaryDomain

上传日志的主收数域名地址

standaryDomain

上传日志的备用收数域名地址

备注:仅支持HTTP、HTTPS协议前缀,如果不指定协议前缀,默认为HTTPS协议发送

2. 合规初始化

初始化即代表开启统计功能,“延迟初始化”本质上就是统计功能的启用控制。由于工信部的合规要求,应用在用户同意隐私政策前不可以获取任何个人信息,因此QuickTracking鸿蒙NextSDK的初始化步骤分成 预初始化 初始化 两步,完成合规初始化需要进行以下操作:

  1. 您需要确保App有《隐私政策》,并且在用户首次启动App时就弹出《隐私政策》并取得用户同意。

  2. 您必须告知用户您选择QuickTrackingSDK采集服务,请在《隐私政策》中增加如下参考条款:“我们的产品集成QuickTracking SDK,QuickTracking SDK需要收集您的OAID/华为AAID/SIM卡 IMSI 信息/硬件序列号/MCC(移动国家编码)、MNC(移动网号)以提供统计分析服务。

  3. 用户同意隐私政策后才可以正式初始化QuickTracking SDK。

2.1. 预初始化API

调用SDK预初始化API,预初始化API调用不会采集设备信息,也不会向QuickTracking收数服务上报数据

2.1.1. API 说明

import { preInit } from '@quicktracking/analytics';

function preInit(cfg: UMConfig):void

2.1.2. 参数说明

参数

类型

含义

是否必填

context

common.ApplicationContext

应用环境上下文变量

appKey

string

应用唯一标识appKey,入参的appkey一定要与QT后台保持一致

appKey会跟随每一条事件日志进行上报,用于QT的应用平台数据区分标识

plugins

BasePlugin | BasePlugin[]

当前开启的插件

channel

string

应用发布的渠道,QT分析平台的“系统属性”中“升级渠道”的数据来源

enableLog

boolean

是否开启调试日志,默认值是false

enableJSBridge

boolean

是否开启H5桥接功能,默认值是false

enableAutoTrackApplication

boolean

是否开启自动采集应用生命周期,默认值是true

enableAutoTrackPage

boolean

是否开启自动采集页面,默认值是true

deviceManufacturer

string

自定义设备制造商

deviceBrand

string

自定义设备品牌

marketName

string

自定义市场名称

deviceName

string

自定义设备名称

hardwareModel

string

自定义硬件型号

CPU

string

自定义cpu类型

deviceType

string

自定义设备类型

screenResolution

string

自定义屏幕分辨率

OSVersion

string

自定义系统版本

AAID

string

自定义应用匿名标识符

ODID

string

自定义开发者匿名设备标识符

OAID

string

自定义开放匿名设备标识符

如果开发者希望针对上表中的某几个设备标识符采集行为做控制,如:不采集或自行实现采集方法。可以在预初始化preInit的时候进行自定义,如下示例:

 preInit({
      appKey: '您的AppKey'
      context: this.context.getApplicationContext(),
      enableJSBridge: true,
      enableAutoTrackApplication: true,
      enableAutoTrackPage: true,
      plugins: [new InternalPlugin()],
      customAAID: "",
      customODID: "自定义ODID",
      customOAID: "自定义OAID",
    });

注意:请谨慎决定是否实现对应方法,一旦您选择自己实现采集方法,此设备标识的采集工作就由你全权接管了,SDK不会再试图采集此设备标识。SDK能采集到的设备标识越少,对统计数据的准确性和稳定性的负面影响越大。

2.2. 初始化API init

用户同意隐私协议后,调用SDK初始化API,只有调用了init方法,才会开始日志的采集和传输。

2.2.1. API说明

import { init } from '@quicktracking/analytics';

function init():Promise<void>

2.3. 调用SDK初始化API

在应用模块目录下,添加abilityStage工程文件,例如:entry/src/main/ets/abilityStage/MyAbilityStage.ets,具体位置截图为

image

在模块的module.json5文件中添加srcEntry,指向abilityStage文件的地址

image

2.3.1. 完整调用示例

import AbilityStage from '@ohos.app.ability.AbilityStage';
import { preInit, InternalPlugin, setLogEnabled, init, setTrackDomain } from '@quicktracking/analytics';

setLogEnabled(true); //开启调试日志
setTrackDomain("主收数域名", "副收数域名"); //设置采集收数域名

export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    preInit({
      appKey: '您的AppKey'
      context: this.context.getApplicationContext(),
      enableJSBridge: true,
      enableAutoTrackApplication: true,
      enableAutoTrackPage: true,
      plugins: [new InternalPlugin()]
    });
    init();
  }
}

注意:!!!在适当位置(preInit方法调用之后),经用户授权同意隐私政策后调用init方法,才会开始日志的采集和传输。

3. 日志打印

可通过主动调用setLogEnable API 开启或关闭sdk日志信息

import { setLogEnabled } from '@quicktracking/analytics';

function setLogEnabled(enable: boolean):void

参数

含义

enable

是否开启sdk日志信息,默认不开启false

注意:

  • 如果查看初始化过程中的LOG,一定要在调用初始化方法之前将LOG开关打开

  • 日志分为三种等级

  • error 打印sdk集成或运行时的错误信息

  • warn 打印sdk的警告信息

  • info 打印sdk的提示信息