O Adobe Experience Platform Launch foi reformulado como um conjunto de tecnologias de coleção de dados na Adobe Experience Platform. Como resultado, várias alterações de terminologia foram implementadas na documentação do produto. Consulte o seguinte documento para obter uma referência consolidada das alterações de terminologia.
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.
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.
O objeto event
representa o evento que acionou a regra e contém os seguintes valores:
logger.log(context.arc.event);
Propriedade | Descrição |
---|---|
xdm |
O objeto XDM do evento. |
data |
A camada de dados personalizada. |
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
é 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.
Tenha cuidado para sempre retornar o stash completo da regra de extensão ao usar essa estratégia. Caso você retorne apenas um valor, ele substituirá quaisquer outras propriedades que você tenha definido.
A propriedade utils
representa um objeto que fornece utilitários específicos ao tempo de execução da tag.
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:
Método | Descrição |
---|---|
log(message) |
registra uma mensagem no console. |
info(message) |
registra uma mensagem informativa no console. |
warn(message) |
registra uma mensagem de aviso no console. |
error(message) |
registra uma mensagem de erro no console. |
debug(message) |
registra uma mensagem de depuração no console. Visível somente quando o registro verbose estiver ativado no console do navegador. |
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())
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:
Propriedade | Descrição |
---|---|
turbineVersion |
A versão Turbine usada dentro da biblioteca atual. |
turbineBuildDate |
A data da ISO 8601 quando a versão de Turbine usada no container foi criada. |
buildDate |
A data da ISO 8601 quando a biblioteca atual foi criada. |
environment |
O ambiente para o qual essa biblioteca foi criada. Os valores possíveis incluem 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"
}
Esse utilitário retorna o último objeto settings
salvo na visualização de configuração de extensão.
logger.log(context.utils.getExtensionSettings());
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());
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:
Propriedade | Descrição |
---|---|
id |
A ID da regra. |
name |
O nome da regra. |