帮助文档
  • What's new
  • 增长平台全景图
  • 文档使用指南
  • 产品简介
    • 产品概述
    • 数据模型
      • 用户模型
        • 访问用户
        • 登录用户
        • 用户属性
      • 事件模型
        • 什么是事件
        • 无埋点事件
          • 概述
          • 访问事件及变量
          • 页面事件及变量
          • 元素事件及变量
        • 埋点事件
      • 统计模型
        • 指标-事件的度量
        • 维度-事件的属性
        • 预定义指标
        • 预定义维度
    • 数据定义
      • 用户变量
        • 登录用户变量
        • 访问用户变量
      • 页面级变量
      • 埋点事件及变量
        • 埋点事件和事件级变量
        • 转化变量
    • 数据安全
  • 开发者文档
    • SDK 集成
      • SDK 简介
      • 合规指南
        • Android SDK合规说明
        • iOS SDK合规说明
        • HarmonyOS SDK合规说明
        • Web JS SDK 合规说明
        • 小程序 SDK 合规说明
      • SDK 使用流程
      • Web JS SDK
        • Web JS SDK 更新日志
        • 概述
        • 集成最新SDK
        • SDK 版本1.x升级2.x指导
        • Web JS SDK API
          • API 2.x
        • Web半自动采集浏览事件
        • 常见问题
          • 为什么网站要允许iframe加载?
          • 为什么网站不能复写 window 对象?
          • 页面内部嵌入的 iframe 元素如何加载 SDK?
          • 同时集成了web sdk 和 hybrid sdk 会怎么处理?
          • 同时集成了web sdk 1.x 和web sdk 2.x会怎么处理?
          • 元素没有元素浏览量怎么处理?
          • display:none 的元素,其子元素中的a/button只采集一次浏览量,想每次曝光都采集怎么处理?
          • 设置了 growing-ignore 之后,其子元素也不采集怎么处理?
      • 原生 Android SDK
        • Android SDK更新日志
        • 无埋点 SDK 集成
        • 埋点 SDK 集成
        • Android SDK API
          • Gradle配置API
          • 初始化配置项API
          • 运行时API
          • 自定义数据上传API
        • Android半自动采集浏览事件
        • 1.x Android SDK 升级指导
        • 常见问题
          • 无埋点数据采集问题
          • 无埋点SDK中埋点API使用问题
          • SDK性能问题
          • 圈选问题
          • Gradle 常见问题
          • App内嵌H5页面常见问题
      • 原生 iOS SDK
        • iOS SDK 更新日志
        • 无埋点 SDK集成
        • 埋点 SDK集成
        • iOS SDK API
          • 初始化配置项API
          • 埋点SDK支持的其他接口
          • 动态添加属性说明
          • 自定义数据上传API
        • iOS半自动采集浏览事件
        • iOS SDK升级指导
        • 常见问题
        • 用户运营iOS SDK地址
      • 移动端第三方框架 SDK
        • React Native无埋点SDK
        • React Native埋点SDK
        • Flutter埋点SDK
        • Cordova埋点SDK
        • Weex埋点SDK
        • API Cloud埋点SDK
        • AppCan埋点SDK
        • uniapp 埋点SDK
        • Unity 埋点 SDK
        • 鸿蒙原生埋点 SDK
      • 小程序 SDK
        • 3.7及以下
          • 更新日志
          • 集成
            • 微信小程序
            • 支付宝小程序
            • 百度小程序
            • QQ小程序
            • 字节跳动小程序
            • 快应用
          • 数据采集API
          • 无埋点采集逻辑和高级配置
        • 3.8
          • 更新日志
          • 集成
            • 微信小程序
            • 阿里(支付宝)小程序
            • 百度小程序
            • 字节(抖音头条)小程序
            • QQ小程序
            • 快应用
          • 初始化配置
          • 数据采集API
          • 无埋点采集逻辑和高级配置
          • 旧版本与3.8对比
          • 旧版本升级到3.8
      • Hybrid JS SDK
      • 小程序和微信公众号H5 内嵌页 SDK
        • 更新日志
      • 微信小游戏 SDK
        • 更新日志
      • 服务端埋点SDK
        • Java埋点SDK
        • PHP埋点SDK
        • 常见问题
      • 仅集成埋点SDK的Hybrid JS SDK
    • SDK调试
      • 概述
      • Web Debugger
      • Mobile Debugger
      • 小程序&内嵌页Debugger
      • 验证埋点事件
        • 概述
        • 对 cstm(事件以及关联的事件级变量)上报进行验证
        • 对 pvar(页面级变量)进行验证
        • 对 evar(转化变量)进行验证
        • 对 ppl(用户变量)上报验证
    • API参考
      • 公共请求参数
      • 原始数据导出API V2
        • 概述
        • 事件表字段说明
          • 事件表关联
          • 无埋点事件字段
          • 埋点事件与变量字段
          • 广告相关字段
        • 接口定义
          • 获取不同类型原始数据下载链接
          • 获取全部事件类型原始数据的下载链接
        • 升级说明
        • 导出数据处理建议
      • 原始数据导出API V1
        • 概述
        • 字段说明
          • 事件类型
          • 无埋点事件字段
          • 埋点事件与变量字段
          • 广告相关字段
        • 接口定义
          • 获取原始数据下载链接
          • 来源管理数据导出 -- [接口下线 2020.11.02]
        • 导出数据处理建议
      • 统计数据导出API V3
        • V3接口概述
        • 接口定义
          • 获取事件分析数据
          • 获取漏斗分析数据
          • 获取留存分析数据
          • 获取分布分析数据
          • 获取用户分群的下载链接
          • 获取用户标签的下载链接
      • 统计数据导出API
        • 概述
        • 接口定义
          • 获取看板列表
          • 获取看板中的图表信息
          • 获取事件分析数据
          • 获取漏斗分析数据
          • 获取留存分析数据
          • 获取分群列表
          • 获取特定分群的用户列表
          • 获取圈选元素定义
      • 用户分群更新API
      • 广告监测链接创建API
        • 概述
        • 接口定义
          • 查询应用ID
          • 新建推广活动
          • 查询推广活动ID
          • 新建推广渠道
          • 查询推广渠道ID
          • 新建监测链接(吸引用户直接打开App)
          • 查询监测链接(吸引用户直接打开App)
          • 新建监测链接(增加APP下载量-同时推广iOS和Android)
          • 查询监测链接(增加APP下载量-同时推广iOS和Android)
          • 新建监测链接(增加App下载量-推广iOS或Android单个平台)
          • 查询监测链接(增加App下载量-推广iOS或Android单个平台)
          • 新建监测链接(推广网页)
          • 查询监测链接(推广网页)
          • 新建监测链接(微信小程序)
          • 查询监测链接(微信小程序)
      • 埋点数据上传API
      • 登录用户变量上传API
        • 登录用户变量上传
        • 维度分类上传
        • 既有登录用户ID上传
        • (旧)接口定义
          • 用户变量上传
          • 维度分类上传
      • 项目管理API
        • 概述
        • 从项目内移除成员
        • 获取埋点事件列表
        • 创建埋点事件
        • 更新埋点事件
        • 删除埋点事件
        • 获取事件级变量
        • 创建事件级变量
        • 获取页面级变量
        • 创建页面级变量
        • 获取登录用户变量
        • 创建登录用户变量
        • 获取访问用户变量
        • 获取埋点数量限额
      • 数据管理API(GDPR)
        • 数据保护
        • 删除原始数据
  • 产品使用文档
    • 产品分析
      • 数据监测
        • 概览
        • 实时
        • 分析看板
        • KPI看板
        • 小程序看数助手
      • 分析工具
        • 事件分析
          • 什么是事件分析
          • 创建事件分析
          • 视图介绍
        • 漏斗分析
          • 什么是漏斗分析
          • 创建漏斗分析
          • 漏斗分析结果解读
          • 案例解读
        • 留存分析
          • 什么是留存分析
          • 创建留存分析
          • 留存分析结果解读
          • 视图介绍
          • 应用场景
          • 常见问题
        • 分布分析
          • 什么是分布分析
          • 使用场景
          • 创建分布分析
        • 热图分析
          • 什么是热图分析
          • Web端热图
          • App热图
        • 事件流分析
      • 业务场景
        • 分享分析
        • 留存魔法师
    • 智能运营
    • 获客分析
      • 首页
        • 应用级数据
        • 数据指标说明
      • 分析
        • 渠道价值分析
        • 渠道归因分析
        • 落地页分析
        • 活动页分析
      • 获客追踪
        • 监测链接
          • 推广App
          • 推广网页
          • 推广小程序(微信)
            • 推广链接的投放和设置指南
            • 小程序码管理
        • 深度链接
        • 结合产品数据深度分析
      • 产品配置
        • 广告活动管理
        • 推广渠道管理
        • 深度链接配置
        • 广告数据权限控制
        • 日志数据导出
        • 维度配置(链接扩展维度)
        • 归因配置
      • 渠道配置指南
        • 苹果广告投放
        • 华为应用商oCPD
        • HUAWEI Ads
        • 腾讯社交广告(Marking API)
        • 今日头条(巨量纵横)
        • 百度原生信息流
        • 百度搜索_ocpc
        • 微信广告平台
        • 微博超级粉丝通
        • 爱奇艺
        • InMobi
        • 快手平台
        • 凤羽广告平台
        • bilibili(B站)
        • VIVO营销平台
      • 相关知识
        • UTM参数使用指南
        • 移动端转化归因
        • 默认的渠道来源跟踪
        • DeepLink启用新域名
      • 常见问题
    • 用户库
      • 用户分群
        • 用户分群
          • 什么是用户分群
          • 创建用户分群
            • 规则分群
          • 更新用户分群
          • 查看分群详情页
          • 常见问题
        • 用户细查
          • 什么是用户细查
          • 细查用户
          • 应用场景
          • 常见问题
      • 用户标签 - Beta
        • 创建标签
        • 标签模型使用
          • 基础指标值
          • 最大值 / 最小值
          • 最初 / 最终
          • 分层标签
      • 用戶分析
        • 活跃用户分析
          • 什么是活跃用户分析
          • 分析活跃用户
      • 业务场景
        • 微信应用用户分析
    • 数据中心
      • 数据管理
        • 无埋点事件
          • 概述
          • Web端数据定义
            • Web圈选
            • Chrome插件圈选
            • Chrome插件安装步骤
          • App端数据定义
          • App端数据定义(App圈选)
          • 小程序数据定义
          • 微信内嵌页数据定义
        • 埋点事件
        • 事件级变量
        • 页面级变量
        • 用户变量
          • 登录用户变量
          • 访问用戶变量
        • 转化变量
        • 业务标签管理
        • 批量操作
        • 自定义指标管理
          • 计算指标
          • 合并事件
        • 预定义维度
        • 预定义指标
      • 数据规划
        • 电商行业数据规划
      • 数据校验
        • 移动端数据校验
        • 小程序数据校验
        • Mobile Debugger
        • Web Debugger
      • 数据集成
        • 微信公众号集成
    • 项目管理
      • 如何进入项目管理?
      • 项目概览
      • 应用管理
      • 成员管理
      • 角色管理
        • 典型角色应用场景
        • 系统角色功能权限列表
      • 小组管理
      • 数据权限
      • 项目配置
        • IP及域名数据过滤
        • 爬虫预防
        • UTM映射管理
        • API Token管理
        • 获取项目UID
    • 组织管理
      • 组织概览
      • 组织项目
      • 组织成员
      • 费用中心(计费方案)
    • 个人中心
      • 个人信息
      • 安全设置
    • 学习平台
    • 工单管理
      • 提交工单
      • 查看进度
      • 邀请技术支持
    • 术语解释
  • 常见问题与解决
    • 基本问题
    • SDK集成
    • 圈选问题
    • 指标和维度
    • 数据安全
    • 产品使用
    • 数据统计差异
    • 如何删除不要的项目?
    • 为何收不到GIO的邮件?
    • 无效指标清理说明
    • 产品维护计划通告
