baidu-ubc-swan-logger

1.7.0 • Public • Published

ubc业务日志

【基于】前端UBC打点规范:http://wiki.baidu.com/pages/viewpage.action?pageId=1267140894

ubcLogger.set(options)

ubcLogger参数初始化

import {ubcLogger} from 'baidu-ubc-swan-logger';
/*
* 初始化示例
*/
// 目前,ubcLogger提供三种方式初始化
// 初始化v1(基于日志规范1.0)
ubcLogger.set({
    version: '1.0',
    serverId: 10399,
    page: 'shake_index',
    idfrom: 'res_fuli_0'
});

// 初始化v2 (基于日志规范2.0)
ubcLogger.set({
    testMode: true, //打到线下
    serverId: 10399,
    page: 'shake_index',
    idfrom: 'res_fuli_0'
});

// 有抽样的初始化
ubcLogger.set({
    serverId: 10399,
    page: 'shake_index',
    idfrom: 'res_fuli_0',
    sample: {
        rate: '0.0008'
    }
});

// 自定义公参的初始化
ubcLogger.set({
    serverId: 10399,
    page: 'shake_index',
    idfrom: 'res_fuli_0',
    queryParams: {
        appname: 'lemon',
        sn: 'live',
        sid: '1002_1003'
    }
});

tips

page onShow()时候set pagename set操作可多次执行,ubcLogger将对set的参数执行merge操作,同一配置字段以最后一次的set操作赋值为最终值

初始化options字段说明

tips

** logger日志库0.2.8及更早版本,打点默认使用日志规范1.0 即version = 1.0, 0.2.8版本后的logger日志库,version 默认为2.0** 日志合并仅日志规范v2支持。即:若配置合并打点参数logMergeOpt,并开启自动合并(ifAutoMerge为true),需保证配置的version为2,否则ifAutoMerge配置无效

