Show Menu
主题×

whitelistParentDomain 和 whitelistIframeDomains

通过这些配置,iFrame 中和父页面上实施的不同 ID 服务代码实例可彼此进行通信。这些配置旨在帮助解决以下 2 个特定用例中存在的问题:在您能够控制或无法控制父页面/域的情况下,将 ID 服务代码加载到您所控制的域的 iFrame 中。这些配置可在 VisitorAPI.js 代码版本 2.2 或更高版本中使用。
目录:

语法

使用以下代码时,需要这两个配置元素。
配置语法
描述
whitelistParentDomain: "
Domain name of parent page
"
接受作为字符串传入的单个域名。
whitelistIframeDomains: [
"iFrame domain","iFrame domain","iFrame domain"
]
接受作为数组传入的一个或多个 iFrame 域名。

代码示例

您配置的 ID 服务代码可能与以下示例类似。
//Instantiate Visitor var visitor = Visitor.getInstance("Insert Experience Cloud Organization ID here",{ ... //Add parent page domain name and iFrame domain names whitelistParentDomain: "parentpageA.com", whitelistIframeDomains: ["iFrameDomain1.com","iFrameDomain2.com"], ... } );

用例

当浏览器阻止第三方 Cookie,并且满足以下任一条件时,这些配置可帮助解决有关设置 ID 服务 Cookie 和分配访客 ID 的问题:
  • 您拥有或没有父页面/域的控制权。
  • ID 服务代码未在父页面上安装,但在 iFrame 中实施。
You may also want to implement these configurations when you're serving video in an iFrame with Video Heartbeat . 视频心率需要 ID 服务 ID (MID) 才能正常运行。
用例 1:浏览器阻止第三方 Cookie,并且 ID 服务在 iFrame 和父页面中实施
用例元素
描述
条件
此用例包含以下条件:
  • 公司 A 在其主页上实施 ID 服务。
  • 公司 A 在其主页上的 iFrame 中实施 ID 服务。
  • 公司 A 拥有父页面和 iFrame,并且在这两个位置都实施了 ID 服务。
  • 客户在阻止第三方 Cookie 的浏览器中加载父页面。
结果
根据以上条件,ID 服务:
  • 在父页面上正常运行。ID 服务会请求和设置 AMCV Cookie,并将唯一 ID 分配给网站访客。
  • 无法在 iFrame 中运行。这是因为浏览器将 iFrame 视为第三方域,因而会阻止 ID 服务设置 AMCV Cookie。
解决方案
使用这些白名单配置,修改 iFrame 中的 ID 服务
Visitor.getInstance
函数。在代码中指定父域和子域。通过这些配置,iFrame 中的 ID 服务代码可在父页面上的 ID 服务代码中检查访客 ID。
如果 iFrame 中的 ID 服务代码没有收到父页面的响应,这些配置会生成一个本地访客 ID。
用例 2:从您没有控制权或未使用 ID 服务的父页面中内嵌的 iFrame 请求 ID
用例元素
描述
条件
此用例包含以下条件:
  • 公司 A 未使用 ID 服务。
  • 公司 A 在页面上加载 iFrame。此 iFrame 归公司 B 所有,且在与公司 A 不同的域中加载。
  • 浏览器阻止第三方 Cookie。
结果
根据以上条件,ID 服务:
  • 无法在 iFrame 中运行。这是因为浏览器将 iFrame 视为第三方域,因而会阻止 ID 服务设置 AMCV Cookie。
  • 无法从父页面获取访客 ID,因为公司 A 未使用此服务。
解决方案
使用这些白名单配置,修改 iFrame 中的 ID 服务
Visitor.getInstance
函数。在代码中指定父域和子域。通过这些配置,iFrame 中的 ID 服务代码可在父页面上的 ID 服务代码中检查访客 ID。
如果 iFrame 中的 ID 服务代码没有收到父页面的响应,这些配置会生成一个本地访客 ID。

配置安全性

您可以安全地实施这些配置,因为:
  • 在父域和 iFrame 域中实施的 ID 服务必须使用相同的组织 ID。如果父域或 iFrame 中的组织 ID 不同,这些白名单配置将无法正常工作。
  • 这些配置仅与代码中指定的域和 iFrame 进行通信。
  • iFrame 和父页面之间的通信遵循特定的格式。如果父页面上的 ID 服务未收到采用预期格式的请求,此共享过程将失败。

支持的访客 API 方法

在实施这些白名单配置时,ID 服务支持一组有限的公共 API 方法。支持的方法根据上面所述的用例情景而有所不同。
用例
支持的方法
用例 1
  • getMarketingCloudID
  • getAudienceManagerLocationHint
  • getAudienceManagerBlob
  • getSupplementalDataID
  • getCustomerIDs
用例 2
  • getSupplementalDataID
  • getMarketingCloudVisitorID