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.instanceName
data.instance
onInstanceConfigured
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.instanceName
data.config
configure
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.instanceName
data.commandName
data.options
onCommandResolved
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.instanceName
data.commandName
data.options
data.result
onCommandRejected
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.instanceName
data.commandName
data.options
data.error
fetch
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.instanceName
data.requestId
requestId
generado por Web SDK para habilitar la depuración.data.url
data.payload
POST
.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.instanceName
data.requestId
requestId
generado por Web SDK para habilitar la depuración.data.url
data.payload
POST
.data.body
data.parsedBody
data.status
data.retriesAttempted
onNetworkError
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.instanceName
data.requestId
requestId
generado por Web SDK para habilitar la depuración.data.url
data.payload
POST
.data.error
fetch
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.instanceName
data.componentName
data.level
log
, info
, warn
, error
.data.arguments
onContentRendering
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.instanceName
data.componentName
data.payload
POST
.data.status
El 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 objetodata
puede ver las propuestas que van a representar el componentepersonalization
y 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.instanceName
data.componentName
data.status
El componente personalization
notifica al Web SDK del estado de la representación. Valores compatibles:
hide-containers
show-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>