互联网技术 / 互联网资讯 · 2024年3月25日

ID 映射在数据仓库建模中的应用与方案比较

字面意思是,ID 映射的对象是身份标识,目标是将不同平台、不同设备上的 ID 统一起来,以更准确地刻画用户画像,使跨系统的数据可以协同服务业务与用户。

在企业结构中,通常存在多条产品线和各自独立的注册账号。对全局用户表和行为数据进行整合时,识别同一用户在不同产品中的 ID 是否对应同一个人,至关重要。这会直接影响用户画像、推荐、转化漏斗、留存及会话等分析结果的准确性。

任何分析都依赖于对同一用户的准确识别。对数据服务方而言,数据的准确性是首要任务,宁可不提供数据,也不提供错误数据。

背景:统一身份标识

若没有统一的网络身份证件,各商家只能以自己的账号体系标识用户并记录行为。引入统一的网络身份后,各平台之间的数据便可打通,形成跨域的用户全貌,进而更全面地理解用户在购物、社交、旅游等方面的行为。

现实环境中,用户会使用多种设备、通过多样入口访问服务,同一用户在不同时间段被采集的日志中,可能出现多种不同的标识,导致打通难度增加。

设备与系统差异也会影响标识的稳定性,例如设备操作系统版本、应用版本、以及浏览器设置等因素都会改变标识。

聊聊数仓建模之 ID Mapping

常见的标识设备 ID

需要注意的是,设备 ID 不一定等同于设备的唯一身份。例如,Web 端 Cookies 可能被清空,iOS 的 IDFV 在不同厂商的应用间并非同一标识,且重新安装后可能重置。

设备规则示例

Android

1.10.5 版本前,默认使用 UUID,卸载重装会改变。为保持稳定,可配置使用 AndroidId;1.10.5 及后续版本 SDK 默认使用 AndroidId,如获取不到再使用 UUID。

iOS

1.10.18 及以后版本若集成 Adsupport,SDK 默认使用 IDFA 作为匿名 ID;1.10.18 之前,可以优先使用 IDFV,若获取失败再使用 UUID。若使用 IDFV 或 UUID,重装后 ID 可能变化。也可配置使用 IDFA,若开启则优先获取 IDFA,获取失败再尝试 IDFV。请注意 IDFA 也可能被重置。

登录 ID

登录 ID 通常来自业务数据库的主键或唯一标识,因此相对稳定且更精准,但用户可能在未注册或未登录时产生行为,此时无法获得登录 ID。

平台 ID

设备规则

JavaScript

默认使用 cookie_id(示例:15FFdb0a3f898-02045d1cb7be78-31126a5d-250125-15FFdb0a3FA40a),cookie_id 存储于浏览器的 cookie 中,仍存在被重置的风险。

此外,cookie 只能在同一域名下生效,因此同一个用户在不同域名下的 cookie 并非同一标识,这也是为何跨站点打通需要 ID 映射的原因之一。

微信小程序

默认使用 UUID,但小程序删除后会改变。为确保稳定性,通常建议使用 openid(示例:oWDMZ0WHqfsjIz7A9B2XNQOWMN3E)。若选择使用 openid,请注意异步获取带来的初始数据 distinct_id 不准的问题,因此需先将前序操作暂存,获取到 openid 后再统一发送数据。openId 的获取与暂存策略。

实际上,这些平台多指向更大生态,例如微信、今日头条等,我们往往借助这些平台的用户标识进行识别,也会在此基础上为自身平台创建专属的用户表示(通常是用户的登录 ID)。

方案详解

在接入数据前,首先确定如何标识用户。下面介绍几种常见的用户标识方案及其应用场景。

方案一:仅使用设备 ID

适用于无注册体系、极少数多设备登录的场景,如部分工具类产品、搜索引擎、部分电商。此方案是多数数据分析产品的默认选择。

局限性:同一设备上不同用户可能被识别为同一用户,或同一用户跨设备使用时被错误识别,需结合业务场景评估影响。

方案二:设备 ID 与登录 ID(一对一)

结合设备 ID 与登录 ID,可以提升标识准确性,适用于需要跨设备追踪但设备层级仍能提供一定分辨率的场景。

实施要点:成功关联后,该设备或登录下的行为可视为同一用户;在事件、漏斗、留存等分析中也会归入同一用户。

适用条件:需要贯通设备注册前后行为,或跨设备登录后的行为;但也要注意,单设备通常对应一个登录 ID,而一个登录 ID 也可能绑定到多设备,存在一定局限性。

方案三:设备 ID 与登录 ID(多对一)

在单一登录 ID 能关联多设备的场景下,允许一个登录 ID 绑定多个设备 ID,从而实现更广域的跨设备贯通。

示例:PC 端与移动端使用同一产品时的跨端贯通。

局限性:一个设备 ID 可能对应多个登录 ID;一个登录 ID 也可能在多设备上使用。设备-登录的动态关联比静态绑定更合理,但实现复杂度也更高。

方案比较

将三种方案放在一起对比,可以看出差异所在。

方案一:仅使用设备 ID,身份不区分,设备不变时标识也不变;多人共用同一设备时也会被识别为同一用户。

方案二:设备 ID 与登录 ID(一对一),换设备后行为贯通,但换机前的历史行为在新设备上首次登录前可能仍然不可贯通。

若旧手机被他人使用且未登录,则旧手机上的后续行为可能被错误归类;旧设备若未绑定或更新,后续行为也可能混乱。

方案三:设备 ID 与登录 ID(多对一),旧设备在未重新进行登录前的行为难以清楚识别,匿名登录在跨设备时也可能归属最近一次登录的用户,因此需结合具体场景进行判断。

其实,这三种方案并无绝对对错,应结合业务场景和埋点复杂度来选择最合适的方案。

总结

ID 映射的核心在于建立一组跨平台、跨设备、跨状态的标识之间的关联,以尽可能打通用户数据,提供更全面、精准的分析结果。

破除数据孤岛是提升数据价值的关键,数据仓库的集成工作也是为了解决同一问题:通过有效的标识与打通,提升多源数据的协同能力。ID 映射具有两大使命:一是识别多端数据,二是打通多源数据,其它应用都围绕这两点展开。