您的位置:首页 > 消费 > 列表

聊聊数仓建模之IDMapping

时间:2022-03-04 11:04   来源:TechWeb   作者:笑笑   阅读量:16324   

顾名思义我们知道ID Mapping 的操作对象是ID,目标或者是动作是Mapping,也就是说我们要做的事情其实就是想把不同平台不同设备上的ID 打通,从而更好的去刻画用户,也就是说我们希望能打通用户各个维度的数据,从而更好的去服务业务服务用户。

聊聊数仓建模之IDMapping

通常公司有产品矩阵,而每个产品都有自己的注册账号产生的用户ID从公司全局,整合用户表,用户行为数据来看,确定不同产品的用户ID是相同一个人非常重要, 选取合适的用户标识对于提高用户行为分析的准确性有非常大的影响,尤其是对用户画像,推荐,漏斗,留存,Session 等用户相关的分析功能

其实对于任何分析都是一样的,如果我们不能准确标识一个用户,那么我们的计算结果就没有准确性可言,其实对于数据服务方而言,数据的准确性是我们的第一要务,我们宁愿不出数据,也不要出错误的数据。

ID Mapping 的背景网络身份证

假如没有网络身份证,那么每个商家只能基于自己的账号体系标识用户,并记录用户的行为而有了统一的网络身份证之后,各个商家之间的数据就可以打通了,天猫不仅知道用户A在淘宝系的购物数据,也能了解到该用户在社交网络的行为,以及旅游的喜好,等等

在现实的数据中,由于,用户可能使用各种各样的设备,有着各种各样的前端入口,甚至同一个用户拥有多个设备以及使用多种前端入口,就会导致,日志数据中对同一个人,不同时间段所收集到的日志数据中,可能取到的标识个数,种类各不相同。

比如用户可能使用各种各样的设备,其次是不同设备有不同的操作系统,设置是软件本身的版本也会影响我们对用户的标识。

手机,平板电脑,PC安卓手机,ios手机,winphone手机安卓系统有各种版本 ios系统也有各种版本存在的问题用户设备的标识,没办法轻易定制一个规则来取某个作为唯一标识:mac地址:手机网卡物理地址, 若干早期版本的ios,winphone,android可取到imei:安卓系统可取到,若干早期版本的ios,winphone可取到,运营商可取到imsi:安卓系统可取到,若干早期版本的ios,winphone可取到,运营商可取到androidid :安卓系统idopenuuid :卸载重装app就会变更IDFA扩展 IDFA

IDFA,英文全称 Identifier for Advertising ,可以理解为广告id,苹果公司提供的用于追踪用户的广告标识符,可以用来打通不同app之间的广告每个设备只有一个IDFA,不同APP在同一设备上获取IDFA的结果是一样的

苹果为了保护用户隐私,早在2012年就不再允许其生态中的玩家获取用户的唯一标识符,但是商家在移动端打广告的时候又希望能监控到每一次广告投放的效果,因此,苹果想出了折中的办法,就是提供另外一套和硬件无关的标识符,用于给商家监测广告效果,同时用户可以在设置里改变这串字符,导致商家没有办法长期跟踪用户行为。这个就叫做广告标识符,设置路径是设置—gt,隐私—gt,广告—gt,还原广告标识符,如下图所示:

常见的标识设备 ID

需要注意的是,设备 ID 并不一定是设备的唯一标识例如 Web 端的 Cookies 有可能被清空,而 iOS 端的 IDFV在不同厂商的 App 间是不同的,而且重新安装IDFV会被重置

设备

规则

Android

1.10.5 之前版本,默认使用 UUID,App 卸载重装 UUID 会变,为了保证设备 ID 不变,可以通过配置使用 AndroidId,1.10.5 及之后的版本 SDK 默认使用 AndroidId 作为设备 ID,如果 AndroidId 获取不到则获取随机的 UUID。作为业界首个面向开发的安全工具,它可以确保从开发到部署的整个过程不会给不良行为者留下入口,从而保护知识产权,防止恶意软件,并在每个联网设备中提供信任机制。

iOS

1.10.18 及之后版本,如果 App 引入了 AdSupport 库,SDK 默认使用 IDFA 作为匿名 ID1.10.18 之前版本,可以优先使用 IDFV,如果 IDFV 获取失败,则使用随机的 UUID,一般情况下都能够获取到 IDFV如果使用 IDFV 或 UUID ,当用户卸载重装 App 时设备 ID 会变也可以通过配置使用 IDFA,如果开启 IDFA ,可以优先获取 IDFA,如果获取失败再尝试获取 IDFV

登录 ID

登录 ID 通常是业务数据库里的主键或其它唯一标识所以 登录 ID,相对来说更精确更持久但是,用户在使用时不一定注册或者登录,而这个时候是没有登录 ID 的

平台 ID

设备

规则

JavaScript

默认情况下使用 cookie_id,cookie_id 存贮在浏览器的 cookie 中,依然有被重置的风险

这里还有一个问题,就是 cookie 只能隶属于同一个域名,也就是说你访问邮箱的 cookie ,与百度广的 cookie 并不是同一个,所以在网站与网站也要做 ID Mapping ,这就是为什么你在百度上搜索了养生,到购物网站上就会给你推荐枸杞。

