Tipos de ação para extensões de borda
Em uma regra de tag, uma ação é algo que é executado depois que as condições da regra passam na avaliação. Os tipos de ação são fornecidos por extensões e seus efeitos são totalmente definidos pelo autor da extensão.
Por exemplo, uma extensão pode fornecer um tipo de ação "mostrar o bate-papo de suporte", que pode exibir uma caixa de diálogo de bate-papo de suporte para ajudar usuários que estejam com dificuldades ao fazer check-out.
Este documento aborda como definir tipos de ação para uma extensão de borda no Adobe Experience Platform.
Os tipos de ação geralmente consistem no seguinte:
- Uma visualização mostrada na interface do usuário do Experience Platform e na interface da Coleção de dados que permite aos usuários modificar as configurações da ação.
- Um módulo de biblioteca emitido na biblioteca de tempo de execução de tag para interpretar as configurações e executar uma ação.
Por exemplo, um módulo para encaminhar alguns dados a um endpoint de terceiros pode ter esta aparência.
module.exports = (context) {
const { arc, utils } = context;
const { fetch } = utils;
const { event: { xdm } } = arc;
return fetch('http://someendpoint.com', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(xdm)
})
};
Se você quiser tornar o endpoint configurável pelo usuário e permitir a entrada e a persistência de um endpoint para o objeto de configurações no módulo, o objeto terá aparência semelhante a esta.
{
"endpoint": "http://someendpoint.com"
}
Para operar no endpoint definido pelo usuário, o módulo precisará ser alterado para o exemplo a seguir.
module.exports = (context) {
const { arc, utils } = context;
const { fetch } = utils;
const { event: { xdm } } = arc;
const { endpoint } = settings;
return fetch(endpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(xdm)
})
};
Resultado da ação
O resultado retornado por um módulo de ação pode ser qualquer item. Se a ação precisar executar uma tarefa assíncrona, você poderá retornar uma promessa que retornará o resultado desejado após sua resolução.
O resultado da ação é armazenado em uma chave ruleStash
que é disponibilizada para todos os módulos por meio do parâmetro context
(context.arc.ruleStash
). Você pode saber mais sobre ruleStash
aqui.