解决方案:微信小程序无埋点数据采集方案

优采云 发布时间: 2020-09-01 13:36

  微信小程序无埋点数据采集方案

  前言

  我相信业务团队不会太熟悉这种场景:

  此数据非常重要. 让我们从数据采集的重要性,数据的划分,采集的方法以及微信小程序中的掩埋方案中详细讨论数据. 采集.

  首先,数据采集的重要性

  在本文中,我们将重点介绍数据采集. 我们暂时不会详细讨论数据的作用. 首先,我们将总结并总结数据在性能优化,业务增长和在线故障排除中的重要作用. 这就是为什么我们需要掩盖一些要点.

  数据在在线故障排除中的作用:

  数据在性能优化中的作用:

  数据在业务增长中的作用:

  II. 采集数据划分和排序

  首先,我们总结了数据的重要性. 不同的业务项目对数据的重要性有不同的重视. 数据采集需要哪种数据?

  首先,闭环数据包括:

  用户行为用户信息,CRM(客户关系)交易数据,服务器日志数据

  以上三项数据可视为完整的数据流闭环. 当然,可以将不同业务场景中的数据进一步细分为更多的细节,一般的关键点基本上不超过这三个项目. 对于前端数据采集,闭环数据的前两项主要由客户端报告,而第三点主要由服务器记录并由客户端协助,因为事务请求实际上到达了服务器完成处理. 闭环. 用户行为数据还包括五个要素-时间(何时),地点(何处),人(谁),互动(方式)和互动内容(什么),与新闻的五个要素相似;与用户信息有关的某些企业需要授权用户敏感信息和隐私,因此用户信息由业务方案确定. 最基本的数据要求是唯一标识用户. CRM,交易数据和用户信息是相似的,并且特定的数据详细信息由业务方案确定. CRM基本数据要求是登录信息和成员相关信息. 交易数据包括交易时间,交易对象,交易内容,交易金额和交易状态.

  3. 数据报告方法

  在讨论数据之后,下一步就是知道如何获取我们真正需要的数据. 数据报告方法可以大致分为三类:

  重点放在非埋点上. 视觉上的隐埋点实际上可以视为非隐埋点的派生. 视觉上隐藏的点将不在此处讨论. 主要比较是代码掩埋点和非掩埋点.

  3.1代码嵌入点或Capture模式的嵌入点的缺点

  对于数据产品:

  依靠人类的经验和直观的判断力.

  与业务相关的埋葬地点需要数据产品或业务产品的主观判断,而与技术相关的埋葬地点需要技术人员的主观判断. 通讯成本高

  要确定数据产品所需的数据,有必要提出要求并与开发人员进行交流,并且数据人员对技术不是特别熟悉,并且有必要与开发人员澄清是否相关. 信息可以报告可行性. 有数据清理费用

  随着业务的变化和变化,以前的主观判断所需的数据也将发生变化. 此时,需要手动清理以前管理的数据,清理工作量不小.

  用于开发:

  开发人员能耗

  对于业务团队来说,它经常受到相关开发人员的批评. 开发技术人员不仅可以专注于技术,还需要分散精力来完成高度重复性和机械性的任务,例如掩埋点. 嵌入式代码具有侵入性,会对系统设计和代码可维护性产生负面影响

  大多数与业务相关的数据点都需要手动掩埋,并且掩埋的代码必须与业务代码紧密结合. 即使行业中没有sdk,数据产品关注的特殊业务点也无法逃脱手工掩盖.

  随着业务需求在不断的业务变化下发生变化,用于嵌入的相关代码也需要相应地进行更改. 进一步增加开发和代码维护成本. 容易出错,遗漏

  由于人工管理的主观差异,放置位置的准确性难以控制,并且管理过程中存在成本高昂的问题,容易造成数据泄漏

  当丢失或错误采集数据时,它必须再次经过开发过程和联机过程,这效率很低. 3.2无埋点的优势

  与手动掩埋点相比,无需解释没有掩埋点的优点.

  提高效率,数据更全面,按需提取并减少代码入侵. 四,微信小程序无埋点SDK程序4.1无埋点数据要求

  

  双向监控逻辑图

  清除图片地址标记

  由于applet与Web服务不同,因此没有诸如js / css资源加载之类的事情. 因此,应更加注意初始化状态和小程序的执行的记录,捕获和报告. 图中的资源完整性检查对应于初始化的完成. 考试. 在线小程序中请求的域名必须是https协议,因此DNS劫持的可能性大大降低,甚至不太可能发生,并且从客户端监视DNS劫持的可行性很低(存在悖论),因此DNS劫持暂时不考虑捕获.

  4.2开发微信小程序非嵌入式SDK的难点和要点

  微信请求通过微信API统一完成. 请求模块已经被微信方封装,小应用程序的运行环境不是浏览器对象. 像Web应用程序一样难以重写和封装.

  不能直接监视用户行为. 强大的可伸缩性需要适用于多种体系结构设计方案(小型程序). SDK必须是轻量级的. 每个小程序都有2M的限制,并且该小程序不支持将代码引入. npm软件包,因此sdk本身将占用2M的大小限制. 尽管该applet已分包了内部测试,但该功能尚未完全发布,并且作为SDK太大太大是不合理的. 采集大量数据,在不影响业务的情况下将性能损失降至最低(基本要求)

  4.3微信小程序无埋点sdk设计

  数据层设计:

  

  数据层设计

  清除数据层设计图像的地址标记

  数据流向设计:

  

  数据流移向图片的清晰地址标记

  采集方式设计:

  

  采集为图片设计清晰的地址戳的方法

  访问方法:

  在小程序初始化代码之前介绍sdk npm软件包代码. 当小程序打包代码时,将sdk代码导入项目,并在初始化后自动采集数据. 初始化示例如下:

  import Prajna from './lib/prajna-wxapp-sdk.js';

