腾讯有数数据统计小程序端接入记录

  腾讯有数是由腾讯智慧零售推出,为品牌商、零售商打造的数据分析与管理平台,融合腾讯数据、技术与生态优势,提供全链路经营数据分析、消费者洞察、精准营销等能力,让企业经营更“有数”。

1 SDK引入

1.1 获取 SDK,将该SDK下载后重命名,引入小程序工程中,如下图。

图片.png

1.2 添加可信域名

  登录微信公众平台,进入<开发><开发设置><服务器域名>,将 https://zhls.qq.com 添加为 request 合法域名。

  在开发环境中还有SDK版本检查,所以会提示 https://sr-home-1257214331.cos.ap-guangzhou.myqcloud.com 不在以下 request 合法域名列表中 , 可以通过设置不校验域名来处理。

2 init 初始化

init(options: object)

  配置接口,用来调整SDK的基础机制。官方建议init初始化应该在App()调用之前调用,如果自己改造,只要测试通过即可。

  在app中初始化如下:

let sr = require('./libs/sr-sdk-wxapp.js').init({ // 腾讯有数,建议在App()调用之前调用。
  appid: 'wxxxx', // 微信小程序appID,以wx开头
  token: 'bidxxx', // token是唯一必须配置的参数,请联系有数数据服务sr_data_service@tencent.com提供
  trackApp: true, //SDK 默认上报小程序的 启动 、显示 、隐藏 事件, false 关闭该功能。
  proxyPage: true, // 是否开启自动代理 Page,默认是:false。
  usePlugin: true,// 是否使用插件,默认是:false。
  debug: true
})

3 数据上报

  有数小程序数据上报SDK是一个小程序环境的数据采集工具,它提供了简单的接口帮助你快速将数据接入数据中心。

  • 上报队列 数据上报任务通过队列发送,降低数据丢失率。
  • 自动采集 可自动对常见的行为进行埋点,并收集通用的属性,可通过配置打开和关闭,具体见文档 微信小程序SDK 中的使用方法。
通过 track 上报行为图例

3.1 App 相关

  SDK 默认上报小程序的 启动显示隐藏 事件,可以在初始化的时候配置 trackApp: false 关闭该功能。

3.2 Page 相关

  • 未使用小程序插件,SDK 提供 proxyPage 开关对 Page 开启代理模式。 会自动上报页面相关的预置事件,如 browse_wxapp_page
  • 已使用小程序插件,SDK 提供 sdk.page 支持对 Page 的改造。
  • 也可以选择使用 track 自己上报预置事件。

  注意:在小程序里有如下几种异步数据容易导致问题:通过wx.login获取 openid ,通过wx.getShareInfo获取 openGId 。

3.3 Element相关

3.3.1 方法一:SDK上报(详见官方文档:事件元素上报)

  通过这种手动埋点的方式对代码有较强的侵入性,另外,由于PM会频繁调整埋点信息,而埋点是一个繁琐又无聊的工作,基于Don't Repeat Yourself 原则,可以采用方法二自动埋点方案。

sr.track('element',
{
    "type": "change",
    "element_id": "secKillPage-banner1_1",
    "index": "1",
    "name": "秒杀页面-轮播1_1",
    "page": "pages/product?sku_id=AOdjf7u",
    // more...
})