key type value(demo) 是否必填 备注
testMode boolean false N 是否打点到线下
testUrl string N 自定义配置打点数据的上传地址[testMode为true时生效]
version string 2.0 N 日志规范使用默认2.0 或者 1.0
serverId number 103997 Y 数据组给的serverid
(第一次初始化时候必填,后续其他page里init的时候不需要填)
page string y_shake_index N 页面标识
idfrom string res_fuli N 页面source(未传入时,优先取getApp().globalData.query,次优先级取swan.getURLQuery())
source string res_fuli N 页面source,同idfrom(未传入时,优先取getApp().globalData.query,次优先级取swan.getURLQuery())
from string act N 日志类型
logMergeOpt Object {} N 日志合并参数配置
logMergeOpt.ifAutoMerge boolean false N 是否开启自动合并,默认不开启
logMergeOpt.mergeNumMax number 5 N 最大日志合并数量
logMergeOpt.mergeInterval number 5 N 合并时间间隔
sample.rate string 0.01 N 打点抽样比例(不填默认不抽样;1不抽样打点正常;0表示不打点,仅仅支持精度小数点后四位0.0001
queryParams.appname string baiduboxapp N 产品线标识 (日志规范 version=2.0 时,此配置字段有效)
queryParams.from string N 大渠道 (日志规范 version=2.0 时,此配置字段有效)
queryParams.cfrom string N 小渠道 (日志规范 version=2.0 时,此配置字段有效)
queryParams.sid string N 抽样 (日志规范 version=2.0 时,此配置字段有效)
queryParams.sn string N 跨多端的业务场景,比如一个appname下的多个项目 (日志规范 version=2.0 时,此配置字段有效)
swan_name string N 英文特殊小程序标记,普通H5和小程序非必传 => 如果要传,需要和策略同学对齐&&联调
ifSwanReport boolean true N 将打点同步到小程序开发者平台
logErrRetry boolean false N 是否对上报失败的日志进行上报重试
logBackup boolean false N 是否对上报日志进行备份
backupUrl string https://activity.baidu.com/activity/felog/log N 自定义日志备份地址
noUseApiGetUserInfo boolean false N 不使用小程序api获取用户信息
bdussIgnore boolean false N 不获取bduss

ubcLogger.send(object)

ubcLogger执行日志发送

// 直接打点{type:xxx,value:xxx,ext:{p1:xxx}}
// 根据数据组要求的字段来
ubcLogger.send({
    type: 'c_pv',
    value: 'login',
    ext: {
        p1: 'first'
    }
});

tips

必须在init的时候传serverId,否则send不执行 不要在组件的lifecycle的onshow生命周期中打点,容易导致page获取混乱 若配置了自动合并,使用方调用send时,打点数据不会即时发出,打点数据将被暂存,并按照配置规则logMergeOpt进行合并发送

send的object字段

key type value(demo) 是否必填 备注
type string c_pv Y 数据组给的type
page string y_shake_index N 页面标识
value string login N 数据组给的value
ext object {} N 数据组给的ext
ext.p1 string more N 数据组给的ext.p1
ext.p2 string more2 N 数据组给的ext.p2
ext.xxxx(demo) string more2 N xxxx的key可以自定义

ubcLogger.sendMergeLog(object)

ubcLogger手动日志合并 ,send的object数据对象格式同ubcLogger.send接口入参

// 直接打点{type:xxx,value:xxx,ext:{p1:xxx}}
// 根据数据组要求的字段来
ubcLogger.sendMergeLog({
    type: 'c_pv',
    value: 'login',
    ext: {
        p1: 'first'
    }
});

tips

必须保证set时的version字段值为2,否则sendMergeLog调用效果等同send 多次调用sendMergeLog,打点数据不会即时发出,打点数据将被暂存,并按照配置规则logMergeOpt进行合并发送

ubcLogger.setPageTimingLog(object, customStop)

ubcLogger开启当前页的时长打点,页面展现begin,页面离开/切后台end

// 根据数据组要求的字段来
ubclogger.setPageTimingLog({
    page: 'main',
    value: 'login',
    ext: {
        p1: 'feed1_1_2'
    }
});

ubcLogger.stopPageTimingLog()

主动结束ubcLogger时长打点

ubclogger.stopPageTimingLog();

tips

在页面的onshow或者onload时调用,页面未销毁多次调用只会绑定一次 尽量不要在app.js内调用,小程序生命周期不稳定,可能导致sdk获取页面uri失败,此时时长打点将被丢弃 详细打点字段参考

setPageTimingLog的object字段

key type value(demo) 是否必填 备注
type string c_pv Y 数据组给的type
page string y_shake_index N 页面标识
value string login N 数据组给的value
ext object {} N 数据组给的ext
ext.p1 string more N 数据组给的ext.p1
ext.p2 string more2 N 数据组给的ext.p2
ext.xxxx(demo) string more2 N xxxx的key可以自定义

setPageTimingLog的customStop字段

key type value(demo) 是否必填 备注
customStop boolean true N 默认false

若想要sdk不在页面离开/切后台时干预结束时长打点,可配置此字段为true,时长结束点将只在用户主动调用stopPageTimingLog时发送


扩展功能

logger库还对外提供UbcLogger对象,以满足使用者在一个业务中要打多个(不同serverid的)ubc点的场景

具体使用方法:

import {UbcLogger} from 'baidu-ubc-swan-logger';
// 初始化
// 自定义初始化,可以放小程序的global变量中,比如 getApp().globalData.ubcLogger 中
let ubcLogger = new UbcLogger({
    serverId: 10399,
    page: 'shake_index',
    idfrom: 'res_fuli_0'
});
// 或者有抽样的自定义初始化
let ubcLogger = new UbcLogger({
    serverId: 10399,
    page: 'shake_index',
    idfrom: 'res_fuli_0',
    sample: {
        rate: '0.0008'
    }
});
// 如果需要,update 初始化的 options
// 后续不改options也可以不传
ubcLogger.set({
    page: 'shake_rules'
});
// 直接打点{type:xxx,value:xxx,ext:{p1:xxx}}
// 根据数据组要求的字段来
ubcLogger.send({
    type: 'c_pv',
    value: 'login',
    ext: {
        p1: 'first'
    }
});

Dependents (0)

Package Sidebar

Install

npm i baidu-ubc-swan-logger

Weekly Downloads

0

Version

1.7.0

License

UNLICENSED

Unpacked Size

45.3 kB

Total Files

4

Last publish

Collaborators

  • suesue1206