由 GitBook 提供支持
在本页
  • SDK 简介
  • 准备条件
  • 集成文档
  • 通过 ohpm 中心仓集成
  • 通过本地 har 集成
  • 配置权限
  • 初始化
  • 数据采集 API
  • Hybrid 打通

这有帮助吗?

  1. 开发者文档
  2. SDK 集成
  3. 移动端第三方框架 SDK

鸿蒙原生埋点 SDK

上一页Unity 埋点 SDK下一页小程序 SDK

最后更新于9个月前

这有帮助吗?

SDK 简介

GrowingIO OpenHarmony/HarmonyOS SDK 自动采集用户访问事件,并支持手动调用相应埋点 APIs 采集埋点事件。

  • 支持 HarmonyOS 4.0.0 - HarmonyOS NEXT

  • 支持 OpenHarmony API Level 10 - 12

准备条件

获取项目ID,获取方法请参考"项目管理 > 项目概览 > "。

集成文档

通过 ohpm 中心仓集成

ohpm install @growingio/analytics

通过本地 har 集成

或者,您也可以通过本地 har 集成 首先请联系您的专属项目经理或技术支持,获取最新 SDK har 静态共享包下载地址并下载,再执行以下命令:

ohpm install <您所下载的 har 文件路径>

配置权限

