HarmonyOS用户运营SDK集成指南

HarmonyOS用户运营SDK集成指南

前言

  • 本文档适用 IDO SDK 版本:1.0.1 及以后
  • 本文默认读者已经具有基础的鸿蒙知识,以及项目工程结构如下:
    Demo/
        |- entry/ (项目主模块)
        |    |- libs/ (第三方库,用户手动创建)
        |    |- src/ (代码目录)
        |    |- oh-package.json5(模块级oh-package.json5文件)
        |- build-profile.json5
        |- hvigorfile.ts
        |- oh-package.json5 (顶层oh-package.json5文件)
        | ......

注:其中 “......” 表示省略其他与本教程无关的内容,以下 “......” 表示相同意义,不再重复说明。

1. 创建个推应用

请参考 创建应用 获取相应的AppID信息。该信息在之后的步骤配置中将会使用。

2. 自动集成

2.1 打开工程项目,在 entry 模块下的 oh-package.json5 文件添加:

{
  "dependencies": {
    "@getui/ido": "x.x.x"//填写对应版本号,如:"@getui/ido": "1.0.1"
  }

}

2.2 个推 har 为字节码,必须使用 DevEco Studio 5.0.3.800 及以上版本,并在工程级(最外层)build-profile.json5,配置"useNormalizedOHMUrl": true,如下图:

{
  "app": {
    "products": [
      {
         "buildOption": {
           "strictMode": {
             "useNormalizedOHMUrl": true
           }
         }
      }
    ]
  }
}

3. 本地集成

注意:当前只支持本地集成

3.1 下载配置SDK的har包

  • 通过官网下载或技术支持获取ido.har

  • 在项目主模块entry下创建libs文件夹

  • 将下载好的har包ido.har放到libs文件夹下

    Demo/
        |- entry/ (项目主模块)
        |    |- libs/ (第三方库,用户手动创建)
        |       |-IDO-HM-1.0.1.har (个推用户运营SDK)
          | ......  
    

3.2 配置依赖及参数

  1. 找到entry模块级oh-package.json5文件,依赖ido.har

     Demo/
         |- entry/ (项目主模块)
         |    |- libs/ (第三方库,用户手动创建)
         |       |- src/ (代码目录)
         |    |    |- main/
         |    |    |    |- module.json5(模块级基本配置文件)
         |    |- oh-package.json5(模块级oh-package文件)
           | ......
    
  2. oh-package.json5 配置如下:

    {
     "name": "entry",
     "version": "1.0.0",
     "description": "Please describe the basic information.",
     "main": "",
     "author": "",
     "license": "",
     "dependencies": {
       "@getui/ido": "file:./libs/IDO-HM-1.0.1.har"
     }
    }  
    
  3. module.json5 配置如下:

    配置注册好的个推AppId和权限

    {
       "module": {
           .....
           "metadata": [
               {
                   "name": "GETUI_APPID",
                   "value": "替换您注册个推AppId"
               }
           ],
           "requestPermissions": [
               {
                   "name": "ohos.permission.INTERNET"
               },
               {
                   "name": "ohos.permission.GET_NETWORK_INFO"
               },
               {
                   "name": "ohos.permission.GET_WIFI_INFO"
               },
               {
                   "name": "ohos.permission.APP_TRACKING_CONSENT",
                   "reason" : "$string:oaid_reason",
                   "usedScene": {
                     "when": "always"
                   }
               }
           ]
       }
    }
    
  4. 运行指令ohpm install

  • 在控制台进入entry目录,执行ohpm install
  • 在entry目录下出现oh_modules文件夹,代表依赖成功

4. 集成代码

4.1 预初始化

`@ohos.app.ability.AbilityStageonCreate方法中进行预初始化:Ido.preInit(context: Context)`

import { Ido, IdoConfig } from '@getui/ido'


export default class MyAbilityState extends AbilityStage {
  onCreate(): void {
    // 日志开关
    IdoConfig.setDebugEnable(true)
    // 设置channel
    IdoConfig.setChannel('getui_channel')
    // 预初始化
    Ido.preInit(this.context)
    Ido.setUserId('getui_ido_user')
}

4.2 初始化

在适当时机进行初始化:init(context: Context): Promise<string>

Ido.init(this.context).then((gtcId) => {
  hilog.info(0x0000, 'IDOAbility', 'IDO init Succeeded. GtcId: (%{public}s)', gtcId);
})

4.3 应用活跃时长统计

应用时长统计用于统计应用启动次数和真实活跃时长,初始化SDK 后不需要开发者调用额外的接口。

其中鸿蒙平台一次完整的启动包括如下两种情况:

1.从启动应用到关闭应用;

2.从启动应用到应用退至后台,且在后台时间超过 30秒(该值可通过下面的方法修改,单位毫秒);

IopConfig.setSessionTimeoutMillis(sessionTimeoutMillis: number)

4.4 自定义事件

自定义事件可以统计某些用户自定义埋点的发生时间以及次数,例如广告点击、短信数量等。

通常由 event_id 作为一个事件的唯一标识。

自定义事件分为:

  1. 统计事件:
  • 计数统计事件:统计指定行为被触发的次数。

  • 计时统计事件:统计指定行为消耗的时间,单位毫秒。需要 eventBegineventEnd 接口成对使用才可生效。

  1. 用户属性事件:统计对应用户的相关信息。

每类事件都支持使用 Map<string, string | number | Date | boolean> 参数类型,其中 key 必须为字符串类型,value 目前支持类型有 stringNumberBooleanDate

// 计数统计事件
const map1 = new Map<string, string | number | Date | boolean>()
map1.set('test1', 1)
map1.set('test2', '2')
map1.set('test3', true)
map1.set('test4', new Date())
Ido.onEvent('event1', map1)

// 计时统计事件
Ido.onBeginEvent('event2')
const map2 = new Map<string, string | number | Date | boolean>()
map2.set('test1', 1)
map2.set('test2', '2')
map2.set('test3', true)
map2.set('test4', new Date())
Ido.onEndEvent('event2', map2)

// 用户属性事件
const map3 = new Map<string, string | number | Date | boolean>()
map3.set('test1', 1)
map3.set('test2', '2')
map3.set('test3', true)
map4.set('test4', new Date())
Ido.onProfile(map3)

5. 预置事件说明

预置事件说明

6. 预置属性说明

预置属性说明

7.用户属性事件预置属性

用户预置事件说明

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询