处理命令响应

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

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

使用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对象。 例如,您可以使用result命令从getLibraryInfo对象获取库信息:

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

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

使用Web SDK标记扩展程序的命令响应

等效于命令响应的Web SDK标记扩展是订阅 Send event complete 事件的规则。 然后,您可以将诸如 Apply propositionsApply response 之类的操作包含到此规则中。

recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1