Återge utkast manuellt
Använd det här mönstret när du vill ha fullständig kontroll över hur förslagsobjekt tillämpas. Du skapar till exempel ett komplext användargränssnitt från JSON-innehåll eller vill använda anpassade affärsregler innan återgivningen.
1. Föreslå förslag
alloy("sendEvent", {
personalization: {
decisionScopes: ["salutation", "discount"]
},
xdm: { }
}).then(({ propositions = [] }) => {
// Render in the next step
});
Mer information finns i objektet personalization i kommandot sendEvent.
2. Återge förslagsobjekt (exempel)
När du återger utkast manuellt kan de ta många olika former eller former. Följande är ett minimalt exempel som hittar ett förslag efter omfång och sedan tillämpar det första HTML-innehållsobjektet som hittas.
function findPropositionByScope(propositions, scope) {
return propositions.find((p) => p.scope === scope);
}
function renderHtmlInto(selector, html) {
const el = document.querySelector(selector);
if (!el) return;
el.innerHTML = html;
}
alloy("sendEvent", {
personalization: { decisionScopes: ["discount"] },
xdm: { }
}).then(({ propositions = [] }) => {
const discount = findPropositionByScope(propositions, "discount");
if (!discount) return { propositions, rendered: [] };
const htmlItem = discount.items?.find(
(i) => i.schema === "https://ns.adobe.com/personalization/html-content-item"
);
if (!htmlItem) return { propositions, rendered: [] };
renderHtmlInto("#daily-special", htmlItem.data.content);
return { propositions, rendered: [discount] };
});
3. Spela in visningshändelser för det du återger
För manuellt återgivna inlägg spelas visningshändelser in via sendEvent anrop som refererar till återgivna inlägg.
function toDisplayPayload(propositions) {
return propositions.map((p) => ({
id: p.id,
scope: p.scope,
scopeDetails: p.scopeDetails
}));
}
// Example: record display for the propositions you actually rendered.
alloy("sendEvent", {
xdm: {
_experience: {
decisioning: {
propositions: toDisplayPayload(renderedPropositions),
propositionEventType: { display: 1 }
}
}
}
});
Mer information finns i Hantera visningshändelser.
4. Återgivning
När användargränssnittsändringar kräver en omrendering kör du den manuella återgivningslogiken igen mot de förslagsdata som du har cache-lagrat (eller hämtar igen, om det behövs). Om du behöver spela in en visning för återgivningsscenarier läser du Hantera visningshändelser.