解决方案:关于前端:神策数据微信小程序-SDK-功能介绍

优采云 发布时间: 2022-10-08 16:10

  解决方案:关于前端:神策数据微信小程序-SDK-功能介绍

  一、简介

  Sensors Data 微信小程序 SDK 是一个数据 采集 嵌入式微信小程序 SDK。具体是指开发者将SDK集成到开发的微信小程序我的项目中,通过配置或特定时机调用SDK提供的接口采集,通过网络。

  2.数据采集

  对于SDK来说,data采集是指当用户行为被触发时(例如小程序启动、按钮被点击等),用户行为按照既定的数据格式被数字化。根据采集的不同形式,可以分为代码嵌入、全嵌入和自定义全嵌入:

  代码嵌入是指调用SDK提供的track()接口采集自定义事件;

  全埋点是指SDK通过代理生命周期函数和各种事件处理函数实现预设事件的采集;

  自定义全嵌入是指开启SDK的主动采集预设事件的表现,开发者手动调用SDK提供的具体接口quick()实现预设事件的采集。

  Sensors Data微信小程序SDK还提供了完整的嵌入式版本和自定义的嵌入式版本:

  全嵌版是SDK主动代表微信小程序的App、Page、Component三个接口,主动采集预设事件依赖于全嵌版SDK;

  自定义跟踪版本是指开发者手动调用SDK提供的接口实现预置事件的采集,没有采用SDK主动采集预置事件的功能。

  2.1 代码嵌入 2.1.1 概述

  代码嵌入也称为自定义嵌入。具体来说,SDK初始化后,在相关事件处理函数中调用track()接口,将采集接收到的数据保存在发送队列中,然后根据数据发送到指定的服务器到一定的发送策略。例如:小程序中的一个view元素被点击,如果想要采集这个view元素的点击事件,需要在view元素的事件处理函数中调用track()接口,将指向代码 采集 视图元素的单击事件数据。

  2.1.2 应用场景

  代码埋藏有很多优点:

  精准控制埋点位置,对需要的数据进行采集针对性数据;

  灵活的自定义事件和属性,不方便采集丰富的业务相关数据;

  可以满足精细化分析的需要。

  当然,代码埋点也有相应的问题:

  埋点成本比较大,每个控件的埋点都需要添加相应的代码;

  更新成本比较高,每次更新埋地计划都要修改代码为并发版本;

  对用户业务代码的侵入性较大,埋藏的代码比较分散,不易治理对立,可维护性较差。

  因此,代码嵌入适用于需要精确控制嵌入位置、灵活自定义事件和属性等精细化需求的场景。

  2.2 全埋点 2.2.1 概述

  全嵌入也可以称为主动嵌入。SDK 通过代理 App、Page 和 Component 的生命周期函数和事件处理器来实现预设事件的采集。全嵌入是指集成SDK,启用相应配置项主动采集用户本地行为数据。微信小程序SDK全嵌入点的采集类(预设事件)包括:小程序启动、展示、访问后台、页面浏览、分享、元素点击等。事件触发和采集规定为如下图2-1所示:

  表2-1采集所有埋点预置事件规则(点击查看大图)

  2.2.2 应用场景

  全埋具有以下优点:

  显示宏观指标,满足基本面数据分析需求。通过采集PV、UV等稀有指标,对这些基础数据进行数据分析,帮助企业了解用户行为,为进一步的数据分析指明方向;

  技术门槛低,应用部署相对简单。只需要嵌入SDK,极大地避免了因需求变化、埋点错误等重新嵌入点的简单工作;

  增加了开发人员的工作量。启用相应配置项后,会主动向服务器发送数据,防止手动跟踪出错。

  

  同时全埋点也存在一些问题:

  全埋点只能是采集对用户交互数据,适合标准化采集,自定义属性的采集需要代码埋点辅助。每个用户的交互行为都有很多属性,全埋点无法深度嵌入到更细更深的粒度。例如:在电子商务行业,用户点击“购物车”是一种交互。全embedding会忽略用户信息、产品类别等其他维度信息,此时需要配合code embedding辅助data采集;另一个例子是当用户向上滑动屏幕时,内容瀑布的底部加载,产品或广告下拉菜单中内容的加载和显示,下拉菜单中内容的数据点击等,这种自定义行为的采集需要嵌入到代码中辅助实现。由于全埋点只适用于标准化方案采集,一些数据分析平台也开始反对用户为每个事件添加自定义属性,这样可以大大扩展事件分析的有效性;

  小程序SDK全嵌入是通过代理App、Page和Component三个接口并代理相应的生命周期函数,在相应的生命周期函数中退出我们的嵌入逻辑来实现的。因此,如果微信一天不允许重写App、Page、Component这三个接口,那么全埋性能将无法应用,但这种可能性相对较小。

  由此可知,全埋点适用于采集尽可能多的用户行为数据,埋点成本较小的场景。

  2.3 自定义埋点 2.3.1 概述

  在某些情况下,开发者的小程序我的项目不允许代理App、Page和Component这三个接口,或者需要异步获取预设事件中的自定义属性,这种情况需要使用自定义全埋点性能.

  自定义全嵌入是指在集成SDK后,开发者开启SDK的主动采集性能,并在指定的生命周期函数内手动调用SDK提供的quick()接口采集预设事件. 自定义全埋点采集的类别(预设事件)包括启动、显示和备份入口。事件触发及采集规定如表2-2所示:

  表2-2 自定义全埋点预置事件采集规定(点击查看高清图)

  2.3.2 应用场景

  定制全埋点具有以下优点:

  显示宏观指标,同时减少一些自定义业务分析属性。这些分析属性的值是通过后端接口获取的,在发送预设事件时设置,不仅采集变成PV和UV,还可以满足一些精细化的分析需求;

  使用自定义嵌入式 SDK 进行自定义全嵌入式时,SDK 不会代理 App、Page、Component 等接口。

  同时,自定义全埋点也存在一些问题:

  开发者需要根据具体写法调用SDK指定接口;

  与全埋点相比,会减少开发者的工作量。

  因此,自定义全埋点适用于需要在预设事件中添加异步获取自定义属性值的场景,以及SDK无法代理的小程序,如App、Page等接口。

  2.4 预设属性采集

  预设属性是SDK post-event 采集小程序的某些属性,例如:页面路径($url_path)、启动场景($scene)、屏幕宽高($screen_height、$screen_width)等。这些属性会被SDK主动采集,然后连同手动采集的属性一起发送到指定的服务器。

  这些属性都是主动的采集,不需要开发者减少代码,大大降低了data采集的范围和便利性。采集的预设属性是数据分析中涉及的一个重要分析维度。主动采集大大增加了开发成本,采集又是一个可以立即使用的部分。

  预设属性采集性能的优缺点:

  优点:主动帮助用户采集在多页的相关属性,数据更全面,分析维度更丰富。

  问题:活动采集的预设属性在SDK中是固定的,但是活动采集属性与用户业务相关(业务相关属性可以通过采集属性自定义)。

  预设的属性范围很广,属性的种类也很多,后续话题会详细讲解,这里就不过多赘述了。

  3. 数据传输 3.1 数据存储

  每个微信小程序都可以有自己的本地缓存,可以通过微信提供的API对本地缓存进行读写和清除。API的应用如表3-1所示:

  表3-1 微信小程序提供的不同API对比(点击查看大图)

  同一个微信用户和同一个小程序的最小存储限制为10MB,存储按用户维度隔离:

  1、在同一个设备上,用户A不能读取用户B的数据;

  2.不同的小程序程序不能互相读写数据。

  3.2 发送程序

  SDK采集是客户端的数据,用户的行为数据通过网络应用发送到指定的服务器。但是,在线应用程序是稳定的。如果数据是连续触发的,可能会先发送后到达。例如:小程序在全埋状态下启动时,会间歇性发送小程序启动、小程序显示、小程序页面浏览三个预设事件,但到达服务器的程序可能是小程序页面浏览事件最先,和小程序页面浏览事件开始事件最初到达。直观上看,用户行为会很不合理:先触发小程序的页面浏览事件,再触发小程序的启动和小程序的显示。

  

  为了保证发送程序,SDK会在数据发送前建立数据发送队列,保证用户行为数据按照正确的程序入库,从而产生正确的行为顺序。这是怎么做到的?SDK发送数据队列中的数据时,默认按照程序发送:一条数据返回发送成功状态后,依次发送下一条数据,保证了大部分异常进程被正确发送。但是,如果后续的数据传输卡住了,没有返回状态怎么办?SDK的解决方案是设置超时时间:

  send_timeout:队列发送超时时间,默认1000毫秒。如果数据发送时间超过send_timeout且没有返回结果,则强制发送下一条数据;

  datasend_timeout:数据发送超时时间,默认值为3000毫秒,如果数据发送时间超过datasend_timeout且没有返回结果,应用程序将被强制取消。

  因此,构建数据发送队列可以解决客户端行为数据发送程序混乱的问题。

  3.3 发送形式 3.3.1 实时发送

  默认情况下,微信小程序SDK中的数据采集采用即时采集和即时发送的策略。因为没有应用本地缓存,所以减少了简单的缓冲、读取和发送监管过程。需要注意的是在线小程序中应用的数据接管地址需要配置请求非法域名(在微信公众平台配置→开发→开发设置→服务器域名),否则SDK的数据采集 无法发送。

  通过网络发送数据时,防止网络条件不好时数据发送失败的问题是无能为力的。一旦数据发送失败,数据就会丢失,因为没有缓存逻辑。所以微信小程序SDK降低了批量发送的性能。

  3.3.2 批量发送

  批量发送模式下,数据生成时,将数据存储到storage中(存储数据数量有限,最多可存储300个),将storage中存储的数据合并发送满足发送条件后。其中,发送条件包括:

  时间距离:每隔一定时间发送一次数据(默认6秒);

  存储数据个数:当存储数据达到一定数量时发送一次数据(默认6个);

  进入后台:小程序进入后台时发送一次数据。

  满足以上三个发送条件中的任意一个即可发送数据。

  如果数据传输失败,则保存发送的数据,满足发送条件后,将尝试与后续数据一起发送。这样可以减少网络应用,节省服务器资源,有效增加一些数据传输过程中的丢失问题。

  四、调试事件信息

  集成SDK并触发一些事件后,默认将采集的数据实时发送到Sensor。那么我们如何知道SDK采集的数据是否不完整以及发送是否成功呢?这里我们提供两种形式的调试事件信息:本地调试和实时数据查看。

  4.1 本地调试

  默认情况下,SDK会在微信开发者工具的Console面板打印采集的数据信息,如图4-1所示:

  图 4-1 SDK 打印的数据信息

  在开发工具的控制台面板上看到打印的数据信息后,说明SDK采集已经收到小程序中的数据,但不代表发送成功。查看数据发送状态,可以在微信开发者工具的网络面板中查看SDK数据应用,如图4-2所示:

  图 4-2 SDK 发送数据请求

  如上图,Network面板中有一个SDK数据申请,申请状态码为200,说明SDK成功将采集的数据发送到Sensors。

  4.2 实时数据查看

  4.1节描述了客户端SDK采集数据的处理过程,那么采集的数据会发到哪里呢?能够实时查看诸神攻略背后的数据。在 Sensors Analysis Backing → Embedding Governance → Real-time Import Data Query中,点击“开始刷新”按钮,可以看到有数据录入。如图 4-3 所示:

  图 4-3 Sensors Analytics 支持的实时导入数据查询

  五、总结

  本文对微信小程序SDK进行了简单的介绍,概述了微信小程序SDK的基本功能,旨在让大家对它有一个初步的了解。对于具体的应用和实现原理等相关常识,会在后续文章中逐步介绍给大家。

  文章来源:公众号神策技术社区

  【腾讯云】云产品限时发售,热门1核2G云服务器首年50元

  阿里云限时活动-2核2G-5M带宽-60G SSD-1000G月流量,特价99元/年(原价1234.2元/年,可直接购买3年),抓紧时间

  内容分享:手机端网站SEO优化排名稳定技巧分享

  这是很多公司和网站管理员为了在百度和其他搜索引擎上获得首页排名而非常关心的话题。这是一个优化移动 网站SEO 排名的意见问题。不同的人对SEO排名有不同的理解,从而提高了网站的关键词排名技巧。下面南牛网详细介绍移动网站SEO优化排名提升技术。

  1.网站空间安全稳定

  不管是做网站关键词排名还是移动网站SEO优化,首先要保证网站有良好稳定的服务器环境,这点很重要今天的排名优化。网站的安全空间是保证首页关键词排名的首要条件。如果企业网站服务器的稳定性较差,会给他们带来不好的浏览和爬取体验。因此,网站SEO优化排名会比较困难。

  

  2.及时改善网站用户体验

  用户体验是为用户提供好的网页和优质的内容,能够有效解决用户的问题。这样的网站自然会在搜索引擎中排名更高的关键词。为了提高用户体验,用户需要从用户的角度来查看网站上的内容。因此,我们在手机网站上做关键词排名,结合用户喜欢的内容、展示和手机容易找到的位置,将带来更多用户点击网站以获得更好的搜索引擎排名。

  3. 密切关注你的竞争对手

  让你的网站在搜索引擎中获得稳定的排名,做好竞技排名,关注搜索引擎优化的基本内容,了解同行的做法,每天使用优化技巧和方法,学习借鉴互相,提高网站 SEO 的缺点使得移动网站SEO 的优化结果近乎完美。

  4、打造优质外链

  

  做好网站的外链优化。现在,通过一个高权重、高流量的外链平台,可以为网站带来更多的优质蜘蛛,对网站的采集和索引有很大帮助。同时,如果你想让你的网站在搜索引擎中获得稳定的排名,这也是优化与网站同等质量的朋友链的更好方法。

  5、有价值原创内容的每日更新

  今天,移动端网站要想排名更多关键词并上首页,就需要每天持续输出高质量的原创文章,这样网站可以拥有更多的页面,参与排名,从而提高关键词在搜索引擎中的竞争力。如果大量抄袭文章被采集,搜索引擎将难以识别,自然不会为网站带来更好的排名,但对网站也是有利的SEO的发展造成了很大的危害。

  以上就是对移动网站SEO排名技术的简单介绍。进行网站SEO时需要注意的优化策略和细节会越来越多。不断调整,对网站内容质量和价值的要求越来越高。因此,保持高质量的内容输出可以让 网站 在搜索引擎中获得良好的排名。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线