SPM/SCM 流量跟踪体系

2023-12-04 13:36
文章标签 体系 流量 跟踪 scm spm

本文主要是介绍SPM/SCM 流量跟踪体系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SPM

SPM(shopping page mark,导购页面标记) 是淘宝社区电商业务(xTao)为外部合作伙伴(外站)提供的跟踪引导成交效果数据的解决方案

注:也有解释 SPM 为超级位置模型(Super Position Model),自行理解即可

淘宝官方解释:开放平台-文档中心 (taobao.com)

注:如果大家平时刷 b 站的话,可以看到 b 站也是有 spm,除此之外 b 站还有 vd_source 字段,额外用于统计用户信息,由登录账户访问链接自动生成追加,内部机制我不了解,但是可以理解为用户 ID,所以谨防泄露

问题

首先思考几个问题

1 .如何统计某个页面的 PV(Page View) 呢?

一种思路是直接统计服务端请求日志(nginx),只要统计该页面的请求数即可。
另一种思路是直接在客户端埋点,当访问到某个页面时,同时向日志服务器发送一条埋点日志,日志服务器处理后拿到 pv。

2 .如何追踪某个页面的来源呢?

在第一种思路下,分别统计 nginx 日志下该页面请求的 referer 头信息即可。
而第二种思路下,可以在来源里面加上不同的 URL 来源参数进行区分。

3 .请求具体来自来源页的哪个链接呢?

很显然在第一种思路下已经不能解决这个问题了,所以这个就是 SPM 做的事情,做个更加精细度的埋点,即为每个链接进行编码

介绍

image.png

SPM 示例链接: http://detail.tmall.com/item.htm?id=3716461318&&spm=2014.123456789.1.2

其中 spm=2014.123456789.1.2 便 SPM 编码,用来跟踪页面模块位置的编码,标准 spm 编码由 4 段组成,采用 a.b.c.d 的格式(建议全部使用数字),具体如下:

  • a 代表站点类型,对于 xTao 合作伙伴(外站),a 为固定值,a=2014
  • b 代表外站 ID(即外站所使用的 TOP appkey),比如您的站点使用的 TOP appkey=123456789,则 b=123456789
  • c 代表 b 站点上的频道 ID,比如是外站某个团购频道,某个逛街频道,某个试用频道等
  • d 代表 c 频道上的页面 ID,比如是某个团购详情页,某个宝贝详情页,某个试用详情页等

完整的 SPM 四位编码能标识出某网站中某一个频道的某一个具体页面

比如 xTao 合作伙伴(a=2014)中某个外站 appkey 为 123456789(b=123456789),频道 ID 为 1(c=1),页面 ID 为 2(d=2),那么 spm=2014.123456789.1.2,就唯一标识外站 123456789 的频道 1 上的页面 2,从这个页面点击出去的链接,后面都应该携带 spm=2014.123456789.1.2 的参数串

这样,通过这个编码,我们就能唯一的定位到一个 url 是由外站中哪个具体页面点击生成的

如果是站内,则 SPM 编码会有第五个参数,具体为:

  • a:网站 ID,每一个单独的网站(域名),分配唯一的 ID,如 taobao.com 的 aID 为 1,list.taobao.com 的 aID 为 a217f,item.taobao.com 的 aID 为 a217v,tmall 是 3,聚划算是 608,搜索是 a230r
  • b:网页 ID,为同一个网站下每一个网页,分配唯一的 ID,页面 A ID 为 7274553,页面 BID 为 7289245
  • c:频道 ID,为网站中不同区域划分频道,每个频道分配唯一 ID,
  • d:产品 ID,为每个频道内的每个独立产品,分配唯一 ID
  • e:同一个链接请求,为每次请求分配一个随机特征码,保证每次点击 spm 值的唯一性

注意:spm 的四位总长度 32 位,并且不支持%、&等特殊字符,请尽量使用英文以及数字

SPM 的应用场景因为 spm 编码本身是有层次的,因此:

  • 单独统计 spm 的 a 部分,我们可以知道某一类站点的访问和点击情况,以及后续引导和成交情况。
  • 单独统计 spm 的 b 部分,我们可以用来评估某一个站点的访问和点击效果,以及后续引导和成交情况。
  • 单独统计 spm 的 b.c 部分,我们可以用来评估某一个站点上某一频道的访问和点击效果,以及后续引导和成交情况。
  • 单独统计 spm 的 b.c.d 部分,我们可以用来评估某一个频道上某一具体页面的点击效果,以及后续引导和成交情况。

搭建 SPM 体系图示

image.png

作用

统计投放效果

如一个双 11 的广告页需要投放到微博、知乎和优酷等渠道,只需要为每个渠道指定一个编码,后续可以统计每个渠道的投放效果,事后按流量计费进行费用结算。

