Återge DOM-åtgärdsförslag automatiskt
Använd det här mönstret när ditt personaliseringssvar innehåller förslagsobjekt med schemat:
https://ns.adobe.com/personalization/dom-action
Dessa objekt innehåller vanligtvis en väljare och en åtgärdstyp (till exempel setHtml) som Web SDK kan använda automatiskt när renderDecisions aktiveras.
1. Hantera flimmer (valfritt)
Om du behöver förhindra flimmer när personaliserat innehåll används ska du använda den rekommenderade metoden för flimmerhantering för implementeringen. Se Hantera flimmer för tillgängliga alternativ.
2. Begär och återge de beslut som gäller automatisk återgivning
Ange renderDecisions som true när du anropar kommandot sendEvent. Egenskapen renderDecisions är som standard false om den utelämnas.
alloy("sendEvent", {
renderDecisions: true,
xdm: {
web: {
webPageDetails: {
name: "home"
}
}
}
});
Om du behöver begära specifika placeringar kan du inkludera personalization.decisionScopes:
alloy("sendEvent", {
renderDecisions: true,
personalization: {
decisionScopes: ["hero-banner", "recommendations"]
},
xdm: { }
});
Mer information finns i objektet personalization i kommandot sendEvent.
3. Visa händelser
Om du ställer in renderDecisions på true och antingen ställer in personalization.sendDisplayEvent på true eller utelämnar det, skickar Web SDK visningshändelser omedelbart efter att personaliseringen har renderats.
alloy("sendEvent", {
renderDecisions: true,
personalization: {
// sendDisplayEvent defaults to true when omitted
},
xdm: { }
});
Se Hantera visningshändelser för alternativa alternativ som uppfyller implementeringens behov, t.ex. när du använder händelser på övre och nedre sidan.
4. SPA-vy ändras och återgivning sker
För enkelsidiga program ska du inkludera en viewName om händelser som ändras i visningen.
alloy("sendEvent", {
renderDecisions: true,
xdm: {
web: {
webPageDetails: {
viewName: "cart"
}
}
}
});
Om SPA återger användargränssnittet för samma vy utan att hämta något nytt beslut kan du återanvända tidigare returnerade förslag:
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
});
Mer information finns i applyPropositions.
applyPropositions skickar inte automatiskt visningshändelser. Om du behöver spela in "display" för återgivningsscenarier kan du läsa Hantera visningshändelser.