在 module.json5 中配置所需权限:

"requestPermissions": [
  {
    "name": "ohos.permission.INTERNET"
  },
  {
    "name": "ohos.permission.GET_NETWORK_INFO"
  }
]

初始化

在 AbilityStage 的 onCreate 方法中初始化 SDK (Stage 模型):

import AbilityStage from '@ohos.app.ability.AbilityStage'
import type Want from '@ohos.app.ability.Want'
import { GrowingAnalytics, GrowingConfig } from '@growingio/analytics'

// Entry类型的module对应配置的srcEntry
export default class MyAbilityStage extends AbilityStage {
  onCreate(): void {
    // 应用的HAP在首次加载的时,为该Module初始化操作
    this.startAnalytics()
  }
  onAcceptWant(want: Want): string {
    // 仅specified模式下触发
    return 'MyAbilityStage'
  }

  async startAnalytics() {
    let config = new GrowingConfig().SaaS(
      'Your AccountId',
      'Your UrlScheme'
    )
    await GrowingAnalytics.start(this.context, config)
  }
}

注意:如若需要,可在用户同意隐私协议之后,再进行初始化 SDK

其他初始化配置项见下表,在 start 方法调用前通过config.<配置项> = 对应值进行配置:

配置项
参数类型
默认值
说明