3.3.2 方法二:配置上报(实现原理参考文档:xbosstrack 小程序自动埋点

  实现思路:监听用户点击或方法调用-->读取埋点配置JOSN,判断是否需要上报--> 上报数据

  目前已实现监听页面和组件中的元素点击事件或方法调用,自动上报埋点数据。

  使用时需添加需要埋点的点击事件上报如下。

const trackConfig = [{
    title: '会员商城首页',
    path: 'pages/Home/Home',
    elementTracks: [{//这是页面中的元素点击配置
      element: '.home-page',
      elementName: '首页点击埋点测试',
      dataKeys: ['env1'],
    }, {
      element: '.home-contact>>>.lxkf',//这是组件中的元素点击配置
      elementName: '首页组件中点击埋点测试',
      dataKeys: ['level'],
    }],
    methodTracks: [{
      method: 'initHomePage',
      element: 'initHomePage',
      elementName: '首页方法埋点测试',
      dataKeys: ['addtominiprogram'],
    }],
    comMethodTracks: [{
      method: 'getLevel',
      element: 'getLevel',
      elementName: '首页组件中方法埋点测试',
      dataKeys: ['ysf'],
    }]
  }
export default trackConfig;

  另外,使用时要在需埋点页面wxml最外层插入监听方法。示例:

<view catchtap='elementTracker'>
    
</view>

  通过配置上报完成有数通用点击事件埋点,例如点击立即购买按钮时,上报数据示例如下:

courseId: "1"
element_id: ".list-item"
index: "1"
lesson: 2
name: "课程章节"
page: "pages/Course/CourseList/CourseList?courseId=1"
page_title: "课程列表"
sr_sdk_version: "1.1.8"
time: 1587535443662
type: "tap"

3.4 用户身份上报

  有数要求所有的上报接口必须上报open_id,但允许部分行为可能产生无法获得 open_id, page 为空的情况

  用户注册行为 register_wxapp,绑定手机号看成是注册,用户授权手机号获取到userId后上报用户userId。

  用户登录行为 login_wxapp,在获取到用户unionid登录后上报用户unionId。

  接入时在需要上报用户指定身份信息上报的位置调用指定公共方法即可,调用方法如下:

// 设置每个上报必须的用户信息
        sr.setUser({
          open_id: openId,//必传,字符串类型
          union_id: unionId',//非必传,字符串类型
          user_id: userId'//非必传,字符串类型
        })

3.5 渠道上报

  有数要求所有的上报接口必须上报chan_wxapp_scene:小程序场景值。
  如果未使用自定义渠道手动设置上报,则有数SDK会自动获取渠道信息上报。

  渠道可用于区分流量来源。主要分为三种渠道类型:场景值渠道、引流渠道、自定义渠道。

  其中引流渠道ID由有数后台-渠道管理-新增渠道时系统生成,有数渠道管理后台地址传送门: https://lingshou.tencent.com

  由于有数渠道参数使用场景值带参方式,需要兼容原自定义带参,在扩展页面类 onLoad方法中添加公共场景值取参方法如下:

      if (options.scene) { //如果获取到场景值,则将场景值取出赋值给自定义参数
        let scene = decodeURIComponent(options.scene).split('&')
        let param = {}
        for (let i in scene) {
          let item = scene[i].split('=')
          let itemKey = item[0]
          let itemVal = item[1]
          options[itemKey] = itemVal
        }
      }

总结记录

  • 1、初始化时配置 trackApp:true启用自动上报小程序的 启动 、显示 、隐藏 事件;未使用小程序插件,SDK 提供 proxyPage:true 开关对 Page 开启代理模式。 会自动上报页面相关的预置事件,如 browse_wxapp_page等 。已使用小程序插件,SDK 提供 sdk.page 支持对 Page 的改造,另外需配置usePlugin: true, 是否使用插件,默认是:false。
  • 2、建议文档从头到尾的读,读3遍!!!包括官方产品介绍产品接入文档。
  • 3、仔细看测试点文档,因为没看仔细文档,硬是找了3天问题,有数那边工作人员也一起帮忙找问题,结果修改后的上报数据和修改前相差无几,还好在修修补补的过程中,发现了一些其他问题,也算有所收获。
    图片.png
  • 4、在接入某个原来接入mta腾讯移动分析的小程序项目中,onShareAppMessage方法的res有问题,导致有数SDK获取不到分享类型报错,产生原因参考:
    onShareAppMessage方法的res问题,我目前的解决办法是移除mta SDK。
  • 5、使用微信开发工具 wechat_devtools_1.02.1911180_x64,渠道chan_wxapp_scene偶尔会丢失,查后发现只有在编译器模拟环境会出现该问题,在真机环境下不会。

  关于自动化埋点方案可参考Github:https://github.com/XieXiePro/XP-MINI-Track

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,158评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,600评论 1 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,785评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,655评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,075评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,002评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,146评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,918评论 0 211
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,671评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,838评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,318评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,636评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,343评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,187评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,982评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,126评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,934评论 2 279

推荐阅读更多精彩内容