自動轉譯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