accountId

string

-

项目 ID (AccountID),每个应用对应唯一值

urlScheme

string

-

自定义 URL Scheme

dataCollectionServerHost

string

-

服务端部署后的 ServerHost,默认值为 https://api.growingio.com

debugEnabled

boolean

false

调试模式,开启后会输出 SDK 日志,在线上环境请关闭

sessionInterval

number

30

设置会话后台留存时长,指当前会话在应用进入后台后的最大留存时间,默认为 30 秒。另外,其他情况下也会重新生成一个新的会话,如设置用户 ID 等核心信息,重新打开数据收集等

dataUploadInterval

number

15

数据发送的间隔,默认为 15 秒。SDK 会先将事件存入数据库中,然后以每隔默认时间 15 秒向服务器发送事件包

dataCollectionEnabled

boolean

true

数据收集,当数据收集关闭时,SDK 将不会再产生事件和上报事件

requestOptions.connectTimeout

number

30

事件请求尝试建立连接的最大等待时间,默认为 30 秒

requestOptions.readTimeout

number

30

事件请求读取服务器响应的最大等待时间,默认为 30 秒

dataValidityPeriod

number

7

本地未上报的事件数据有效时长,默认为 7 天

encryptEnabled

boolean

true

事件请求是否开启加密传输,加密上报时,不会明文显示