分析用户行为

假设现在有一个淘宝女装的专题页,为了进行活动引流,会在淘宝首页多处区块放置引流入口,怎么统计各个入口进行淘宝女装专题的量呢,以便后续进行优化提高入口曝光度?

一种常见的思路是每个入口进行布点,当用户进行点击时,同时向日志服务器发送一条埋点日志。但是这个方案有天然的弊端: 1、在页面跳转时,埋点日志请求可能会丢失 2、日志请求过多。

SPM 通过指定编码解决了这个问题,只需要进入页面的时发送一次埋点日志请求即可。

分析链路转化

如新用户的注册过程中,往往包含多个步骤,输入账号,验证手机,设置密码和上传头像等等,这么长的链路过程中,任何一个产品或者技术优化,都可能直接作用到用户的流失率,为了直观的看到这个效果,一般会采用漏斗图。而 SPM 的采集数据包括了精细化的来源数据,可以做出丰富的漏斗图出来分析链路转化率问题

image.png

埋点

阿里曾经退出过一款数据产品 Quick Analytics Plus(现已改名 Quick Tracking)。这款产品的文档里有对应的埋点管理模型描述,其内部的埋点管理逻辑是位置 > 事件,可以称之为位置优先的埋点模型,在该模型下,事件是限定在位置下的事件,意味着其内部可能有着成千上万的埋点事件

image.png

SCM

SCM(Super Content Model,超级内容模型) 编码是用来跟踪内容的编码。与业务内容一起下发的埋点数据,用来唯一标识一块内容。客户端打点时,将 SCM 编码作为埋点的参数上传给 UT 服务器。

SCM 规范

SCM 编码也采用 a.b.c.d 的格式,具体如下:

  • a 标识投放系统 ID,用来标识不同的内容投放方
  • b 标识投放算法 ID,用来标识投放系统产生不同内容的投放算法
  • c 标识投放算法版本 ID,用来标识投放算法的不同版本
  • d 标识投放人群 ID,用来标识不同的投放人群

区别

spm 针对的是用户位置分析,而 scm 针对的是内容分析,通过内容来源、投放算法、算法版本、对应人群四个参数标识当前用户的 feed 流推荐内容来源,再针对性的计算不同类型的 CTR 就能够做到数据追踪与复盘。

参考链接

  • 阿里云官网的 url 后带的 spm 参数有什么作用? - 知乎 (zhihu.com)
  • 解构淘宝 SPM/SCM 流量跟踪体系 – 标点符 (biaodianfu.com)
  • 基础知识储备 · tmall_event tracking (gitbooks.io)
  • 埋点-淘宝SPM流量跟踪体系 | 并发笔记 - ofcoder.com
  • 埋点的spm和scm模型 - 白加黑 (blublu.site)
  • 浅谈埋点质量管理 (qq.com)

本文由博客一文多发平台 OpenWrite 发布!

这篇关于SPM/SCM 流量跟踪体系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/453646

相关文章

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应

Verybot之OpenCV应用三:色标跟踪

下面的这个应用主要完成的是Verybot跟踪色标的功能,识别部分还是居于OpenCV编写,色标跟踪一般需要将图像的颜色模式进行转换,将RGB转换为HSV,因为对HSV格式下的图像进行识别时受光线的影响比较小,但是也有采用RGB模式来进行识别的情况,这种情况一般光线条件比较固定,背景跟识别物在颜色上很容易区分出来。         下面这个程序的流程大致是这样的:

Linux内置的审计跟踪工具:last命令

如果你是一个服务器管理员,你或许知道你要保护你的服务器的话,不仅是从外部,还要从内部保护。Linux有一个内置工具来看到最后登陆服务器的用户,可以帮助你保护服务器。   这个命令是last。它对于追踪非常有用。让我们来看一下last可以为你做些什么。   last命令的功能是什么   last显示的是自/var/log/wtmp文件创建起所有登录(和登出)的用户。这个文件是二进制

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

Java异常体系----深入讲解

JAVA异常体系 1.error 错误 程序无法处理的异常, 它是由JVM产生和抛出的,比如OutOfMemoryError.ThreadDeath等 示例: public class Test {public static void main(String[] args) {run();}public static void run(){run();}} 堆栈溢出,这是由于JV

WebShell流量特征检测_哥斯拉篇

90后用菜刀,95后用蚁剑,00后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对后三款经典的webshell管理工具进行流量分析和检测。 什么是一句话木马? 1、定义 顾名思义就是执行恶意指令的木马,通过技术手段上传到指定服务器并可以正常访问,将我们需要服务器执行的命令上传并执行 2、特点 短小精悍,功能强大,隐蔽性非常好 3、举例 php一句话木马用php语言编写的,运行