Återge HTML-erbjudanden utan väljare
Använd det här mönstret när dina förslag innehåller HTML-innehåll, men du måste ange var det ska användas (väljare) och hur det ska användas (åtgärdstyp). Du kan göra detta genom att anropa applyPropositions med ett metadata-objekt som är keyat efter omfång. actionType-värden som stöds är setHtml, replaceHtml och appendHtml.
1. Hantera flimmer (valfritt)
Om du döljer innehåll under återgivningen ansvarar du för att det visas när återgivningen är klar. Mer information finns i Hantera flimmer.
2. Begär förslag för de omfattningar som du tänker återge
alloy("sendEvent", {
personalization: {
decisionScopes: ["discount", "salutation"]
},
xdm: { }
}).then(({ propositions = [] }) => {
// Render in the next step
});
Mer information finns i personalization.decisionScopes.
3. Rendera erbjudanden med applyPropositions metadata
alloy("sendEvent", {
personalization: {
decisionScopes: ["discount", "salutation"]
},
xdm: { }
}).then(({ propositions = [] }) => {
return alloy("applyPropositions", {
propositions,
metadata: {
salutation: {
selector: "#salutation",
actionType: "setHtml"
},
discount: {
selector: "#daily-special",
actionType: "replaceHtml"
}
}
}).then(({ propositions: renderedPropositions = [] }) => {
return { renderedPropositions };
});
});
4. Spela in visningshändelser för renderade offerter
Visningshändelser skickas inte automatiskt när applyPropositions anropas. När återgivningen är klar använder du ett sendEvent-anrop som refererar till de återgivna propositionerna:
function toDisplayPayload(propositions) {
return propositions.map((p) => ({
id: p.id,
scope: p.scope,
scopeDetails: p.scopeDetails
}));
}
alloy("sendEvent", {
personalization: {
decisionScopes: ["discount", "salutation"]
},
xdm: { }
}).then(({ propositions = [] }) => {
return alloy("applyPropositions", {
propositions,
metadata: {
salutation: { selector: "#salutation", actionType: "setHtml" },
discount: { selector: "#daily-special", actionType: "replaceHtml" }
}
}).then(({ propositions: renderedPropositions = [] }) => {
return alloy("sendEvent", {
xdm: {
_experience: {
decisioning: {
propositions: toDisplayPayload(renderedPropositions),
propositionEventType: { display: 1 }
}
}
}
});
});
});
Mer information finns i Hantera visningshändelser.
sendEvent anropet.5. Återgivning
Om implementeringen kräver en återgivning senare (t.ex. i ensidiga program), anropar du applyPropositions igen med samma argument och metadata:
alloy("applyPropositions", {
propositions,
metadata: {
discount: { selector: "#daily-special", actionType: "replaceHtml" }
}
});
Om du behöver spela in en visningshändelse för den återgivningen läser du Hantera visningshändelser.