Módulos de extensión de Edge en contexto
Todos los módulos de biblioteca de las extensiones de Edge reciben un objeto context cuando se ejecutan. Este documento describe las propiedades que proporciona el objeto context y la función que desempeñan en los módulos de biblioteca.
Contexto de solicitud de Adobe (arc)
La propiedad arc es un objeto que proporciona información sobre el evento que activa la regla. Las secciones siguientes describen las distintas subpropiedades que contiene este objeto.
event
El objeto event representa el evento que activó la regla y contiene los siguientes valores:
logger.log(context.arc.event);
xdmdatarequest
No debe confundirse con una solicitud del dispositivo cliente, request es un objeto ligeramente modificado que procede de Adobe Experience Platform Edge Network.
logger.log(context.arc.request)
El objeto request tiene dos propiedades de nivel superior: body y head. La propiedad body contiene información del Modelo de datos de experiencia (XDM) y se puede inspeccionar en Adobe Experience Platform Debugger cuando se navega a Launch y se selecciona la pestaña Edge Trace.
ruleStash rulestash
ruleStash es un objeto que recopilará todos los resultados de los módulos de acción.
logger.log(context.arc.ruleStash);
Cada extensión tiene su propio espacio de nombres. Por ejemplo: si la extensión tiene el nombre send-beacon, todos los resultados de las acciones send-beacon se almacenarán en el espacio de nombres ruleStash['send-beacon'].
El espacio de nombres es único para cada extensión y tiene un valor de undefined al principio.
El espacio de nombres se sobrescribe con el resultado que devuelve cada acción. Por ejemplo, considere una extensión transform que contenga dos acciones: generate-fullname y generate-fulladdress. Estas dos acciones se añaden a continuación a una regla.
Si el resultado de la acción generate-fullname es Firstname Lastname, la cadena de reglas aparecerá como se muestra a continuación una vez completada la acción:
{
transform: 'Firstname Lastname'
}
Si el resultado de la acción generate-address es 3900 Adobe Way, la cadena de reglas se mostrará como se indica a continuación una vez completada la acción:
{
transform: '3900 Adobe Way'
}
Observe que el "Nombre y apellido" ya no existen dentro de la pila de reglas, porque la acción generate-address sobrescribió estos datos con un nuevo valor.
Si desea que ruleStash almacene los resultados de ambas acciones dentro del espacio de nombres transform, puede escribir un módulo de acción similar al ejemplo siguiente:
module.exports = (context) => {
let transformRuleStash = context.arc.ruleStash.transform;
if (!transformRuleStash) {
transformRuleStash = {};
}
transformRuleStash.fullName = 'Firstname Lastname';
return transformRuleStash;
}
La primera vez que se ejecuta esta acción, ruleStash comienza como undefined y, por lo tanto, se inicializa como objeto vacío. La próxima vez que se ejecute la acción, recibirá el valor ruleStash que se devolvió con la llamada anterior a la acción. El uso de un objeto como ruleStash permite agregar nuevos datos sin perder los datos que previamente definieron otras acciones de nuestra extensión.
Utilidades
La propiedad utils representa un objeto que proporciona utilidades específicas del tiempo de ejecución de la etiqueta.
logger
La utilidad logger permite registrar los mensajes que se mostrarán durante las sesiones de depuración al utilizar Adobe Experience Platform Debugger.
context.utils.logger.error('Error!');
El registrador tiene los métodos siguientes, donde message es el mensaje que desea registrar:
log(message)info(message)warn(message)error(message)debug(message)verbose está habilitado en la consola del explorador.fetch
Esta utilidad implementa la API de búsqueda. Puede utilizar la función para realizar solicitudes a extremos de terceros.
context.utils.fetch('http://example.com/movies.json')
.then(response => response.json())
getBuildInfo
Esta utilidad devuelve un objeto que contiene información sobre la compilación de la biblioteca de tiempo de ejecución de la etiqueta actual.
logger.log(context.utils.getBuildInfo().turbineBuildDate);
El objeto contiene los valores siguientes:
turbineVersionturbineBuildDatebuildDateenvironmentdevelopment, staging y production.A continuación se muestra un objeto getBuildInfo de ejemplo para demostrar los valores que arroja:
{
turbineVersion: "1.0.0",
turbineBuildDate: "2016-07-01T18:10:34Z",
buildDate: "2016-03-30T16:27:10Z",
environment: "development"
}
getExtensionSettings
Esta utilidad arroja el objeto settings que se guardó por última vez desde la vista de configuración de la extensión.
logger.log(context.utils.getExtensionSettings());
getSettings
Esta utilidad arroja el objeto settings que se guardó por última vez desde la vista del módulo de biblioteca correspondiente.
logger.log(context.utils.getSettings());
getRule
Esta utilidad arroja un objeto que contiene información sobre la regla que activa el módulo.
logger.log(context.utils.getRule());
El objeto contendrá los valores siguientes:
idname