Renderizar propostas de ação do DOM automaticamente
Use esse padrão quando a resposta de personalização incluir itens de proposta com o schema:
https://ns.adobe.com/personalization/dom-action
Normalmente, esses itens incluem um seletor e um tipo de ação (por exemplo, setHtml) que o Web SDK pode aplicar automaticamente quando renderDecisions está habilitado.
1. Gerenciar cintilação (opcional)
Se você precisar evitar a cintilação enquanto o conteúdo personalizado for aplicado, use a abordagem de gerenciamento de cintilação recomendada para sua implementação. Consulte Gerenciar cintilação para ver as opções disponíveis.
2. Pedido e decisão de processamento anotadas para processamento automático
Defina renderDecisions como true ao chamar o comando sendEvent. O padrão da propriedade renderDecisions é false quando omitida.
alloy("sendEvent", {
renderDecisions: true,
xdm: {
web: {
webPageDetails: {
name: "home"
}
}
}
});
Opcionalmente, se precisar solicitar disposições específicas, inclua personalization.decisionScopes:
alloy("sendEvent", {
renderDecisions: true,
personalization: {
decisionScopes: ["hero-banner", "recommendations"]
},
xdm: { }
});
Consulte o objeto personalization no comando sendEvent para obter mais informações.
3. Exibir eventos
Se você definir renderDecisions como true e definir personalization.sendDisplayEvent como true ou omiti-lo, o Web SDK enviará eventos de exibição imediatamente após a personalização ser renderizada.
alloy("sendEvent", {
renderDecisions: true,
personalization: {
// sendDisplayEvent defaults to true when omitted
},
xdm: { }
});
Consulte Gerenciar eventos de exibição para obter opções alternativas que atendam às suas necessidades de implementação, como ao usar os Eventos de página superior e inferior.
4. Alterações de exibição e renderização de SPA
Para aplicativos de página única, inclua um viewName sobre eventos que alteram a visualização.
alloy("sendEvent", {
renderDecisions: true,
xdm: {
web: {
webPageDetails: {
viewName: "cart"
}
}
}
});
Se o SPA renderizar novamente a interface do usuário para a mesma exibição sem uma nova busca de decisão, você poderá reaplicar as propostas retornadas anteriormente:
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
});
Consulte applyPropositions para obter mais informações.
applyPropositions não envia eventos de exibição automaticamente. Se você precisar gravar "exibição" para cenários de nova renderização, consulte Gerenciar eventos de exibição.