Monitorización de vínculos para Web SDK
Adobe Experience Platform Web SDK incluye vínculos de monitorización que puede utilizar para monitorizar varios eventos del sistema. Estas herramientas son útiles para desarrollar sus propias herramientas de depuración y capturar registros de Web SDK.
Web SDK almacena en déclencheur las funciones de supervisión independientemente de si ha habilitado la depuración.
onInstanceCreated onInstanceCreated
Esta función de llamada de retorno se activa cuando se ha creado correctamente una nueva instancia de Web SDK. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onInstanceCreated(data) {
// data.instanceName
// data.instance
}
data.instanceNamedata.instanceonInstanceConfigured onInstanceConfigured
Web SDK activa esta función de devolución de llamada cuando el comando configure se resuelve correctamente. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onInstanceConfigured(data) {
// data.instanceName
// data.config
}
data.instanceNamedata.configconfigure con todos los valores predeterminados agregados.onBeforeCommand onBeforeCommand
Web SDK activa esta función de llamada de retorno antes de ejecutar cualquier otro comando. Puede utilizar esta función para recuperar las opciones de configuración de un comando específico. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onBeforeCommand(data) {
// data.instanceName
// data.commandName
// data.options
}
data.instanceNamedata.commandNamedata.optionsonCommandResolved onCommandResolved
Esta función de llamada de retorno se activa al resolver las promesas de comandos. Puede utilizar esta función para ver las opciones y el resultado del comando. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onCommandResolved(data) {
// data.instanceName
// data.commandName
// data.options
// data.result
},
data.instanceNamedata.commandNamedata.optionsdata.resultonCommandRejected onCommandRejected
Esta función de llamada de retorno se activa antes de que se rechace una promesa de comando y contiene información sobre el motivo por el que se rechazó el comando. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onCommandRejected(data) {
// data.instanceName
// data.commandName
// data.options
// data.error
}
data.instanceNamedata.commandNamedata.optionsdata.errorfetch en la mayoría de los casos), junto con el motivo por el que se rechazó el comando.onBeforeNetworkRequest onBeforeNetworkRequest
Esta función de llamada de retorno se activa antes de que se ejecute una solicitud de red. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onBeforeNetworkRequest(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
}
data.instanceNamedata.requestIdrequestId generado por Web SDK para habilitar la depuración.data.urldata.payloadPOST.onNetworkResponse onNetworkResponse
Esta función de llamada de retorno se activa cuando el explorador recibe una respuesta. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onNetworkResponse(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.body
// data.parsedBody
// data.status
// data.retriesAttempted
}
data.instanceNamedata.requestIdrequestId generado por Web SDK para habilitar la depuración.data.urldata.payloadPOST.data.bodydata.parsedBodydata.statusdata.retriesAttemptedonNetworkError onNetworkError
Esta función de llamada de retorno se activa cuando falla la solicitud de red. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onNetworkError(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.error
},
data.instanceNamedata.requestIdrequestId generado por Web SDK para habilitar la depuración.data.urldata.payloadPOST.data.errorfetch en la mayoría de los casos), junto con el motivo por el que se rechazó el comando.onBeforeLog onBeforeLog
Esta función de llamada de retorno se activa antes de que Web SDK registre algo en la consola. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onBeforeLog(data) {
// data.instanceName
// data.componentName
// data.level
// data.arguments
}
data.instanceNamedata.componentNamedata.levellog, info, warn, error.data.argumentsonContentRendering onContentRendering
El componente personalization activa esta función de llamada de retorno en varias fases de la representación. La carga útil puede variar según el parámetro status. Consulte el ejemplo siguiente para obtener más información sobre los parámetros de función.
onContentRendering(data) {
// data.instanceName
// data.componentName
// data.payload
// data.status
}
data.instanceNamedata.componentNamedata.payloadPOST.data.statusEl componente personalization notifica al Web SDK del estado de la representación. Valores compatibles:
rendering-started: indica que Web SDK está a punto de procesar propuestas. Antes de que Web SDK empiece a procesar una vista o un ámbito de decisión, en el objetodatapuede ver las propuestas que van a representar el componentepersonalizationy el nombre del ámbito.no-offers: indica que no se recibió carga útil para los parámetros solicitados.rendering-failed: indica que Web SDK no pudo procesar una propuesta.rendering-succeeded: indica que se ha completado el procesamiento para un ámbito de decisión.rendering-redirect: indica que Web SDK procesará una propuesta de redirección.
onContentHiding onContentHiding
Esta función de llamada de retorno se activa cuando se aplica o elimina un estilo de ocultamiento previo.
onContentHiding(data) {
// data.instanceName
// data.componentName
// data.status
}
data.instanceNamedata.componentNamedata.statusEl componente personalization notifica al Web SDK del estado de la representación. Valores compatibles:
hide-containersshow-containers
Cómo especificar los enlaces de monitorización al utilizar el paquete NPM specify-monitoring-npm
Si está usando Web SDK a través del paquete NPM, puede especificar vínculos de supervisión en la función createInstance, como se muestra a continuación.
var monitor = {
onBeforeCommand(data) {
console.log(data);
},
...
};
var alloyLibrary = require("@adobe/alloy");
var alloy = alloyLibrary.createInstance({ name: "alloy", monitors: [monitor] });
alloy("config", { ... });
alloy("sendEvent", { ... });
Ejemplo example
Web SDK busca una matriz de objetos en una variable global llamada __alloyMonitors.
Para capturar todos los eventos de Web SDK, debe definir los vínculos de supervisión antes de cargar el código de Web SDK en la página. Cada método de monitorización captura un evento de SDK web.
Puede definir los vínculos de monitorización después de que el código de Web SDK se cargue en su página, pero cualquier vínculo que se haya activado antes de que se cargue la página no se capturará.
Al definir el objeto de vínculo de monitorización, solo necesita definir los métodos para los que desea definir una lógica especial.
Por ejemplo, si solo le importa onContentRendering, puede definir ese método. No es necesario utilizar todos los ganchos de monitorización a la vez.
Puede definir varios objetos de enlace de monitorización. Se llama a todos los objetos con el método dado cuando se activa el evento correspondiente.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.__alloyMonitors = window.__alloyMonitors || [];
window.__alloyMonitors.push({
onInstanceCreated(data) {
// data.instanceName
// data.instance
},
onInstanceConfigured(data) {
// data.instanceName
// data.config
},
onBeforeCommand(data) {
// data.instanceName
// data.commandName
// data.options
},
// Added in version 2.4.0
onCommandResolved(data) {
// data.instanceName
// data.commandName
// data.options
// data.result
},
// Added in version 2.4.0
onCommandRejected(data) {
// data.instanceName
// data.commandName
// data.options
// data.error
},
onBeforeNetworkRequest(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
},
onNetworkResponse(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.body
// data.parsedBody
// data.status
// data.retriesAttempted
},
onNetworkError(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.error
},
onBeforeLog(data) {
// data.instanceName
// data.componentName
// data.level
// data.arguments
}
onContentRendering(data) {
// data.instanceName
// data.componentName
// data.payload
// data.status
},
onContentHiding(data) {
// data.instanceName
// data.componentName
// data.status
}
});
</script>
<script>
!function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS||
[]).push(o),n[o]=function(){var u=arguments;return new Promise(
function(i,l){n[o].q.push([i,l,u])})},n[o].q=[])})}
(window,["alloy"]);
</script>
<script src="alloy.js" async></script>
</head>
<body>
<h1>Monitor Test</h1>
</body>
</html>