# 埋点SDK包使用

# 一、安装

npm i --save @enbrandsfe/buried_point

# 二、快速上手

# 1、PC项目/H5项目/淘宝小程序

// 1、导入sdk包
import buriedpointH5 from '@enbrandsfe/buried_point';
// 2、全局数据初始化
buriedpointH5.setConfig({
  cloud_id:34134       // 对接淘宝平台的云应用
  is_prod: false,      // 数据埋入测试环境还是正式环境
  runtime_env:buriedpointH5.ENUM_RUNTIME_ENV.h5||'h5',      //  参见如下api
  merchant_id:'未知',   //  店铺num (确认获取不到就传未知)
  distinct_id:'未知',   //  用户ID(能区别用户唯一性)
  act_id:'未知',        //  活动ID (确认获取不到就传未知)
  member_id:'未知',     //  会员ID (确认获取不到就传未知)
  platform_app: "【基础互动】邀请注册裂变", 
  platform_app_code: "jchd_yqzclb",
  platform_app_version:"1.0",
  application_dep_platform:"crm_enbrands",
  platform_business:"TB",
  application_label:"48,52,55,92,68",
  is_interactive:true
  nick:'未知',         //  确认获取不到就传未知
  mix_nick:'未知',     //  确认获取不到就传未知
  act_name:'未知',     //  确认获取不到就传未知
  open_id:'未知',      //  微信平台下请务必传入正确的open_id
  phone:'未知',        //  确认获取不到就传未知 
  ouid:'未知',         //  淘宝平台下请务必传入正确的ouid
  provider:'未知',     //  请传入提供者|未知
  open_type:1,        //  1正常数据也就是对接新埋点平台,2互动营销类的,3其他
})

// 3、runtime_env枚举字段如下,根据自身代码的部署环境进行填写。
export enum ENUM_RUNTIME_ENV {
    weapp = 'weapp', // 微信
    swan = 'swan', // 百度
    alipay = 'alipay', // 支付宝、淘宝小程序
    tt = 'tt', // 头条小程序
    h5 = 'h5', // h5
    jd = 'jd', // 京东
    qq = 'qq', // qq小程序
    pc = 'pc', // pc网页
}

// 4、埋点上报
buriedpointH5.fed({
  event_name: "邀请注册裂变_参与人数",
  event_code: "yqzclb_participate_uv",
  event_label: "30",
  event_trigger_mode: "click",
  url: ""             //写页面的路径
})
// 5、如果复制的[应用平台]初始化代码为 platform_business:'xx1,xx2',则需要注意该字段的动态取值,按应用平台的不同,动态按需传入该值,取'xx1,xx2'中的任一个.
// 如果复制出的初始化代码 platform_business:'xx1'则无需改动,正常接入既可。


//6、[应用部署平台] application_dep_platform 的情形如上。

# 2、初始化数据、喂点数据的获取

1.登录【埋点管理平台】进入【应用管理页面】,选中对应的应用,点击【更多-数据复制】=》获取到初始化对应的数据对象,粘贴既可,对象字段中为【未知】,需要确定该字段是否确实取不到,如果真取不到,就填[未知],不能为空;

An image

2.在【应用管理页面】点击【应用名称】进入应用的详情页面,在tab中选择【相关事件】,在【操作】列选择【复制图标】=》获取到喂点数据,粘贴既可,【url】字段为必填.

An image

# 3、对于淘宝小程序需要添加云应用-【qimen_prod_enbrands】

An image

An image

An image

# 4、关于埋点的调试

待点位埋完之后,打开控制台,查看是否有警告信息,按需补全数据。

An image

# 1、pc/h5

成功调用【addReceive】则喂点成功。 An image

# 2、淘宝小程序

打开控制台=》输出【dataPoin】则喂点成功。 An image

# 5、报表的数据查看

1、在【应用管理页面】点击 操作中【更多=》创建报表】。指标的展示分卡片、趋势图、表格三种形式。按需添加需展示的指标,填充数据既可。

An image

2、页面切换至【互动自助报表】,查看对应应用的报表,弹框中活动ID和店铺ID,如果有就填,没有相当于查看的是该应用下的所有数据。 应用平台或者应用部署平台存在多值,则按需选择既可。趋势图、表格的指标可以快速复制卡片中的指标。按需编辑既可

An image