compressEnabled

boolean

true

事件请求是否开启压缩传输 (snappy)

数据采集 API

初始化是否成功

static isInitializedSuccessfully(): boolean

返回是否初始化成功

let success = GrowingAnalytics.isInitializedSuccessfully()

数据采集开关

static setDataCollectionEnabled(enabled: boolean)

打开或关闭数据采集

GrowingAnalytics.setDataCollectionEnabled(true)

设置登录用户 ID

static setLoginUserId(userId: string)

当用户登录之后调用,设置登录用户 ID 如果您的 App 每次用户升级版本时无需重新登录的话,为防止用户本地缓存被清除导致的无法被识别为登录用户,建议在用户每次升级 App 版本后初次访问时重新调用 setLoginUserId 方法

参数说明

参数
参数类型
说明

userId

string

长度限制大于 0 且小于等于 1000

示例

GrowingAnalytics.setLoginUserId('user')

清除登录用户 ID

static cleanLoginUserId()

当用户登出之后调用,清除已经设置的登录用户ID

GrowingAnalytics.cleanLoginUserId()

设置用户的地理位置

static setLocation(latitude: number, longitude: number)

设置用户当前的地理位置,基于WGS-84坐标

参数说明

参数
参数类型
说明

latitude

number

地理坐标点纬度

longitude

number

地理坐标点经度

示例

const latitude: number = 30.0
const longitude: number = 120.0
GrowingAnalytics.setLocation(latitude, longitude)

清除用户的地理位置

static cleanLocation()

清除用户当前的地理位置

GrowingAnalytics.cleanLocation()

设置埋点事件

static track(eventName: string, attributes: { [key: string]: string | number | boolean | string[] | number[] | boolean[] } = {})

发送一个埋点事件;注意:在添加发送的埋点事件代码之前,需在分析云平台事件管理界面创建埋点事件以及关联事件属性

参数说明

参数
参数类型
说明

eventName

string

事件名,事件标识符

attributes

{ [key: string]: string | number | boolean | string[] | number[] | boolean[] }

事件发生时所伴随的属性信息;当事件属性关联有维度表时,属性值为对应的维度表模型 ID(记录 ID)(可选)

示例

GrowingAnalytics.track('buyProduct1')

GrowingAnalytics.track('buyProduct2', {
  'name': 'apple',
  'money': 1000,
  'num': 100,
  'from': ['sichuan', 'guizhou', 'hunan']
})

事件计时器

static async trackTimerStart(eventName: string): Promise<string>

初始化一个事件计时器,参数为计时事件的事件名称,返回值为该事件计时器唯一标识

static async trackTimerPause(timerId: string)

暂停事件计时器,参数为 trackTimer 返回的唯一标识

static async trackTimerResume(timerId: string)

恢复事件计时器,参数为 trackTimer 返回的唯一标识

static async trackTimerEnd(timerId: string, attributes: { [key: string]: string | number | boolean | string[] | number[] | boolean[] } = {})

停止事件计时器,参数为 trackTimer 返回的唯一标识。调用该接口会自动触发删除定时器。

static removeTimer(timerId: string)

删除事件计时器,参数为 trackTimer 返回的唯一标识。 该接口会将标识为 timerId 的计时器置为空。调用停止计时器接口,会自动触发该接口。注意移除时不论计时器处于什么状态,都不会发送事件。

static clearTrackTimer()

清除所有已经注册的事件计时器。 存在所有计时器需要清除时调用。注意移除时不论计时器处于什么状态,都不会发送事件。

参数说明

参数
参数类型
说明

eventName

string

事件名,事件标识符

attributes

{ [key: string]: string | number | boolean | string[] | number[] | boolean[] }

事件发生时所伴随的属性信息;当事件属性关联有维度表时,属性值为对应的维度表模型 ID(记录 ID)(可选)

