用流量分析代码区分曝光、点击、访问与转化,关键是让每个环节都有独立、可核对的事件记录,而不是只看一个页面浏览量。曝光代表内容被展示,点击代表用户主动触发跳转或交互,访问代表页面或应用被实际加载并产生会话,转化则代表完成了事先定义的业务目标。四者口径不同,必须分别埋点、分别验收,否则数据会互相污染。
在写代码之前,先把每个环节的判定标准写清楚,这是后续所有对比的基础。
如果曝光和点击用同一个事件名上报,或者访问与转化共用页面浏览,后续就无法拆分。定义阶段就要给每个环节分配唯一的事件标识。
曝光、点击、访问、转化应各自使用不同的事件名,并通过参数携带上下文。下面是一个结构示意,标签仅为说明用途:
track('exposure', {id: 'card_01', position: 3})
track('click', {id: 'card_01', target: 'detail'})
track('page_view', {path: '/detail', referrer: 'list'})
track('conversion', {type: 'signup', step: 'success'})
曝光事件要带元素标识和位置,点击事件要带目标去向,访问事件要带来源路径,转化事件要带转化类型。这样在报表里才能按同一标识把曝光、点击、访问串成一条链路,同时又不把它们混为一谈。
如果目标是拿到一份能区分四环节的报告,倒推需要以下交付物:
责任划分上,前端负责曝光、点击和页面访问,后端或业务系统负责转化回传。验收时由提出需求的一方按事件字典逐条验证,不能只看代码是否合并。
验收不是看总量,而是看链路能否对齐。可以按以下步骤执行:
判断结果的标准是:同一用户的一次完整行为,在数据中应表现为曝光、点击、访问、转化各自独立且可关联,而不是合并成一条记录。若四者无法拆分,说明埋点口径需要调整。
曝光被误计为访问,通常是因为列表页在数据返回时就上报了页面访问,而用户并未真正打开详情。点击被误计为转化,通常是因为把按钮点击直接当成了成功提交。处理条件是:先确认业务目标在哪一步完成,再把转化事件挂到那一步之后。对于单页应用,路由切换不一定产生新的页面访问,需要按实际加载行为决定是否上报。
下一步,先整理一份当前项目的事件字典,标出曝光、点击、访问、转化各自对应的事件名和触发位置,再按上面的验收清单逐项核对,找出被合并或缺失的环节。