解决数据收集中的身份问题
身份问题通常表现为下游报表中的症状(访客计数夸大、配置文件碎片或个性化受损),而不是实施本身中的错误。 此页可帮助您诊断和解决Web SDK实施中最常见的身份问题。 有关标识在数据收集中如何工作的背景,请参阅标识概述。
检查标识值 inspect-identity
在对特定问题进行故障诊断之前,请检索Web SDK当前使用的身份值。 使用getIdentity命令查看ECID和其他标识信号:
alloy("getIdentity", { namespaces: ["ECID", "CORE"] }).then(function(result) {
console.log("ECID:", result.identity.ECID);
console.log("CORE ID:", result.identity.CORE);
console.log("Edge region:", result.edge.regionID);
});
您还可以在浏览器的开发人员工具中检查标识值:
- 打开 应用程序 选项卡(Chrome/Edge)或 存储 选项卡(Firefox/Safari)。
- 在您的域中查找前缀为
kndctr_的Cookie。kndctr_<ORG_ID>_AdobeOrg_identityCookie包含ECID。 - 打开 网络 选项卡并找到
interact或collect请求,以访问Edge Network。 检查identityMap的请求有效负载和标识句柄的响应有效负载。
常见问题 common-issues
访客计数虚增
症状: Analytics报表显示的独特访客比预期要多,或者同一人员跨会话显示为多个访客。
可能的原因:
| table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 | ||
|---|---|---|
| 原因 | 如何识别 | 解决方法 |
| Cookie生命周期短 | 检查浏览器中kndctr_个Cookie的过期时间。 如果它们在7天或更短时间内过期,则浏览器策略可能会限制Cookie持续时间。 |
使用DNS A/AAAA记录实施从服务器设置的第一方设备ID (FPID)以获得较长的Cookie持久性。 |
| 第一个请求缺少FPID | 在页面加载时检查第一个Edge Network请求。 如果不存在任何FPID Cookie,则Edge Network会生成一个新的ECID。 如果FPID是在第一个请求之后设置的,则第一个请求中生成的ECID将被孤立。 | 在Web SDK发送其第一个请求之前设置FPID Cookie。 请参阅何时设置Cookie。 |
跨域的orgId不匹配 |
跨域比较orgId配置值。 不匹配的值会导致单独的标识范围。 |
在您组织内的所有域上使用相同的orgId。 |
| 同意横幅删除Cookie | 如果您的同意实施在授予同意之前清除所有Cookie,然后Web SDK初始化,则生成一个新的ECID。 | 配置您的同意横幅以保留kndctr_ Cookie,或延迟Web SDK初始化,直到获得同意为止。 另请参阅同意和标识。 |
| JavaScript设置的FPID Cookie | 使用document.cookie设置的Cookie受浏览器限制(ITP、ETP)的约束,其生命周期有时限制为24小时。 |
使用DNS A/AAAA记录从服务器设置FPID Cookie,而不是从JavaScript设置。 |
ECID在页面之间意外更改
症状: ECID在同一域的不同页面上不同,或在每次加载页面时发生变化。
诊断步骤:
- 确认两个页面上都存在
kndctr_身份Cookie。 如果某个页面上缺少该变量,请检查是否在该页面上配置了Web SDK。 - 验证Cookie域的设置是否足够广泛。 在
shop.example.com上设置的Cookie在www.example.com上不可用。 确保第一方收集和Cookie设置基础结构使用相同的域范围。 - 检查可在导航时清除Cookie的JavaScript(例如,积极的Cookie同意脚本或隐私工具)。
- 如果使用单页应用程序,请验证是否在应用程序初始化时配置了Web SDK一次,而不是在每次路由更改时都重新初始化。 重新初始化可以生成新的ECID。
FPID没有为ECID<>设定种子
症状:您已设置FPID Cookie,但getIdentity返回的ECID在每次访问中不一致,或者FPID未出现在Edge Network请求有效负载中。
诊断步骤:
- 验证FPID Cookie格式: FPID必须是有效的UUIDv4。 打开浏览器的开发人员工具,找到FPID Cookie,并确认值与模式
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx匹配。 - 检查数据流中的Cookie名称:如果您使用的是数据流Cookie方法,则数据流中配置的Cookie名称必须与服务器设置的Cookie名称完全匹配。
- 确认在请求中发送了Cookie:在“网络”选项卡中,检查Edge Network请求中的
Cookie标头。 必须包含FPID Cookie。 - 检查身份优先级:如果现有ECID已存储在
kndctr_Cookie中,则它优先于FPID。 只有在不存在现有ECID时,FPID才会种子生成新的ECID。 查看FPID的工作方式以了解完整优先级顺序。 - 验证CNAME:如果使用数据流Cookie方法,请确认您的第一方收集CNAME已正确配置,请求将通过它路由。
跨域标识不起作用
症状:访客从您的某个域单击到另一个域,即被视为目标域上的新访客。
诊断步骤:
- 检查URL:当访客单击链接时,检查目标URL。 它必须包含
adobe_mc查询字符串参数。 如果缺少参数,则源域不会附加该参数。 请参阅实施跨域共享。 - 检查时间:
adobe_mc参数将在五分钟后过期。 如果加载目标页面耗时过长(例如,由于重定向或网络速度慢),则参数可能会在Web SDK读取之前过期。 - 验证
orgId是否匹配:两个域必须使用相同的orgId。 组织ID不匹配会导致目标域拒绝已切换的身份。 - 确认Web SDK位于目标:目标页面必须已安装并配置Web SDK。 如果没有该参数,
adobe_mc参数将被忽略。 - 检查URL剥离:某些重定向服务、CDN或服务器端逻辑剥离未知的查询字符串参数。 验证
adobe_mc在源页面和目标页面之间的任何中间重定向中是否仍然有效。
移动到Web标识切换失败
症状:在移动应用程序中启动并打开WebView或移动浏览器的访客在Web端被视为新访客。
诊断步骤:
- 验证URL:记录传递给WebView的URL。 它必须包含由
adobe_mcgetUrlVariables生成的参数。 - 检查SDK版本: Edge Network扩展的移动身份版本必须为1.1.0或更高版本,并且Web SDK版本必须为2.11.0或更高版本。
- 检查时间:与跨域共享一样,
adobe_mc参数将在五分钟后过期。 确保在构建URL后立即加载WebView。 - 确认
orgId匹配: Experience Cloud组织ID在移动设备SDK和Web SDK配置中必须相同。
recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1