3、埋点初始化中字段【is_prod】表示的就是点喂入测试还是正式环境,若值为true,则在报表正常看就行,若值为false,则表示点喂入了测试环境,在同一报表看测试环境的数据则在链接后 #buriedpoint

An image

# 三、api

# 1、setConfig: (config, callback) => void

函数:全局配置函数

有两个参数:config、callback

config,表示全局配置的参数有哪些,这些参数在后续的数据上报中,都会传递给服务端进行记录。config中的数据一般是用来描述项目信息(platform_app、platform_app_code等等)、用户信息(member_id、mechant_id等等)、全局配置(is_prod、runtime_env等等)等等。

callback,表示设置全局配置之后的回调函数。用于处理自己的业务逻辑。 由于web版本、小程序版本、它们各自在运行中,由于环境的差异性,导致我们需要做一些额外的处理,比如web端的数据上报,内部使用的其实是axios。但是小程序、多端框架我们需要做额外的处理,因为它们在进行数据请求的时候,使用的不是web版本的ajax。

注意:合理利用该函数的回调函数,举个例子:宝洁是一个大的项目。一个仓库中有多个应用。比如大转盘、问卷调查等,setConfig函数不可能写在最外层的初始化函数中,一般都是写在该应用的首页JS中,首页如果有统计页面的PV、UV事件,则喂点的方法应该在setConfig的callback中。

# 2、fed: (config: {event_name: ENUM_EVENT_NAME, event_code: ENUM_EVENT_CODE, event_trigger_mode: ENUM_EVENT_TRIGGER_MODE} & Record<string, any>) => void

函数:发送埋点数据上报的方法。

其中,event_name、event_code、event_label、event_trigger_mode都是必填参数。用来描述当下的事件是干什么的。

一般而言,如果这里是在非web的场景下使用该事件,还需要在这里填写一个url的参数,参考上面的taro和淘宝小程序的场景。(web端之所以能省略是因为可以直接通过window拿到url参数)

# 3、setAsyncConfig

有两个参数:config、callback

config,表示全局配置的参数有哪些,执行setConfig获取不到的字段值。

callback,表示设置全局配置之后的回调函数。用于处理自己的业务逻辑。 对于在main.js 或者app.js中 setConfig不能设置的信息需要使用 OmagaLogger.setAsyncConfig 去设置,比如用户的ID需要登录成功之后获得。比如:

buriedpointH5.setAsyncConfig({
    merchant_id: res?.data?.merchant_id,   //shopid
    distinct_id: res?.data?.distinct_id,   //userid
    act_id:res?.data?.act_id               //
})
注意:页面全局刷新之后,导致初始化时这些字段又为空,可以考虑将这些字段的获取放在全局页面下,并通过localstorage等去获取。

# 4、setActMess

该方法是为对接埋点管理的其他平台(例如互动营销分析平台)打补丁调用的方法。只调用一次。

buriedpointH5.setActMess({
    appletCode:'',   //应用代码也就是platform_app_code
    actId: '',        //活动ID, 【确认】之后获取不到就写未知,不能为空
    actName:'',       //活动名称,【确认】之后获取不到就写未知,不能为空
    merchantNum:'',   // 店铺号  【确认】之后获取不到就写未知,不能为空
    runtime_env:buriedpointH5.ENUM_RUNTIME_ENV.h5||'h5',
    is_prod:ture || false,          
})

# 5、setPosition

该方法是用来是设置是否获取位置信息的方法。默认为true即开启,为false则为关闭。该方法在setConfig之前进行调用。

buriedpointH5.setPosition(false)

# 四、埋点中的各数据的关系

在系统中一个应用 一个应用下包含多个事件,一个应用可以创建出多个报表。每个报表下有多个指标按趋势图、卡片、表格的形式在报表中展示。指标是需要关联事件的,可以是一对多(运算指标),也可以是一对一(独立指标)。

1、应用-根据自身项目的情况,进行应用的创建,在创建应用的时候可以对需要统计的指标进行挂钩,后期也可以通过编辑进行修复

2、事件-事件也已预置,非必要请使用预置事件。创建事件需【斟酌】能使用预置事件就使用预置事件。

埋点管理平台

An image

对接其他平台

An image

# 五、适用产品经理的操作流程

需要注意的是:对于系统中的事件,尽量使用平台预置事件或已存在的事件,非必要不用创建新的事件,总之事件的新建需要斟酌。 具体操作请点击操作流程查看