One ID 简介
《阿里巴巴大数据之路》中有讲到关于数据中台OneData 的方法论,其中分别涉及到OneModel、OneService、OneID。
OneID是指同一用户、同一设备的一个唯一ID。
例子一:我用我自己的电脑搜索小米11,我又用这台电脑浏览其他网站,然后这个网站给我弹小米11的广告,对,也许你认为这种都是同一台电脑,非常简单,只需要根据ip等相关信息进行匹配就可以了。例子二: 我用我自己的电脑搜索小米11,然后用自己的苹果手机,去浏览其他网站,然后其他网站又给我弹了小米11的广告,这怎么识别的呀?我们认为这台电脑、这部手机、以及其他的电子设备是可以构成一个唯一的ID,即:OneID。但是你一定会问了,那他们是怎么关联上的呢?而不会关联错呢?比如说没有把我在电脑上搜索的小米11,推到我的手机上,而不是推到我女朋友的手机上这个映射的过程,称之为:ID-Mapping
业务逻辑梳理
当使用安卓手机安装app,启动时会上报 IMEI,Mac地址 ,AndroidID,手机型号等设备信息。
同理ios 会上报相关启动信息 idfa,手机设备等信息;pc 浏览器端会上报 cookie、浏览器相关信息。
但是每一次上报的信息不一定完全相同,比如说手机权限问题,浏览器cookie 清空等问题。
LocalID:app 启动会根据AndroidID生成本地id(不需要连网),记录为本地ID
OneID:app 联网上报的设备相关信息,用来打通多个app以及多端应用的唯一ID
OneID的作用:
(1)打通手机上多个app,比如说:淘宝、支付宝、高德等等是同一个用户(未登录时,登录时用账号id)
(2)打通多端应用,比如说你在手机端看剧,然后pc web 端能知道还是同一用户(解决账号共享无法定位同一用户的问题)
Mapping流程及架构设计
(1)HBase数据表结构设计
安卓端表映射表结构(android_id_mapping),其他端类似:
OneID imei mac_adress android_id oaid
本地id 和 OneId映射表结构(local_id_mapping):
LocalID OneID
(2)为了应对高并发场景,将HBase 提前预热至Redis 缓存,redis 表设计
imei_value oneid1,oneid2...
mac_address_value oneid1,oneid2...
(3)ID-Mapping 映射流程
票选服务:根据客户端上报的参数信息去redis 里面匹配OneID,核心权重设置
如上,就实现了同一个对象在不同端的ID-Mapping,将多端数据串起来,可以做更多的分析了。
总结
嘿嘿,这个技术就是你反复看到类似广告的罪魁祸首之一。比如之前总有人问老彭几个问题,都可以用上面的技术知识解答了:
问题一:你在百度(或者京东、淘宝)上搜索一件商品(比如说:我搜索了一台iphone 手机看了看,但是没买),奇怪的是过两天,你竟然在某视频平台或者某网页上又看到了它?
回答:在视频平台看视频的时候,获取到浏览器的cookie等相关信息,通过调用百度的服务去匹配同一个设备的最新的搜索数据,然后进行广告投放,做到千人千面
问题二:而且更加奇怪的是,你明明是在电脑pc 端搜索的手机,但是你在手机上看电影的时候却能看到它,是不是也太奇怪了。
回答:手机端装了看电影的app,同时你在pc web 端之前也看在该网站有观影信息,结合账号信息+设备信息+观影信息,生成一个OneID,打通该视频网站,所有端的数据。