Prajna.init({

channel: 'channel',

env: config.IS_PRODUCION ? 'product': 'beta',

project: 'yourProjectName',

methodConfg: {} // 业务特殊关注的方法执行和自定义打点名称

})

  没有掩埋点和掩埋点的组合:

  小程序的非嵌入式方法可以获取大量数据,并且基本上可以实现用户使用场景的高度还原. SDK管理的粒度是某种方法的执行. 当特殊业务关注的粒度小于SDK的粒度时,如果没有埋藏点,SDK将无法完全解决. 可以使用没有掩埋点和掩埋点的组合,因此我们的小程序不能使用. 掩埋点SDK还提供了API接口,用于手动掩埋点以改善数据的完整性并解决更多问题(请参阅数据的重要性).

  第五,在没有掩埋点SDK的小程序中遇到的问题

  除了解决微信小程序非嵌入式sdk开发中的上述困难和关键问题外,还遇到了一些新的问题.

  SDK本身将对业务绩效产生一定影响. 数据被临时存储在applet的本地存储中,而当业务本身消耗更多性能时,将暴露经常存储和检索的applet的本地存储. 操作被卡住. 减少本地存储的存储/检索操作. 关闭页面时,仅未上载的数据存储在本地存储中. 完整的数据量巨大. 灰度联机时,遇到服务器过载和服务器可用性降低的问题. 随后控制报告的数据量,仅自动报告关键节点数据,并且可以在访问初始化期间通过目标配置报告其他以业务为中心的节点,以避免报告过多的冗余数据. 此外,应特别注意报告数据结构的设计. 结构目标是清楚,简洁并且方便数据检索(区分). 在初始阶段,我想对是否使用SDK进行在线灰度进行“切换”,以避免小程序回滚过程. 由于“开关”依赖于服务器接口控制,并且请求是异步的,因此这意味着初始化过程和小程序的启动必须等待,直到控制该开关的接口返回,否则“开关”等同于失败. . 考虑到SDK不会影响业务绩效,请丢弃“开关”,并尝试在SDK中进行捕获,以避免影响业务可用性.

  借助通过报告获得的数据而无需掩埋点,该数据可用于将来解决许多问题. 有关数据的使用,请期待下一节“数据应用程序”.

  参考文献:

  [1] [美国]裴Ji,译者姚军等,“深入了解网站优化”,出版社: 机械工业出版社,出版时间: 2013-08

  [2]张锡萌,“首席增长官”,出版社: 机械工业出版社,出版日期: 第一版(2017年11月6日)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线