Rendu automatique des propositions d’action DOM
Utilisez ce modèle lorsque votre réponse de personnalisation inclut des éléments de proposition avec le schéma :
https://ns.adobe.com/personalization/dom-action
Ces éléments incluent généralement un sélecteur et un type d’action (par exemple, setHtml) que le SDK Web peut appliquer automatiquement lorsque le renderDecisions est activé.
1. Gestion du scintillement (facultatif)
Si vous devez empêcher le scintillement lors de l’application de contenu personnalisé, utilisez l’approche de gestion du scintillement recommandée pour votre mise en œuvre. Voir Gérer le scintillement pour connaître les options disponibles.
2. Demander et rendre des décisions notées pour le rendu automatique
Définissez renderDecisions sur true lors de l’appel de la commande sendEvent. La propriété renderDecisions est définie par défaut sur false lorsqu’elle est omise.
alloy("sendEvent", {
renderDecisions: true,
xdm: {
web: {
webPageDetails: {
name: "home"
}
}
}
});
Si vous devez demander des emplacements spécifiques, vous pouvez inclure les personalization.decisionScopes suivantes :
alloy("sendEvent", {
renderDecisions: true,
personalization: {
decisionScopes: ["hero-banner", "recommendations"]
},
xdm: { }
});
Voir l’objet personalization dans la commande sendEvent pour plus d’informations.
3. Afficher les événements
Si vous définissez renderDecisions sur true et que vous définissez personalization.sendDisplayEvent sur true ou que vous l’omettez, le SDK Web envoie des événements d’affichage immédiatement après le rendu de la personnalisation.
alloy("sendEvent", {
renderDecisions: true,
personalization: {
// sendDisplayEvent defaults to true when omitted
},
xdm: { }
});
Consultez Gérer les événements d’affichage pour d’autres options qui répondent aux besoins de votre implémentation, comme l’utilisation d’événements de page supérieure et inférieure.
4. Modifications de l’affichage SPA et nouveau rendu
Pour les applications d’une seule page, incluez une viewName sur les événements qui modifient la vue.
alloy("sendEvent", {
renderDecisions: true,
xdm: {
web: {
webPageDetails: {
viewName: "cart"
}
}
}
});
Si votre SPA effectue un nouveau rendu de l’interface utilisateur pour la même vue sans nouvelle récupération de décision, vous pouvez appliquer à nouveau les propositions précédemment renvoyées :
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
});
Voir applyPropositions pour plus d’informations.
applyPropositions n’envoie pas automatiquement d’événements d’affichage. Si vous devez enregistrer « display » pour des scénarios de nouveau rendu, reportez-vous à la section Gérer les événements d’affichage .