timerId

string

计时器唯一标识符,由trackTimerStart返回

示例

let timerId = await GrowingAnalytics.trackTimerStart('eventName')
GrowingAnalytics.trackTimerPause(timerId)
GrowingAnalytics.trackTimerResume(timerId)
GrowingAnalytics.trackTimerEnd(timerId)
GrowingAnalytics.trackTimerEnd(timerId, {
  'property': 'value',
  'property2': 100
})
GrowingAnalytics.removeTimer(timerId)
GrowingAnalytics.clearTrackTimer()

注意:

endTimer 时发送 CUSTOM 事件上报数据:

  • eventName 埋点事件标识符(trackTimerStart 传入)

  • attributes 用户自定义事件属性(trackTimerEnd 传入)

  • event_duration 事件时长 (SDK 内部根据 timerId 自动计算获取 ) > event_duration 按照秒上报,小数点精度保证到毫秒 > event_duration 变量及其值会自动添加在 attributes 中 > event_duration 时间统计不会计算后台时间

  • eventName 对应的埋点事件需要在平台中绑定标识符为 event_duration, 且类型为小数的事件属性

设置登录用户属性

static setLoginUserAttributes(attributes: { [key: string]: string | number | boolean | string[] | number[] | boolean[] })

以登录用户的身份定义登录用户属性,用于用户信息相关分析

参数说明

参数
参数类型
说明

attributes

{ [key: string]: string | number | boolean | string[] | number[] | boolean[] }

用户属性信息

示例

GrowingAnalytics.setLoginUserAttributes({
  'name': 'ben',
  'age': 30
})

获取设备 ID

static getDeviceId(): string

获取设备 id,又称为匿名用户 id,SDK 自动生成用来定义唯一设备

let deviceId = GrowingAnalytics.getDeviceId()

事件通用属性

static setGeneralProps(props: { [key: string]: string | number | boolean | string[] | number[] | boolean[] })

为所有事件设置通用属性,多次调用,相同字段的新值将覆盖旧值;需在分析云平台事件管理界面关联事件属性

static removeGeneralProps(keys: string[])

移除指定字段的事件通用属性

static clearGeneralProps()

移除所有事件通用属性

static setDynamicGeneralProps(generator: () => { [key: string]: string | number | boolean | string[] | number[] | boolean[] })

设置动态通用属性

参数说明

参数
参数类型
说明

props

{ [key: string]: string | number | boolean | string[] | number[] | boolean[] }

事件发生时所伴随的属性信息;当事件属性关联有维度表时,属性值为对应的维度表模型 ID(记录 ID)

示例

// 设置通用属性
GrowingAnalytics.setGeneralProps({
  'prop1': 10,
  'prop2': 'name',
  'prop3': [1, 2, 3],
  'prop4': ['a', 'b', 'c'],
  'name': 'banana'
})
// 清除指定字段的通用属性
GrowingAnalytics.removeGeneralProps(['prop1', 'prop2', 'prop3'])
// 清除通用属性
GrowingAnalytics.clearGeneralProps()
// 设置动态通用属性
GrowingAnalytics.setDynamicGeneralProps(() => {
  return {'dynamicProp' : Util.formatDate(new Date()) }
})
// 清除动态通用属性
GrowingAnalytics.setDynamicGeneralProps(() => ({}))

Hybrid 打通

static createHybridProxy(controller: webview.WebviewController): {
object: object;
name: string;
methodList: Array<string>;
controller: WebviewController;
} | undefined

在 webView 控件中注入 hybrid 实现打通 (javaScriptAccess 和 domStorageAccess 需同时设置为 true):

let url = 'https://www.example.com'
Web({ src: url, controller: this.controller})
  .javaScriptAccess(true)
  .domStorageAccess(true)
  .javaScriptProxy(GrowingAnalytics.createHybridProxy(this.controller))

对应的 H5 页面需要集成 Web JS SDK 以及 App 内嵌页打通插件才能生效

查看项目基本信息