处理命令响应

某些Web SDK命令可以返回包含对您的组织潜在有用的数据的对象。 如果需要,您可以选择如何处理这些数据。 命令响应对于建议和目标非常有用,因为它们需要Edge Network数据才能有效工作。

命令响应使用JavaScript promise,充当创建promise时未知的值的代理。 知道该值后,将使用值“解析”promise。

使用Web SDK标记扩展处理命令响应

创建作为规则的一部分订阅​ 发送事件完成 ​事件的规则。

  1. 使用您的Adobe ID凭据登录experience.adobe.com
  2. 导航到​ 数据收集 > 标记
  3. 选择所需的标记属性。
  4. 导航到​ 规则,然后选择所需的规则。
  5. 在事件下,选择现有事件或创建事件。
  6. 将扩展下拉字段设置为​ Adobe Experience Platform Web SDK,并将事件类型设置为​ 发送事件完成
  7. 单击​ 保留更改,然后运行发布工作流程。

然后,您可以包括操作​ 应用建议 ​或​ 将响应 ​应用到此规则。

  1. 查看以上创建或编辑的规则时,选择现有操作或创建操作。
  2. 将扩展下拉字段设置为​ Adobe Experience Platform Web SDK,并将操作类型设置为​ 应用建议 ​或​ 应用响应,具体取决于所需的行为。
  3. 设置操作的所需字段,然后单击​ 保留更改

使用Web SDK JavaScript库处理命令响应

使用thencatch方法确定命令成功或失败的时间。 您可以忽略thencatch(如果它们的目的对您的实施不重要)。

alloy("sendEvent", {
  "xdm": {
    "commerce": {
      "order": {
        "purchaseID": "a8g784hjq1mnp3",
        "purchaseOrderNumber": "VAU3123",
        "currencyCode": "USD",
        "priceTotal": 999.98
      }
    }
  }
}).then(function(result) {
    console.log("The sendEvent command succeeded.");
  })
  .catch(function(error) {
    console.log("The sendEvent command failed.");
  });

从命令返回的所有承诺都使用result对象。 例如,您可以使用getLibraryInfo命令从result对象获取库信息:

alloy("getLibraryInfo")
  .then(function(result) {
    console.log(result.libraryInfo.version);
    console.log(result.libraryInfo.commands);
    console.log(result.libraryInfo.configs);
  });

result对象的内容取决于您使用的命令和用户同意的组合。 如果用户没有针对特定目的给予同意,则响应对象仅包含可以在用户同意的内容上下文中提供的信息。

recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636