前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Oneid数据融合见解

Oneid数据融合见解

原创
作者头像
腾讯优码二维码
发布2025-01-08 20:11:08
发布2025-01-08 20:11:08
1270
举报

接触了大量企业客户项目,沟通过程中发现很多都需要去解决数据打通,实现所有数据融合。 数据融合是指数据埋点上报后,如何把不同端/系统的数据打通。如CRM系统、线下终端、线上APP、小程序、公众号融合,实现oneid数据串联。与很多行业人沟通探讨过,发现可以讲的特别清楚的不多,结合行业资料单独进行了整理研究

可以看出,数据融合是高度依赖于数据埋点的,而大部分公司都处于未埋点或者埋点不规范阶段。因此先花一点点篇幅介绍数据埋点

数据埋点

数据埋点:市场上有各种各样埋点技术,究竟选择哪种让客户很困惑。埋点过程中客户要做什么,腾讯要提供什么都需要提前确认好。目前市场上主要有三种埋点技术:代码埋点、全埋点、可视化埋点

  •  代码埋点

客户端人员通过在SDK里敲代码方式进行埋点。腾讯会提供一份初始化SDK包和详细埋点方案(见下图),该SDK包能够采集启动/关闭/页面等一些最基础数据,而更加详细的埋点需要客户自身技术人员来写代码完成

缺点:需要客户技术方来进行部分开发,但很多传统企业客户并不具备该能力,即使具备也要等客户内部排期,这也是实施中最大挑战点,很慢

优点:代码埋点本身逻辑清晰、数据上报后容易核对检验

  • 全埋点

也叫无埋点、自动化埋点。全是指可以自动化采集规范的、标准化的页面访问、页内操作行为(如一些交互按钮),并将该类数据都上报上来。而一些非标准化的页面/复杂的页面数据无法采集(当前移动应用中很多页面都属于该范畴)

缺点:由于会把所有可采集的数据都上报,会给客户端带来性能问题(如耗电、内存)。同时数据上报上来后,很难理解上报字段含义,数据准确性也无法确保,又要花大量时间去梳理,反而得不偿失

优点:对于一些简单的标准化页面(如h5)能够自动化上报所有数据

  • 可视化埋点

可视化是指可以直接获得在真实页面上操作的数据。同样适用于简单标准化的页面。业务人员在前端操作,然后就可以将响应数据标记出来(见下图)

优点:对于非技术人员非常友好,可以快速去测试数据上报是否准确。同时不依赖于发版就可以看到数据

缺点:埋点类型比较有限,适合标准化的简单页面

可以看出,相对于代码埋点,全埋点和可视化埋点局限性非常大。对于一些标准化页面,通过几行简单代码就可以快速实现数据上报。所以实操中:基本上都是用代码埋点,全埋点和可视化埋点更多是炒概念。当前服务的所有传统行业客户也都是通过该技术来完成数据上报

数据融合

数据通过代码埋点上报后,接下来就要解决数据融合问题

数据融合:不同的端有不同的id,那这些id究竟如何串联起来。比如A同学在app上匿名登录,小程序上是手机号登录,线下终端是二维码扫描微信open_id登录,那如何打通?其实是打不通的

更加要解决的一种情况是:一个用户在同一个端有不同的账号,同时还有好几个端,并且这些账号之间是存在重复交叉的,那么这个时候oneid的选择判断策略是什么?如果通过选择判断策略来实现数据串联起来

对于所有的应用来说,只有两种id:设备id和应用登录id,而oneid正是通过这两者的关系来判断选择出来的

获取设备id:imei/oaid/idfv/idfa

应用id:手机号/微信号/qq号/身份证号/自身账户号/open_id/单独账户id/指纹id

Oneid:根据设备id和应用id及两者关系单独生成一个id,假设是distinct_id,通过此disitnct_id来判断是否是同一个用户(distinct_id=oneid)

存在以下四种关系策略 

策略一:仅依靠设备id来判断是否是同一个用户

案例:一个用户的oneid轨迹

  • 用户A第1天在华为p20上安装了手机管家app,匿名登录
  • sdk生成设备id:X
  • 匿名登录id:Y
  • 同时根据设备id单独生成distinct_id:Z
  • 为方便理解标记用户:1
  • 该用户第2天在该手机上注册,然后登录并产生一系列行为
  • sdk生成设备id:X
  • 登录id:Y1
  • 根据设备id单独生成distinct_id:Z
  • 标记用户:1
  • 第3天该用户在华为pad上安装体验该app,匿名登录
  • sdk生成设备id:X1
  • 登录id:Y2
  • 根据设备id单独生成distinct_id:Z1(设备id发生改变)
  • 标记用户:2
  • 第4天该用户在华为pad上安装体验该app,用之前p20账号登录
  • sdk生成设备id:X1
  • 登录id:Y1
  • 根据设备id单独生成distinct_id:Z1
  • 标记用户:2
  • 第5天该用户老婆在华为pad上自己注册,然后登录体验了该app
  • sdk生成设备id:X1
  • 登录id:Y3
  • 根据设备id单独生成distinct_id:Z1
  • 标记用户:2

5天的oneid用户标记如下:

可以看出通过设备id来判断,最大的局限性就是换机(有些情况下并不能获取到设备id),而换机又是一种非常常见的场景,所以行业内基本上不会用该种策略

