Cookie横幅在Adobe Experience Manager中显示错误行为
在Adobe Experience Manager中,Cookie同意脚本可能会意外执行、显示不正确的横幅内容或在用户同意之前创建Cookie。 从不同的位置(如客户端库、Adobe Launch、第三方集成或监视工具)插入脚本时,就会出现这些问题。 要解决此问题,请识别脚本源,验证同意控制,并更正实施位置。
描述 description
环境
- Adobe Experience Manager as a Cloud Service
- AEM Managed Services
- AEM Assets Essentials
问题/症状
- 在授予同意之前会显示Cookie,例如Dynatrace中的
dtCookie。 - 同意横幅显示错误的语言,例如英国横幅显示冰岛文本。
- Cookie横幅会加载,但由于第三方脚本损坏,无法点击按钮。
- 无法识别在网站中插入Cookie同意脚本的位置。
原因
将Cookie同意脚本添加到错误位置(如模板、客户端库或Adobe Launch)时,会出现这些问题。 此外,当第三方工具自动插入脚本、语言设置配置不正确或用户期望AEM支持人员修改不受支持的代码时,也会发生这种情况。
如何确认
- 使用浏览器开发人员工具检查网络请求、加载的脚本和Cookie,然后确定哪个脚本创建了Cookie。
- 在浏览器中暂时禁用可疑的脚本,并验证Cookie是否停止创建。
- 查看页面源,并确认同意脚本是否在Analytics或其他依赖脚本之前加载。
- 在专用浏览器会话中测试横幅行为,并验证多个同意选择(例如接受、拒绝和自定义选择)的结果。
- 如果横幅损坏,请在网站外部的简单HTML页面上测试同一供应商集成,以确定问题是否出现在供应商脚本本身中。
解决方法 resolution
要解决意外Cookie行为并正确识别源,请执行以下步骤:
-
通过检查浏览器DevTools
>网络>脚本和应用程序>Cookie,确认哪个脚本设置或加载了Cookie -
将检测到的脚本名称或URL与以下已知源进行比较:
dtCookieDynatrace OneAgent- Adobe Analytics或Adobe Target→的
s_cc、s_sq、AMCV_、mbox CookieInformation JS、OneTrust JS、TrustArc JS→客户提供的供应商脚本
-
登录Adobe Launch (Adobe Tags),并检查以下各项的规则和扩展:
- OneTrust、TrustArc和同意规则
- Adobe Analytics和Adobe Target规则(负责许多Cookie)
- 自定义规则插入脚本
-
在较低级别的环境中禁用规则,并确认Cookie不再显示。
-
使用AEM客户端库实施脚本
- Adobe Experience Manager as a Cloud Service:在
/apps/<project>/clientlibs下实施一个具有类别的客户端库,并通过页面策略或全局模板标头包含该库。 - AEM Managed Services:使用CRXDE Lite在标头组件中创建
/apps/<project>/clientlibs/<clientlib-name>、添加js.txt和引用客户端库。
- Adobe Experience Manager as a Cloud Service:在
-
查看页面源,并确认脚本标记显示在Analytics脚本之前。
-
如果问题仍然存在,请确认代码是通过Cloud Manager部署的,并且模板包含
customheaderlibs.html。 -
将脚本封装在OneTrust控制的标记中:
<script type="text/plain" class="optanon-category-C0002"> ... </script> -
在专用浏览器会话中打开该页面,并确认只有在用户单击 接受 后,脚本才会加载。
-
如果验证失败,请确认供应商仪表板中的
OneTrust类别映射是否正确。 -
验证Dynatrace OneAgent是否正在注入
dtCookie(仅限AEMaaCS) -
在Adobe Launch或嵌入的站点JavaScript中找到语言映射。 如果映射显示
IS而不是EN-UK(案例2),请在以下文件中替换不正确的语言代码:/etc.clientlibs/.../clientlib-site.min.js- Adobe Launch属性JavaScript
(launch-xxxx.min.js)
-
验证供应商脚本是否正常运行。 支持人员确认,问题完全源自TrustArc端。