微信小程序使用原生,不使用任何框架,不使用任何sdk,自主开发上报,手动埋点,曝光,数据集成等。
用户行为日志和埋点是所有电商绕不过去的功能点,它为决策提供了重要数据支撑。随着小程序装修体系的上线后,首页,活动页更加的多样化,对于每个坑位的数据,以及后续的影响更加的重视。埋点数据采集对于促销活动的策略制定、及时调整及转化效果的验证都至关重要。
javascript
复制代码
`const timer = (() => {
let _timer;
return {
start() {
if (_timer) {
return;
}
_timer = setTimeout(() => {
_timer = null;
// 上报
}, 10000);
},
clear() {
clearTimeout(_timer);
_timer = null;
},
};
})();
class ubCore {
constructor(){
// 事件数据集合
this.events = [];
// 锁
this.lock = true;
// 监听全部必要的属性 等到有值后解锁
EventBus.on('xx',(v)=>{
if(v){
this._unlock();
}
})
}
_unlock(){
/**
**/
}
add({eventkey, options}){
/**
**/
}
queueReport(){
/**
**/
}
report(){
// 直接上报 不通过定时器
}
}`
定义:节点区域进入可视区域达到一定比例,也就是要进入到用户的视野范围内才算真正意义上的曝光,如果只是单纯的渲染出来并不算。
曝光的场景(坑位):页面内轮播的每一张图,热区图中的每个热区,热区轮播中的每张图下的不同热区,所有的商品列表下的每个商品等等。
小程序内可以使用标准API监听元素与可见区域的相交变化。
wx.createIntersectionObserver().relativeToViewport().observe()
createIntersectionObserver
,创建观察者,设定触发回调比例
relativeToViewport
可以设定可视区域
observe
设定需要观察的节点和回调方法
优点:
javascript
复制代码
`class exposure {
// 根据API分析它需要的参数包括组件实例,目标节点,相交比例,回调函数
constructor(that, node, thresholds, callback) {
this.that = that;
this.node = node;
this.thresholds = thresholds;
this.callback = callback;
}
static creat_exposure(that, node, thresholds, callback) {
const Ep = new exposure(that, node, thresholds, callback);
Ep.createObserver();
}
createObserver() {
let obs = this.that.createIntersectionObserver({
thresholds: this.thresholds,
});
obs.relativeToViewport().observe(this.node, (res) => {
// res中可以获取该节点上dada-开头的属性数据,再进行事件的上报
...
// 回调
this.callback(res);
// 当目标节点曝光过后 停止监听 避免重复触发
obs.disconnect();
});
}
}`
由于装修体系的存在,页面上的每个坑位都是没办法预先设定的,结合上诉,可以根据数据做处理,每个数据对应一个节点或者是一个坑位,统一节点命名规则,并将关键数据通过类似data-id属性挂载在节点上,这类属性是统一归纳出来,比如坑位名称,坑位号,坑位id等等,之前都是在wxml上配置,最后在获取数据后遍历每个数据根据命名规则进行监听。
tips:注意点setData必须和监听同步执行。
javascript
复制代码
``// wxml
<block wx:for="{{list}}" wx:key="index">
<view class="product-wrapper"
id='exp-{{item.id}}'
data-id="{{item.id}}">
</view>
</block>
// js
Promise.resolve()
.then(()=>{
this.setData({ productList })
productList.forEach((item) => {
exposure.creat_exposure(this, #exp-${item.id}
, [0.7], (res) => {});
});
})``
背景需求:用户在下单或者加入购物车这2个事件触发时,如果用户经过首页,活动页,需要知道用户是从哪个坑位进入的。
在事件加入events集合时(ubCore.add
) 这一步骤中,额外建立一套新的流程 ,根据这些事件进行数据过滤,形成新的行为记录,并储存起来。
几个问题
大致分为几个步骤
getCurrentPages()
获取当前页面的路径和参数,在集合中查看是否有值,有值就删除记录,包括后面页面的记录】。因为A->B,B的记录一定是空,不会做处理。 只有当发生后退情况下D->C ,C页面的记录一定有值,并且处于C页面后只有2种情况(1)重新记录新的坑位 (2)继续后退,不管是哪种情况都可以把当前页面先进行记录清空。getCurrentPages()
获取当前页面的路径和参数,在集合中查看是否有值,有值就删除记录,包括后面页面的记录】 ,最后放入集合。当坑位发生点击但是却没有发生跳转情况。
原网址: 访问
创建于: 2023-10-10 14:30:16
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论