默认情况下使用 UUID,但是删除小程序,UUID 会变为了保证设备 ID 不变,建议获取并使用 openid如果选择使用 openid 的话,请注意,由于获取 openid 是一个异步的操作,但是冷启动事件等会先发生,这时候这个冷启动事件的 distinct_id 就不对了所以我们会把先发生的操作,暂存起来,等获取到 openid 等后调用 sa.init 后才会发送数据openid 的获取和操作暂存的方法

方案详解

因此,我们在进行任何数据接入之前,都应当先确定如何来标识用户下面会介绍几种用户标识方案的原理,以及几种典型情况下的用户标识方案

方案一:只使用设备 ID

适合没有用户注册体系,或者极少数用户会进行多设备登录的产品,如工具类产品,搜索引擎,部分电商等这也是绝大多数其它数据分析产品唯一提供的方案

局限性同一用户在不同设备使用会被认为不同的用户,对后续的分析统计有影响不同用户在相同设备使用会被认为是一个用户,也对后续的分析统计有影响但如果用户跨设备使用或者多用户共用设备不是产品的常见场景的话,可以忽略上述问题

仅使用 设备 ID 标识用户虽然简单,但是对于某些应用场景这种方式不够准确,因此我们可以采用 设备 ID 和 登录 ID 的方案,在一定程度上融合 设备 ID 和 登录 ID,从而实现更准确的用户追踪。IAREmbeddedWorkbench作为一个完整的开发工具链,与安全开发工具EmbeddedTrust集成,再结合微软的DPS云设备预配置服务,可以保证企业交付具有唯一,加密,认证身份的产品,并能保证软件安装过程的安全性,同时还具有领先的更新安全管理能力和安全生产管理。

成功关联设备 ID 和登录 ID 之后,用户在该设备 ID 上或该登录 ID 下的行为就会贯通,被认为是一个用户 ID 发生的在进行事件,漏斗,留存等用户相关分析时也会算作一个用户

关联设备 ID 和登录 ID 的方法虽然实现了更准确的用户追踪,但是也会增加埋点接入的复杂度。所以一般来说,我们建议只有当同时满足以下条件时,才考虑进行 ID 关联:

需要贯通一个用户在一个设备上注册前后的行为需要贯通一个注册用户在不同设备上登录之后的行为局限性一个设备 ID 只能和一个登录 ID 关联,而事实上一台设备可能有多个用户使用一个登录 ID 只能和一个设备 ID 关联,而事实上一个用户可能用一个登录 ID 在多台设备上登录

关联设备 ID 和登录 ID虽然已经实现了跨设备的用户贯通,但是对于某些应用场景还是不够准确,因此这里提供一个新的关联方案,支持一个登录 ID 绑定多个设备 ID 的方案,从而实现更准确的用户追踪。

也就是跨端,其实这是非常常见的一种场景,例如你在PC 端和 移动端使用同一个产品。

一个用户在多个设备上进行登录是一种比较常见的场景,比如 Web 端和 App 端可能都需要进行登录支持一个登录 ID 下关联多设备 ID 之后,用户在多设备下的行为就会贯通,被认为是一个ID 发生的

局限性一个设备 ID 只能和一个登录 ID 关联,而事实上一台设备可能有多个用户使用 多用户使用同一个设备这个问题是无解的一个设备 ID 一旦跟某个登录 ID 关联或者一个登录 ID 和一个设备 ID 关联,就不能解除而事实上,设备 ID 和登录 ID 的动态关联才应该是更合理的

将上述三个方案放到一起,可以明显看到三种方案的区别,如下表所示:

方案一:仅使用设备 ID,不管用户是谁,只要设备未变,设备ID 就不变,即使多人使用同一个设备,也会被识别为同一个用户。方案二:关联设备 ID 和登录 ID,

当用户换手机后,登录账号之后的行为与换手机之前的行为贯通了,但是在新设备上首次登录之前的行为仍没法贯通,仍被识别为新的用户的行为。。

当用户把旧手机送给朋友之后,由于旧手机已被关联到自己的登录 ID 了,无法再与朋友的登录 ID 关联后续使用这台旧手机的用户们,若不登录就操作,则都会被识别为同一个用户

方案三:关联设备 ID 和登录 ID

当用户把旧手机送给朋友之后,由于旧手机已被关联到自己的登录 ID 了,无法再与朋友的登录 ID 关联后续使用这台旧手机的用户们,若不登录就操作,则都会被识别为同一个用户)

而事实上,旧手机上后续的匿名登录很难识别到底是谁,可能归为匿名登录之前最近一次登录的用户会更合理一些。

其实,三种方案没有对与错,我们应该结合自己的业务场景以及埋点复杂度来选择合适的方案。

总结

ID Mapping 就如同它的名字一样,我们要做的就是将一系列的ID 关联起来,一些列的ID 可能是用户在不同平台上的标识,也可能是用户在不同设备上的标识,也可能是用户在不同状态下的标识,总之我们就是要将这一系列的ID 关联起来,尽可能地将用户的数据打通,从而提供更加全面准确的分析。

我们知道只有打破数据孤岛数据才能发挥更大的价值,可能很多人都知道数据仓库的数据集成环节其实就是为了打破数据孤岛,其实我们的ID Mapping 也是为了打破数据孤岛,其实ID Mapping 就两个使命 1. 多端数据的识别,2. 多源数据的打通,其他的都是基于ID Mapping 的应用。

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

网站地图|CSS订阅|中国经济财经网

Copyright 2015- All Rights Reserved 中国经济财经网 版权所有 备案号:沪ICP备2022019539号-26