Contexto em módulos de extensão de borda
Todos os módulos de biblioteca em extensões de borda recebem um objeto context
quando são executados. Este documento aborda as propriedades fornecidas pelo objeto context
e a função que desempenham nos módulos de biblioteca.
Contexto de solicitação da Adobe (arc)
A propriedade arc
é um objeto que fornece informações sobre o evento que aciona a regra. As seções abaixo abrangem as várias subpropriedades contidas nesse objeto.
event
O objeto event
representa o evento que acionou a regra e contém os seguintes valores:
logger.log(context.arc.event);
xdm
data
request
Para não ser confundido com uma solicitação do dispositivo cliente, request
é um objeto ligeiramente modificado que vem da rede de borda da Adobe Experience Platform.
logger.log(context.arc.request)
O objeto request
tem duas propriedades de nível superior: body
e head
. A propriedade body
contém informações do modelo de dados de experiência (XDM) e pode ser inspecionado no Adobe Experience Platform Debugger quando você navega até o Launch e seleciona a guia Traço de borda.
ruleStash rulestash
ruleStash
é um objeto que coletará todos os resultados dos módulos de ação.
logger.log(context.arc.ruleStash);
Cada extensão tem seu próprio namespace. Por exemplo, se a extensão tiver o nome send-beacon
, todos os resultados das ações send-beacon
serão armazenados no namespace ruleStash['send-beacon']
.
O namespace é exclusivo para cada extensão e tem um valor de undefined
no início.
O namespace é substituído pelo resultado retornado de cada ação. Por exemplo, considere uma extensão transform
que contém duas ações: generate-fullname
e generate-fulladdress
. Essas duas ações são adicionadas a uma regra.
Se o resultado da ação generate-fullname
for Firstname Lastname
, o stash da regra será mostrado da seguinte maneira depois que a ação for concluída:
{
transform: 'Firstname Lastname'
}
Se o resultado da ação generate-address
for 3900 Adobe Way
, o stash da regra será mostrado da seguinte maneira depois que a ação for concluída:
{
transform: '3900 Adobe Way'
}
Observe que "Nome Sobrenome" não existe mais no stash da regra, pois a ação generate-address
o substituiu por um novo valor.
Se desejar que ruleStash
armazene os resultados de ambas as ações no namespace transform
, você poderá escrever seu módulo de ação como o seguinte exemplo:
module.exports = (context) => {
let transformRuleStash = context.arc.ruleStash.transform;
if (!transformRuleStash) {
transformRuleStash = {};
}
transformRuleStash.fullName = 'Firstname Lastname';
return transformRuleStash;
}
Na primeira vez que essa ação é executada, ruleStash
é iniciado como undefined
e, portanto, inicializado como um objeto vazio. Na próxima vez em que a ação for executada, ela receberá ruleStash
que foi retornado quando a ação foi chamada anteriormente. Usar um objeto como ruleStash
permite que você adicione novos dados sem perder dados previamente definidos por outras ações de nossa extensão.
Utilitários
A propriedade utils
representa um objeto que fornece utilitários específicos ao tempo de execução da tag.
logger
O utilitário logger
permite registrar mensagens que serão exibidas durante as sessões de depuração ao usar o Adobe Experience Platform Debugger.
context.utils.logger.error('Error!');
O agente de log tem os seguintes métodos, em que message
é a mensagem que você deseja registrar:
log(message)
info(message)
warn(message)
error(message)
debug(message)
verbose
estiver ativado no console do navegador.fetch
Esse utilitário implementa a API Fetch. Você pode usar a função para fazer solicitações a pontos de extremidade de terceiros.
context.utils.fetch('http://example.com/movies.json')
.then(response => response.json())
getBuildInfo
Esse utilitário retorna um objeto que contém informações sobre o build da biblioteca de tempo de execução de tag atual.
logger.log(context.utils.getBuildInfo().turbineBuildDate);
O objeto contém os seguintes valores:
turbineVersion
turbineBuildDate
buildDate
environment
development
, staging
e production.
Veja um exemplo de objeto getBuildInfo
para demonstrar os valores retornados:
{
turbineVersion: "1.0.0",
turbineBuildDate: "2016-07-01T18:10:34Z",
buildDate: "2016-03-30T16:27:10Z",
environment: "development"
}
getExtensionSettings
Esse utilitário retorna o último objeto settings
salvo na visualização de configuração de extensão.
logger.log(context.utils.getExtensionSettings());
getSettings
Esse utilitário retorna o objeto settings
que foi salvo pela última vez na visualização do módulo de biblioteca correspondente.
logger.log(context.utils.getSettings());
getRule
Esse utilitário retorna um objeto que contém informações sobre a regra que está acionando o módulo.
logger.log(context.utils.getRule());
O objeto conterá os seguintes valores:
id
name