在数据收集中使用第一方设备ID
Experience Platform Edge Network使用Experience Cloud ID (ECID)来识别网站访客。 为了提高所拥有资产的身份持久性,您可以设置和管理自己的设备标识符,称为第一方设备ID (FPID)。 Edge Network使用FPID为Adobe解决方案使用的ECID提供种子。
本页假设您熟悉ECID和identityMap。 有关详细信息,请参阅数据收集中的标识。
何时使用FPID when-to-use
浏览器限制可能会缩短Adobe用于识别回访访客的Cookie的生命周期。 如果您需要在组织拥有和控制的网站上拥有更持久的标识,FPID允许您管理自己的设备标识符并使用它来种子ECID。
使用Web SDK(包括Web SDK标记扩展)的Web实施支持FPID。 在以下情况下它们非常理想:您的主要目标是在组织拥有的域上实现更强大的身份持久性,或者您希望在拥有的Web资产上实现更好的报告和个性化连续性。 它们还允许您从控制的基础架构中设置和管理第一方Cookie。
当您的主要目标是跨多个域进行应用程序到Web切换或身份连续性时,FPID不是合适的工具。 对于这些方案,请参阅移动到Web身份共享和跨域共享。
使用FPID的好处包括:
- 对拥有的属性具有更强的持久性。
- 更好地控制设备标识符的生成和管理方式。
- 分析和个性化的持久基础。
使用FPID的权衡包括:
- 比依赖默认身份行为承担更多的实施责任。
- 在服务器端Cookie逻辑和数据收集配置之间进行协调。
- 用于确认标识符按预期使用的附加验证。
高级设置路径
FPID的工作方式 how-fpids-work
使用确定性算法将传递给Adobe Experience Cloud的FPID转换为ECID。 每次将相同的FPID发送到Edge Network时,都会从FPID中植入相同的ECID。 使用FPID为ECID设定种子后,该ECID将从identityMap中删除,并替换为生成的ECID。 FPID未存储在Adobe Experience Platform或Experience Cloud解决方案中。
当ECID和FPID都存在时,始终使用ECID首先标识用户。 此优先级划分可确保当浏览器Cookie存储中存在现有ECID时,该ECID仍保留为主要标识符,并且现有访客计数不会存在虚增风险。 对于现有用户,在ECID过期或因浏览器策略或手动操作而被删除之前,FPID不会成为主要身份。
身份按以下顺序排定优先级:
identityMap中包含的ECID- ECID存储在Cookie中
identityMap中包含的FPID- FPID存储在Cookie中
生成和设置FPID Cookie set-fpid-cookie
Edge Network仅接受符合UUIDv4格式的ID。 不采用UUIDv4格式的设备ID将被拒绝。
- UUID具有唯一性和随机性,碰撞概率可以忽略不计。
- 无法使用IP地址或任何其他个人身份信息(PII)为UUIDv4设定种子。
- 用于生成UUID的库可用于每种编程语言。
服务器端Cookie设置 set-cookie-server
通过您自己的服务器设置Cookie时,您可以使用各种方法帮助防止Cookie受浏览器策略限制:
- 使用服务器端脚本语言生成Cookie
- 设置Cookie以响应对子域或网站上的其他端点发出的API请求
- 使用内容管理系统(CMS)生成Cookie
- 使用内容交付网络(CDN)生成Cookie
当使用使用DNS A记录(对于IPv4)或AAAA记录(对于IPv6)而不是DNS CNAME或JavaScript代码的服务器设置第一方Cookie时,它们最有效。
document.cookie方法(包括使用标记方法cookie.set())设置的Cookie几乎永远不会受到限制Cookie持续时间的浏览器策略的保护。请注意,仅支持A或AAAA记录来设置和跟踪Cookie。 数据收集的主要方法是通过DNS CNAME。 FPID是使用A或AAAA记录设置的,并使用CNAME发送到Adobe。 Adobe管理的证书计划允许您为数据收集配置CNAME。
何时设置Cookie when-to-set-cookie
在向Edge Network发送数据之前,最好先设置FPID Cookie。 如果您的实施在收集数据之前需要同意,请参阅同意第一方设备ID,以获取有关协调FPID Cookie与您的同意流程的指导。 当您确保FPID可用于从第一个请求中为ECID设定种子时,访客虚增将会降低。 在不可能的情况下,仍会使用现有方法生成ECID,并在存在Cookie的情况下充当主标识符。 生成的FPID不会成为主标识符,直到ECID不再存在。 假设ECID最终受到浏览器删除策略的影响,而FPID没有受到影响,则FPID会在下次访问时成为主标识符,并用于在每次后续访问时为ECID提供种子。
设置到期 set-expiration
Adobe建议仔细考虑FPID Cookie的生命周期。 确保将贵组织的隐私政策以及贵组织运营所在国家或地区的法律和政策考虑在内。 根据您组织的设置,您可以采用公司范围的Cookie设置策略,或根据您运营的每个区域设置中的用户而有所不同。 无论初始Cookie过期与否,请确保包含了在每次发生新网站访问时都会延长过期时间的逻辑。
Cookie标记 cookie-flags
有多个Cookie标记可影响在不同浏览器中处理Cookie的方式:
HTTPOnly:无法使用客户端脚本访问使用HTTPOnly标志设置的Cookie。 这意味着,如果在设置FPID时设置了HTTPOnly标记,则必须使用服务器端脚本语言来读取包含在identityMap中的Cookie值。 如果您选择让Edge Network读取FPID Cookie的值,则设置HTTPOnly标志可确保客户端脚本无法访问该值,但不会对Edge Network读取Cookie的能力产生负面影响。 使用HTTPOnly标记不会影响可以限制Cookie生命周期的Cookie策略。 但是,在设置和读取FPID的值时,这仍然是需要考虑的事项。Secure:使用Secure属性设置的Cookie仅通过HTTPS协议以加密请求发送到服务器。 使用此标记有助于确保中间人攻击者无法轻松访问Cookie值。 如果可能,最好设置Secure标志。SameSite:SameSite属性允许服务器确定Cookie是否随跨站点请求一起发送。 属性提供了一些针对跨站点伪造攻击的保护。 存在三个可能的值:Strict、Lax和None。 请咨询您的内部团队,确定适合您组织的设置。 如果未指定SameSite特性,则某些浏览器的默认设置为SameSite=Lax。
将FPID发送到Edge Network send-fpid
您可以通过两种方式将FPID发送到Edge Network:
方法1:配置CNAME并在数据流中设置第一方ID Cookie setting-cookie-datastreams
要从您自己的域设置FPID Cookie,您必须为Web SDK调用配置自己的CNAME,然后在数据流配置中启用第一方ID Cookie功能。 DNS中的CNAME记录允许您创建一个域名之间的别名。 此别名可使第三方服务看起来像您自己的域的一部分,使其Cookie看起来像第一方Cookie。 使用CNAME启用第一方数据收集后,将对数据收集端点发出的请求发送您域的所有Cookie。
-
与Adobe合作创建一个
CNAME记录以在您的组织内用于数据收集。 有关完整过程,请参阅Adobe管理的证书计划。 -
在数据流中启用 First Party ID Cookie 选项。 此设置会告知Edge Network在查找第一方设备ID时引用指定的Cookie,而不是在身份映射中查找值。 在启用此设置时,必须提供预期存储FPID的Cookie的名称。 有关详细信息,请参阅创建和配置数据流。
方法2:在identityMap中使用FPID identityMap
作为将FPID存储在您自己的Cookie中的替代方法,您可以通过身份映射将FPID发送到Edge Network。
以下是如何在identityMap中设置FPID的示例:
{
"identityMap": {
"FPID": [
{
"id": "123e4567-e89b-42d3-9456-426614174000",
"authenticatedState": "ambiguous",
"primary": true
}
]
}
}
与其他标识类型一样,您可以将FPID与identityMap中的其他标识一起使用。 以下示例包含具有经过身份验证的CRM ID的FPID:
{
"identityMap": {
"FPID": [
{
"id": "123e4567-e89b-42d3-9456-426614174000",
"authenticatedState": "ambiguous",
"primary": false
}
],
"EMAIL": [
{
"id": "user@example.com",
"authenticatedState": "authenticated",
"primary": true
}
]
}
}
如果在启用第一方数据收集时,FPID包含在Edge Network正在读取的Cookie中,则仅捕获经过身份验证的CRM ID:
{
"identityMap": {
"EMAIL": [
{
"id": "user@example.com",
"authenticatedState": "authenticated",
"primary": true
}
]
}
}
以下identityMap导致Edge Network发出错误响应,因为它缺少FPID的primary指示器。 identityMap中存在的ID中至少有一个必须标记为primary。
{
"identityMap": {
"FPID": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"authenticatedState": "ambiguous"
}
],
"EMAIL": [
{
"id": "user@example.com",
"authenticatedState": "authenticated"
}
]
}
}
迁移到FPID migrating-to-fpid
如果您从以前的实施迁移到第一方设备ID,则可能很难在低级别看到过渡情况。 为了帮助说明此过程,请考虑一个涉及以前访问过您网站的客户的情形,以及FPID迁移将如何影响在Adobe解决方案中标识该客户。
A记录设置的,因此FPID仍然存在。 FPID现在被视为主ID,用于种子化ECID,然后将其写入最终用户设备。 该用户现在在Adobe Experience Platform和Experience Cloud解决方案中被视为新访客。