自動轉譯DOM動作主張

當您的個人化回應包含具有結構描述的主張專案時,請使用此模式:

https://ns.adobe.com/personalization/dom-action

這些專案通常包含選取器和動作型別(例如,setHtml),網頁SDK可在啟用renderDecisions時自動套用。

1.管理忽隱忽現的情形(選擇性)

若您需要在套用個人化內容時防止忽隱忽現情形,請針對您的實作使用建議的忽隱忽現管理方法。 如需可用選項,請參閱管理忽隱忽現情形

2.請求並轉譯已記錄用於自動轉譯的決策

呼叫renderDecisions命令時將true設為sendEvent。 省略時,renderDecisions屬性預設為false。

alloy("sendEvent", {
  renderDecisions: true,
  xdm: {
    web: {
      webPageDetails: {
        name: "home"
      }
    }
  }
});

如果您需要請求特定版位,可選擇加入personalization.decisionScopes

alloy("sendEvent", {
  renderDecisions: true,
  personalization: {
    decisionScopes: ["hero-banner", "recommendations"]
  },
  xdm: { }
});

如需詳細資訊,請參閱personalization命令中的sendEvent物件。

3.顯示事件

如果您將renderDecisions設為true,並將personalization.sendDisplayEvent設為true或省略它,Web SDK會在個人化轉譯後立即傳送顯示事件。

alloy("sendEvent", {
  renderDecisions: true,
  personalization: {
    // sendDisplayEvent defaults to true when omitted
  },
  xdm: { }
});

請參閱管理顯示事件,以取得符合實作需求的替代選項,例如使用最上層與最下層頁面事件時。

​4. SPA檢視變更和重新呈現

若為單頁應用程式,請於檢視變更事件中加入viewName

alloy("sendEvent", {
  renderDecisions: true,
  xdm: {
    web: {
      webPageDetails: {
        viewName: "cart"
      }
    }
  }
});

如果您的SPA重新呈現相同檢視的UI而沒有新的決策擷取,您可以重新套用先前傳回的主張:

let lastPropositions = [];

alloy("sendEvent", {
  renderDecisions: true,
  xdm: {
    web: { webPageDetails: { viewName: "cart" } }
  }
}).then(({ propositions = [] }) => {
  lastPropositions = propositions;
});

// Later, after a UI re-render:
alloy("applyPropositions", {
  propositions: lastPropositions
});

如需詳細資訊,請參閱applyPropositions

NOTE
applyPropositions命令不會自動傳送顯示事件。 如果您需要為重新呈現案例記錄「顯示」,請參閱管理顯示事件
recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1