小程序数据统计功能,类似友盟,神策等
npm install shumou-sdk-mini在数谋后台,将自己的小程序 appid 绑定在自己的账号下,如果直接使用sdk会初始化失败
``
npm install --save shumou-sdk-mini
yarn add shumou-sdk-mini
`
`javascript
// js
const { shumou } = require('shumou-sdk-mini')
// ts
import { shumou } from 'shumou-sdk-mini'
`
#### 初始化及字段说明 `shumou.config shumou.init`
`javascriptappId
shumou.config({
// 此处 是必传字段,就是小程序的 appId,需要商家提前在数谋后台绑定
appId: "wx131231231231",
// 对接小程序的版本
miniAppVersion: "1.0.0",
// 用户ID 是否使用 openid 作为唯一键,默认 false
isUseOpenId: false,
// 是否支持对分享数据上报
followShare: false
})
shumou.init()
`
#### shumou标示(选用) `shumou.setOpenId`
初始化 sdk,系统录入用户身份,这里sdk会默认使用一个随机字符串作为用户的标示ID,也可以使用用户的 openid 作为唯一标示
`javascript
shumou.config({
appId: "appId",
isUseOpenId: true
})
// 一定要在 init() 前设置 openid 值
shumou.setOpenId("openId")
shumou.init()
`
#### 会员身份 `shumou.setCustomerLoginUserId`
为了保证数据统计的准确性,需要用户在登录后调用该方法传入用户的真实编号
`javascript
shumou.config({
appId: "appId"
})
// 初始化位置不做要求
shumou.init()
// 一定要在会员登录后将会员标号传入
shumou.setCustomerLoginUserId("userId")
`
#### 数据上报 `shumou.trackEvent`
`javascript`
shumou.trackEvent(eventId, {key,value})eventId
这个上报中, 可以从 sdk 中获取默认的事件名及对应的类型数据
`javascript
const { DEFAULT_EVENTS_TYPES, DEFAULT_EVENTS } = require('shumou-sdk-mini')
// DEFAULT_EVENTS_TYPES 会约束传递参数的类型
shumou.trackEvent
`
#### 坑位推荐数据获取 `shumou.shumouRecommend`
数谋会根据用户上报数据帮助商家分析出推荐商品,可在适当的位置上获取数谋推荐的商品数据供用户选择
``
shumou.shumouRecommend("SHOP_CART").then(res => goodsList)
此 api 返回一个 promise ,参数就是位置参数,传入不同的坑位标示,数谋会返回不同的推荐数据
坑位枚举:
`javascript`
export enum SHUMOU_RECOMMEND_ENUM {
// 购物车
SHOP_CART = 'SHOP_CART',
// 商品详情
GOODS_DETAIL = 'GOODS_DETAIL',
// 商品列表
GOODS_LIST = 'GOODS_LIST',
// 个人中心
USER_CENTER = 'USER_CENTER',
// 会员中心
CUSTOMER_CENTER = 'CUSTOMER_CENTER',
// 收藏商品
COLLECT_GOODS = 'COLLECT_GOODS',
// 支付成功页
PAY_SUC = 'PAY_SUC',
// 分类
GOODS_CATE = 'GOODS_CATE',
// 魔方
MAGIC_BOX = 'MAGIC_BOX',
// 分类页
CATE_PAGE = 'CATE_PAGE'
}
该枚举可直接从 sdk 导入。
``
import { SHUMOU_RECOMMEND_ENUM } from 'shumou-mini-sdk'
#### 原生
`javascript
// app.js 文件
shumou.config({
appId: "7788482fdsafsafsaf"
})
shumou.init()
// 在任意处上报数据
shumou.trackEvent("shop", {shopId: 'a1321312'})
`
#### taro(typescript)
`javascript
// 在 global.d.ts 文件内添加
// 该声明只为了让 shumou 对象注入到
declare namespace Taro {
namespace shumou {
interface ITrackEvent {
trackEvent
setCustomerLoginUserId(userId: string): void
}
}
let shumou: shumou.ITrackEvent
}
// 在 app.ts 中初始化
shumou.config({
appId: "13123123123123123"
})
shumou.init()
// 由于上面的全局声明,这里可以将shumou对象注入到 Taro 对象下,这样可以在任何地方使用了
Taro.shumou = shumou
// 上报方法 在任意处使用该API上报
Taro.shumou.trackEvent(eventId, {key,value})
`
shumouCode 为数谋内部加密字符,对接小程序不需要关注,如果要统计导购分享后的点击量成交量这类数据时,就需要这个字段
#### 生成二维码
可以拼接在路径后生成有限次码
``
pages/home/index?shumouCode=32132135fdsg1321secen
或者将参数设置在 中生成无限次码
#### 小程序端处理
如果通过其他方式获取到 shumouCode 字段,那么也可以通过如下方式传输,只要在任意路径中携带该参数即可
``
pages/cart/index?shumouCode=32132135fdsg1321
sdk 会自动截取该参数,即可获取导购信息正确上报数据
#### 主动设置
新增API,可主动设置该字段
`javascript`
Taro.shumou.setCustomerShumouCode(shumouCode);
DEFAULT_EVENTS 对象包含了事件名
DEFAULT_EVENTS_TYPES 事件类型
事件对照表:
事件名 | 事件ID | 参数类型 | 参数 | 是否追加导购ID
---|---|---|---|---
页面浏览记录 | CURRENT_PAGE | 默认事件 | -| -SHARE_PATH_SRC
分享记录 | | 默认事件 | - | -DEFAULT_EVENTS.SHOP_SHARE
店铺分享 | | DEFAULT_EVENTS_TYPES.IShopShare | `{ "parentId": "A321321", "shopId": 'A123321'}` | 否DEFAULT_EVENTS.SHOP_VIEW
浏览店铺 | | DEFAULT_EVENTS_TYPES.IShopView | `{ "parentId": "A321321", "shopId": 'A123321'}` | 否DEFAULT_EVENTS.GOODS_SHARE
商品分享 | | DEFAULT_EVENTS_TYPES.IGoodsShare | `{ "parentId": "A321321", "shopId": 'A123321', "spuId": "33123213", "skuId": ""}` | 否DEFAULT_EVENTS.GOODS_VIEW
浏览商品 | | DEFAULT_EVENTS_TYPES.IGoodsView | `{ "parentId": "A321321", "shopId": 'A123321', "spuId": "424243242", "skuId": "g13213213"}` | 否DEFAULT_EVENTS.CREATE_ORDER
下单 | | DEFAULT_EVENTS_TYPES.ICreateOrder | `{ "parentId": "A321321", "shopId": 'A123321', "tid": "TC3131321"}` | 否DEFAULT_EVENTS.FAVORITE_SHOP
店铺收藏 | | DEFAULT_EVENTS_TYPES.IFavoriteShop | `{ "parentId": "A321321", "shopId": 'A123321'}` | 否DEFAULT_EVENTS.ADD_CART
加入购物车 | | DEFAULT_EVENTS_TYPES.IAddCart | `{ "parentId": "A321321", "shopId": 'A123321', "skuId": "g12321", "spuId": "123123", "count": 1}` | 否DEFAULT_EVENTS.GUIDE_GOODS_VIEW
浏览导购分享的商品 | | DEFAULT_EVENTS_TYPES.IGoodsView | `{ "parentId": "A321321", "shopId": 'A123321', "spuId": "424243242", "skuId": "g13213213"}` | 是DEFAULT_EVENTS.GUIDE_MC_VIEW
浏览导购分享的营销活动 | | DEFAULT_EVENTS_TYPES.IMcShare | `{ "parentId": "A321321", "shopId": 'A123321', "actId": "mc1312312321321321", "mcType": "COUPON"}` | 是GUIDE_REGISTER
数谋注册引导 | | | `{"parentId": "A321321", "shopId": 'A123321'}` | 是
mcType 是营销的类型,COUPON 优惠券,LIMIT_DISCOUNTS` 限时折扣
字段说明:
字段名 | 描述
---|---
parentId | 总部编号
shopId | 门店编号
userId | 用户会员编号
guideId | 导购ID
spuId/skuId | 商品对应ID
tid | 订单编号
基础数据,每次上报必传 base:
字段名 | 描述
---|---
appId | 小程序 appid
shumouUserId | 用户数谋编号
idType | 用户类型 UUID/OPENID
ts | 时间戳
sdkVersion | sdk 版本
sessionId | 会话
deviceType | 设备型号
systemVersion | 手机系统版本
guideId | 导购ID
miniAppVersion | 对接小程序版本
userId | 会员实际编号
分析数据,是个数组 analytics:
字段名 | 描述
---|---
eventId | 事件名,上文中的事件表中的事件
args | 上报的数据
eventType | 事件类型 "DEFAULT_EVENT" / "CUSTOME_EVENT"
ts | 时间戳