客户 ID 和身份验证状态

除了 Experience Cloud 访客 ID 之外,您还可以将其他的客户 ID 和身份验证状态与每位访客关联。

身份验证状态

setCustomerIDs 方法可以接受同一访客拥有多个客户 ID。这有助于您识别或定位跨不同设备的单独用户。例如,您可以将这些 ID 作为客户属性上传至 Experience Cloud,并在不同的解决方案中访问此数据。

重要

客户属性和核心服务功能要求使用 setCustomerIDs(客户 ID 同步)。同步客户 ID 是一种适用于 Analytics 的可选识别方法。Target 需要使用 Visitor.AuthState.AUTHENTICATED 才能使客户属性正常工作。请参阅核心服务 - 如何启用您的解决方案,以了解相关示例。

从 Experience Cloud Identity 服务版本 1.5 开始,setCustomerIDs 包含可选的 AuthState 对象。AuthState 可根据访客的身份验证状态(例如,已登录,已注销)来识别他们。使用表中列出的状态值来设置身份验证状态。将作为整数返回身份验证状态。

身份验证状态 状态整数 用户状态

Visitor.AuthState.UNKNOWN

0

未知或从未验证。

未对访客 ID 使用 AuthState,或未在每个页面或应用程序上下文中显式设置此属性时,默认应用未知状态。

Visitor.AuthState.AUTHENTICATED

1

已经过特定实例、页面或应用程序的验证。

注意:要正常使用,Target 的用户属性需要此状态。

Visitor.AuthState.LOGGED_OUT

2

已注销。

身份验证状态用例

您可以根据用户对 Web 属性执行的操作以及他们是否进行了身份验证,来为用户分配身份验证状态。请查看下表中的一些示例:

身份验证状态 用例

Visitor.AuthState.UNKNOWN

此状态可用于以下场景:

  • 阅读电子邮件(这项操作可能意味着读者是预期的收件人,但电子邮件也可能已被转发)。
  • 从电子邮件点击进入登陆页面。

Visitor.AuthState.AUTHENTICATED

用户目前通过了您网站或应用程序上活动会话的身份验证。

Visitor.AuthState.LOGGED_OUT

用户已完成身份验证,但已主动注销。用户打算从已完成身份验证状态断开连接。用户不希望再被视为已进行身份验证。

设置客户 ID 和身份验证状态

客户 ID 可包含 ID 和身份验证状态的组合,如以下示例中所示。

重要
  • ID 区分大小写。
  • 仅将未编码的值应用于您的 ID。
  • 客户 ID 和身份验证状态未存储在访客 ID Cookie 中。必须为每个页面或应用程序上下文设置这些值。
  • 您不应在客户 ID 中包含任何个人身份信息 (PII)。如果您要使用 PII 来识别访客(例如电子邮件地址),我们建议您存储信息的哈希版本或加密版本。ECID 库支持对用户标识符进行哈希处理。请参阅对 setCustomerIDs 的 SHA256 哈希处理支持
// Single ID with a single authentication state
visitor.setCustomerIDs({
    "userid":{
        "id":"67312378756723456",
        "authState":Visitor.AuthState.AUTHENTICATED
    }
});

/*
Multiple IDs with only the first ID explicitly assigned an authentication state.
The second ID is not explicitly assigned an authentication state and is implicitly
assigned Visitor.AuthState.Unknown by default.
*/
visitor.setCustomerIDs({
    "userid":{
        "id":"67312378756723456",
        "authState":Visitor.AuthState.AUTHENTICATED
    },
    "dpuuid":"550e8400-e29b-41d4-a716-446655440000"
});

// Multiple IDs with identical authentication states
visitor.setCustomerIDs({
    "userid":{
        "id":"67312378756723456",
        "authState":Visitor.AuthState.AUTHENTICATED
    },
    "dpuuid":{
        "id":"550e8400-e29b-41d4-a716-446655440000",
        "authState":Visitor.AuthState.AUTHENTICATED
    }
});

// Multiple IDs with different authentication states
visitor.setCustomerIDs({
    "userid":{
        "id":"67312378756723456",
        "authState":Visitor.AuthState.AUTHENTICATED
    },
    "dpuuid":{
        "id":"550e8400-e29b-41d4-a716-446655440000",
        "authState":Visitor.AuthState.LOGGED_OUT
    }
});

返回客户 ID 和身份验证状态

使用 getCustomerIDs 可返回客户 ID 和相关的身份验证状态。此方法会作为整数返回访客的身份验证状态。

语法

getCustomerIDs 通过以下语法返回数据。

{
    [customerIDType1]:{
        "id":[customerID1],
        "authState":[authState1]
    },
    [customerIDType2]:{
        "id":[customerID2],
        "authState":[authState2]
    }
    ...
}

示例

返回的客户 ID 和身份验证状态数据应类似于以下示例。

Object customerIDs = visitor.getCustomerIDs();

// No setCustomerIDs call on this instance
{}

// setCustomerIDs call on this instance with {"userid":{"id":"67312378756723456"}}
{
    "userid":{
        "id":"67312378756723456",
        "authState":0
    }
}

// setCustomerIDs call on this instance with {"userid":{"id":"67312378756723456","authState":Visitor.AuthState.AUTHENTICATED}}
{
    "userid":{
        "id":"67312378756723456",
        "authState":1
    }
}

// setCustomerIDs call on this instance with {"userid":{"authState":Visitor.AuthState.LOGGED_OUT}}
{
    "userid":{
        "authState":2
    }
}

// setCustomerIDs call on this instance with {"userid":{"authState":Visitor.AuthState.LOGGED_OUT},"dpuuid":{"id":"550e8400-e29b-41d4-a716-446655440000"}}
{
    "userid":{
        "authState":2
    },
    "dpuuid":{
        "id":"550e8400-e29b-41d4-a716-446655440000",
        "authState":0
    }
 }

SDK 支持

Experience Cloud ID 服务支持在我们的 Android 和 iOS SDK 代码中使用客户 ID 和身份验证状态。请参阅以下代码库:

面向 Analytics 和 Audience Manager 客户的注意事项

如果您将声明的 ID 传递至 Audience Manager,则 userid 对象需要匹配与数据源关联的集成代码。更多信息,请参阅配置合并规则代码文档中的访客 ID 服务部分。

在此页面上