ID Mapping与用户唯一标识QAID

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个手机号。

  • 手机号、IDFA都是单值ID。

  • 优先级:手机号>IDFA。

2个手机号属于不同的用户。

同一个手机号关联了2个IDFA。

2个IDFA均属于同一个用户,将按照整体合并策略舍弃其中一个,确保最终为单值。

接下来我们看一些复杂情况下的ID Mapping示例。为了方便表示,所有表中的ID类型将按优先级从高到低排序。

示例2:同一手机号关联不同淘宝ID、不同IDFA

第一日已有以下用户数据:

QAID

手机号(单值)

淘宝ID(多值)

IDFA(单值)

QAID1

手机号1

淘宝ID1

IDFA1

在此基础上,第二日:

  • 导入的订单表包含一行:淘宝ID2、手机号1……

  • App埋点采集上报的行为事件表含一行:IDFA2、手机号1……

在前述单值/多值规则、优先级规则下:

  1. 由于IDFA为单值,IDFA2与IDFA1发生冲突,但由于IDFA优先级比手机号低且手机号一致,因此仍然判定为同一个用户。在默认的整体合并策略下,将仅保留创建时间最早的IDFA1。

  2. 判定为同一个用户后,由于淘宝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