策略二:基于设备id和登录id一一对应关系来标记一个用户

设备id与登录id是一一对应关系,同时根据登录id来判断是否是同一个用户

案例:一个用户的oneid轨迹

  • 用户A第1天在华为p20上安装了手机管家app,匿名登录
  • sdk生成设备id:X
  • 匿名登录id:Y
  • 同时根据设备id单独生成distinct_id:Z(X与Y一一对应)
  • 为方便理解标记用户:1
  • 该用户第2天在该手机上注册,然后登录并产生一系列行为
  • sdk生成设备id:X
  • 登录id:Y1(匿名用户注册后,会打通Y1与Y对应)
  • 根据设备id单独生成distinct_id:Z(Y与Y1一一对应,最后X与Y1一一对应)
  • 标记用户:1
  • 第3天该用户在华为pad上安装体验该app,匿名登录
  • sdk生成设备id:X1
  • 登录id:Y2
  • 根据设备id单独生成distinct_id:Z1(登录id发生变化)
  • 标记用户:2
  • 第4天该用户在华为pad上安装体验该app,用之前p20账号登录
  • sdk生成设备id:X1
  • 登录id:Y1(匿名用户注册登录后,会打通Y2与Y1一一对应)
  • 根据设备id单独生成distinct_id:Z
  • 标记用户:1
  • 第5天该用户老婆在华为pad上自己注册,然后登录体验了该app
  • sdk生成设备id:X1
  • 登录id:Y3
  • 根据设备id单独生成distinct_id:Z2
  • 标记用户:3

5天的oneid用户标记如下:

可以看出,通过将设备id和登录id的一一对应,用户识别的精准性明显提升,但对匿名用户判断可能存在一些问题

策略三:基于设备id和登录id多对一对应关系来标记一个用户

设备id和登录id是多对一关系,同时通过登录id来判断是否是同一个用户(包括基于登录id来打通多个设备id)

  • 用户A第1天在华为p20上安装了手机管家app,匿名登录
  • sdk生成设备id:X
  • 匿名登录id:Y
  • 同时根据设备id单独生成distinct_id:Z(X与Y一一对应)
  • 为方便理解标记用户:1
  • 该用户第2天在该手机上注册,然后登录并产生一系列行为
  • sdk生成设备id:X
  • 登录id:Y1(匿名用户注册后,会打通Y1与Y对应)
  • 根据设备id单独生成distinct_id:Z(Y与Y1一一对应,最后X与Y1一一对应)
  • 标记用户:1
  • 第3天该用户在华为pad上安装体验该app,匿名登录
  • sdk生成设备id:X1
  • 登录id:Y2
  • 根据设备id单独生成distinct_id:Z1(登录id发生变化)
  • 标记用户:2
  • 第4天该用户在华为pad上安装体验该app,用之前p20账号登录
  • sdk生成设备id:X1
  • 登录id:Y1(匿名用户注册登录后,会打通Y2与Y1一一对应)
  • 根据设备id单独生成distinct_id:Z
  • 标记用户:1
  •  同时由于设备id X1被关联到distinct id Z下,修正第3步的用户标记,用户标记为1 
  • 第5天该用户老婆在华为pad上自己注册,然后登录体验了该app
  • sdk生成设备id:X1
  • 登录id:Y3
  • 根据设备id单独生成distinct_id:Z2
  • 标记用户:3

5天的oneid用户标记如下:

可以看出,通过将设备id和登录id的多对一对应,换机匿名用户的判断准确性进一步提高

把三种方案放到一起,可以对比下:明显方案3要最优,但实现起来也更复杂

以上三种情况都是假设登录id唯一,但在实际产品运营中,登录id往往是多样性的,比如A用户同时用手机号、身份证号、微信号、自身账号来登录app、小程序,此时情况会更复杂,设备id与登录id是多对多关系,这就需要通过最大连通图来解决

策略四:基于设备id和登录id多对多对应关系来标记一个用户

案例:A用户和B用户在app、小程序和CRM端上有多种登录形式,具体如下

分三步来走:

1、进行数据格式转换

2、生成连通图

A用户
A用户
B用户
B用户

3、按照图节点连接生成最大连通图

A用户
A用户
B用户
B用户

至此,只要账号id或者设备id之间有连通路径(包括针对匿名用户),就标识为同一个用户id。这就是通过最大连通图来实现oneid原理(可以使用python. Graph代码实现)

结尾

在不同行业数字化运营的项目中,产品经理一方面是做好产品规划、系统部署,兼职客户沟通,同时还要解决各种各样的实施细节,很多问题的答案都需要自身主动去寻找,通过企业客户服务实践再一次得出:

在和客户/同事沟通技术过程中,凡是你隐约感到困惑/不解的问题,接下来还会不断的重复,因此要及时想办法解决(oneid就是这样),一旦遇到较真/问的仔细的客户,才真正体验技术的专业性!

最后,大家平时如果有用到二维码的场景, 比如微信群二维码分享、视频分享,抖音加粉,都可以用腾讯优码二维码这个工具,贼高效!

腾讯优码二维码官网体验:https://qr.qq.com/

小程序生码简单体验:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据埋点
  • 数据融合
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档