whitelistParentDomain 和 whitelistIframeDomains whitelistparentdomain-and-whitelistiframedomains

通过这些配置,在iFrame中和父页面上实施的访客ID服务代码的不同实例可以相互通信。 它们旨在帮助解决以下两种特定用例中出现的问题:您可能会(也可能不会)控制父页面/域,以及您在自己控制的域的iFrame中加载访客ID服务代码。 它们在VisitorAPI.js代码版本2.2或更高版本中可用。

目录:

句法 section-f645198bbaba4fba8961acb6e88d1470

使用此代码时,需要两个配置元素。

配置语法
描述
whitelistParentDomain: " Domain name of parent page "
接受作为字符串传入的单个域名。
whitelistIframeDomains: [ "iFrame domain","iFrame domain","iFrame domain" ]
接受作为数组传入的一个或多个 iFrame 域名。

代码示例 section-09d0049fe88a473baa69d404c50bf8ae

您配置的 Visitor ID Service 代码可能与以下示例类似。

//Instantiate Visitor
var visitor = Visitor.getInstance("INSERT-IMS-ORG-ID-HERE",{
 ...
 //Add parent page domain name and iFrame domain names
 whitelistParentDomain: "parentpageA.com",
 whitelistIframeDomains: ["iFrameDomain1.com","iFrameDomain2.com"],
 ...
 }
);

用例 section-fc2eeb93546b406fae3b102dbcd11de7

这些配置有助于解决在浏览器阻止第三方Cookie并且满足以下任一条件时,设置访客ID服务Cookie和分配访客ID的问题:

  • 您控制或不控制父页面/域。
  • 访客ID服务代码未安装在父页面上,而是在iFrame中实施。
TIP
在 iFrame 中使用视频心率为视频提供服务时,您可能还希望实施这些配置。 视频心率需要访客ID服务ID (MID)才能正常工作。

用例1:浏览器阻止第三方Cookie,并在iFrame和父页面上实施访客ID服务

用例元素
描述
条件

此用例包括以下条件:

  • 公司A在其主页上实施访客ID服务。
  • 公司A在其主页上的iFrame中实施访客ID服务。
  • 公司A拥有父页面和iFrame,并已在这两个位置实施了访客ID服务。
  • 客户在浏览器中加载父页面,该浏览器会阻止第三方 Cookie。
结果

在这些条件下,访客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。

配置安全性 section-2b1ce31fab034e1ca0f6b1c3cc57a6e2

您可以安全地实施这些配置,因为:

  • 在父域和iFrame域上实施的访客ID服务必须使用相同的IMS组织ID。 当父项或iFrame中的IMS组织ID不同时,这些白名单配置将不起作用。
  • 这些配置仅与代码中指定的域和 iFrame 通信。
  • iFrame 与父页面之间的通信遵循特定格式。 如果父页面上的访客ID服务未收到采用预期格式的请求,则此共享过程将失败。

支持的访客API方法 section-30c6a9f4dcdc4265a1149260b97cc057

在实施这些白名单配置时,访客ID服务支持一组有限的公共API方法。 支持的方法因上文所述的用例情景而异。

用例
支持的方法
用例 1
  • getMarketingCloudID
  • getAudienceManagerLocationHint
  • getAudienceManagerBlob
  • getSupplementalDataID
  • getCustomerIDs
用例 2
  • getSupplementalDataID
  • getMarketingCloudVisitorID
recommendation-more-help
id-service-help