Quick Audience在V4的表数据导入、事件数据上报等流程中引入自动的ID Mapping环节,通过ID Mapping实现跨来源渠道、跨ID类型的用户身份识别、用户数据拉通。
背景
您的Quick Audience数据池中可能有来源于多个渠道的同一个用户的数据,例如,导入的来自淘宝、微信小程序、自有App的订单数据表,导入的来自CRM的标签数据,埋点采集上报的自有App、小程序、Web或第三方系统的行为事件数据,上传的人群ID列表。
如何识别不同渠道中的同一个用户,使各渠道的数据形成合力,协助您的洞察决策,是V4版本着重解决的问题。
ID分类
了解不同渠道的常见注册、登录流程后,我们发现部分ID类型互相关联,可以对用户身份的识别起到穿针引线的作用。
用户ID大致可以分为四类:
用户标识:本质上能够代表一个用户,在用户注册三方平台、企业一方账号时可能需要填写,例如:手机号码、电子邮箱等。
设备ID:电子设备自带的ID,通常通过App埋点采集,例如:设备MAC地址、手机IMEI、安卓设备IMSI、OAID、苹果设备IDFA等,并非与人本身绑定。
企业一方ID:由企业一方的业务系统为用户生成的ID,例如:企业一方CRM的会员ID。在Quick Audience中,会员ID可以录入为OneID类型。
三方平台ID:用户在三方平台里的ID,例如:微信UnionID、OpenID、淘宝ID、淘宝昵称、支付宝ID、微博ID等。在某些情况下,用户会将三方平台ID通过手机号等方式与企业一方ID进行绑定。
可以看出,用户标识很可能与企业一方ID、三方平台ID互相关联,设备ID很可能与埋点App的账号ID互相关联。无论数据来自于何种渠道,当不同类型的ID互相关联时,我们认为这些ID属于同一个用户。
ID Mapping就是我们依据这一思路实施的用户身份识别。
ID Mapping基本逻辑
总体来说,ID Mapping通过互相关联的ID数据进行用户身份识别、去重,最终为每个独立用户赋予Quick Audience中唯一身份标识QAID。
QAID是用户通过ID Mapping获得的唯一身份标识。在后续操作中,将使用QAID代表用户,当需要使用、推送其他ID类型、标签等数据时,将根据QAID匹配出该用户的所有ID类型、数据。
如遇ID已被加密,ID Mapping过程中:
对于已被AES加密的ID,将先进行解密,得到未加密状态的ID。
如遇已被MD5/SHA256加密的ID,将对同类型ID的其他未被加密ID进行同样的加密,使所有用于比对的ID均处于相同的加密状态。
首先,我们来看一个最简单情况下的ID Mapping示例:
示例1:同一手机号关联多种ID
第一日:
导入的订单表包含一行:淘宝ID1、手机号1……
App埋点采集上报的行为事件表含一行:IDFA1、手机号1……
则系统判定这些ID都属于同一个用户,并为这个用户赋予QAID1。
结果如下表所示。
QAID | 手机号 | 淘宝ID | IDFA |
QAID1 | 手机号1 | 淘宝ID1 | IDFA1 |
ID Mapping中的ID冲突与解决办法
上述示例1中的每一种ID都仅有一个值,如果出现一种ID有多个值的情况呢?
此时,系统将依据ID的单值/多值性、优先级进行ID的合并和取舍。本章节中,为了表述方便,假设涉及的几种ID的单值/多值性、优先级如下表所示。
下表中仅为假设,实际的系统预置ID的默认配置请查阅系统预置ID,并且支持您修改配置和自定义ID。
ID | 单值/多值 | 优先级 |
手机号码 | 单值 | 1 |
淘宝ID | 多值 | 2 |
IDFA | 单值 | 3 |
单值/多值ID
单值ID:单个用户的同一种单值ID仅能有一个值。
例如:按照上表,一个用户仅能有一个手机号码、一个IDFA。
若同一个ID关联的某种单值ID有多个不同的值,就是发生了冲突,需要通过ID优先级判定是否将其视为同一个用户,请参见下面的ID优先级说明。
若同一种单值ID的多个值被系统判定属于同一个用户,将仅能保留其中一个值,需要按照整体合并策略判断保留哪一个值。您可以选择整体合并策略,可选的策略有:
默认策略:保留创建时间最早的ID类型值。例如:昨日用户A记录IDFA1,今日用户A记录IDFA2,则系统将保留IDFA1。
保留更新时间最晚的ID类型值。例如:昨日用户B记录IDFA3,今日用户B记录IDFA4,则系统将保留IDFA4。
保留一段时间内出现频次最高的ID类型值。例如:过去1个月导入的数据中,用户C记录IDFA5出现了20次,记录IDFA6出现了10次,则系统将保留IDFA5。
多值ID:单个用户的同一种多值ID可以有多个值。
例如:按照上表,一个用户可以能有多个淘宝ID。
若同一种多值ID的多个值被系统判定属于同一个用户,将保留所有值。多值ID不会发生冲突。
ID优先级
若同一个ID关联的单值ID发生冲突,需要依据ID优先级判定是否将其视为同一个用户:
高优先级的单值ID发生冲突,低优先级的ID相同,则判定为不同的用户。
高优先级的ID相同,低优先级的单值ID发生冲突,则判定为同一个用户。
下面以手机号和IDFA为例:
关联关系 | 预设条件 | 结论 |
同一个IDFA关联了2个手机号。 |
| 2个手机号属于不同的用户。 |
同一个手机号关联了2个IDFA。 | 2个IDFA均属于同一个用户,将按照整体合并策略舍弃其中一个,确保最终为单值。 |
接下来我们看一些复杂情况下的ID Mapping示例。为了方便表示,所有表中的ID类型将按优先级从高到低排序。
示例2:同一手机号关联不同淘宝ID、不同IDFA
第一日已有以下用户数据:
QAID | 手机号(单值) | 淘宝ID(多值) | IDFA(单值) |
QAID1 | 手机号1 | 淘宝ID1 | IDFA1 |
在此基础上,第二日:
导入的订单表包含一行:淘宝ID2、手机号1……
App埋点采集上报的行为事件表含一行:IDFA2、手机号1……
在前述单值/多值规则、优先级规则下:
由于IDFA为单值,IDFA2与IDFA1发生冲突,但由于IDFA优先级比手机号低且手机号一致,因此仍然判定为同一个用户。在默认的整体合并策略下,将仅保留创建时间最早的IDFA1。
判定为同一个用户后,由于淘宝ID为多值,多个淘宝ID均得以保留。
结果如下表所示。
QAID | 手机号(单值) | 淘宝ID(多值) | IDFA(单值) |
QAID1 | 手机号1 | 淘宝ID1, 淘宝ID2 | IDFA1 |
示例3:同一淘宝ID关联不同手机号
在上表中第二日用户数据的基础上,第三日:
导入的订单表包含一行:淘宝ID1、手机号2……
在前述单值/多值规则、优先级规则下:
虽然淘宝ID匹配,由于手机号为单值,手机号2与手机号1发生冲突,且手机号优先级比淘宝ID高,因此判定两个手机号归属于不同的用户。
结果如下表所示。
QAID | 手机号(单值) | 淘宝ID(多值) | IDFA(单值) |
QAID1 | 手机号1 | 淘宝ID1, 淘宝ID2 | IDFA1 |
QAID2(新用户) | 手机号2 | 淘宝ID1 | - |
示例4:同一淘宝ID属于不同用户,再导入同一淘宝ID时判定为哪个用户?
在上表中第三日用户数据的基础上,第四日:
上传的人群ID文件包含一行:淘宝ID1
在前述单值/多值规则、优先级规则下:
QAID1、QAID2都有淘宝ID1,无法确认新上传的淘宝ID1属于哪个,因此最终判定为QAID1、QAID2以外的第三人。
结果如下表所示。
QAID | 手机号(单值) | 淘宝ID(多值) | IDFA(单值) |
QAID1 | 手机号1 | 淘宝ID1, 淘宝ID2 | IDFA1 |
QAID2 | 手机号2 | 淘宝ID1 | - |
QAID3(新用户) | - | 淘宝ID1 | - |
示例5:合并QAID
我们通过一个示例来了解QAID合并前后对使用用户数据的影响。
示例中,QAID4的IDFA3是新增数据,通过IDFA3进行合并。
合并前:
QAID | 淘宝ID(多值) | IDFA(单值) | 创建时间 |
QAID3 | 淘宝ID3 | IDFA3 | 2021.10.1 00:00:00 |
QAID4 | 淘宝ID4 | IDFA3 | 2021.10.2 00:00:00 |
合并后:
QAID | 淘宝ID(多值) | IDFA(单值) | 创建时间 |
QAID3(曾用QAID4) | 淘宝ID3, 淘宝ID4 | IDFA3 | 2021.10.1 00:00:00 |
说明:
合并前,若已通过创建人群等方式引用了QAID4,合并后,通过QAID4查询用户时,可以查询到QAID3的数据,因此,人群相关的营销任务等仍能正常进行。
合并前,视为两个不同用户,分别有一个淘宝ID;合并后,视为仅有一个用户,拥有两个淘宝ID。因此,营销任务中的用户数、ID数可能随时间变化,用户数与ID数可能不一致。
ID Mapping中的标签冲突与解决办法
ID Mapping过程中,除了可能发生上面介绍的ID冲突,还有可能发生标签冲突,即对于同一个标签表内的单值型标签,若原本独立的两个用户,由于新增的数据被识别为同一个用户,在合并数据时,仅能取其中一个值。
此时,系统将保留创建时间最早的标签值。
例如:原有QAID5、QAID6两个独立用户,如下表所示。
QAID | 手机号(单值) | 淘宝ID(多值) | 标签A(单值) | 创建时间 |
QAID5 | 手机号5 | 淘宝ID5 | a5 | 2021.10.3 00:00:00 |
QAID6 | - | 淘宝ID6 | a6 | 2021.10.4 00:00:00 |
后续导入标签表时,QAID6新增手机号记录为手机号5,与QAID5手机号相同,且手机号优先级高,则ID Mapping时将QAID5、QAID6识别为同一个用户,最终保留的数据为:
QAID | 手机号(单值) | 淘宝ID(多值) | 标签A | 创建时间 |
QAID5(曾用QAID6) | 手机号5 | 淘宝ID5, 淘宝ID6 | a5 | 2021.10.3 00:00:00 |