Övervaka hookar för Web SDK
Adobe Experience Platform Web SDK innehåller funktioner för övervakning av kopplingar som du kan använda för att övervaka olika systemhändelser. De här verktygen är användbara när du vill utveckla egna felsökningsverktyg och hämta webb-SDK-loggar.
Web SDK utlöser övervakningsfunktionerna oavsett om du har aktiverat felsökning eller inte.
onInstanceCreated onInstanceCreated
Den här återanropsfunktionen aktiveras när du har skapat en ny Web SDK-instans. I exemplet nedan finns mer information om funktionsparametrarna.
onInstanceCreated(data) {
// data.instanceName
// data.instance
}
data.instanceNamedata.instanceonInstanceConfigured onInstanceConfigured
Den här återanropsfunktionen aktiveras av Web SDK när kommandot configure har lösts. I exemplet nedan finns mer information om funktionsparametrarna.
onInstanceConfigured(data) {
// data.instanceName
// data.config
}
data.instanceNamedata.configconfigure med alla standardvärden tillagda.onBeforeCommand onBeforeCommand
Den här återanropsfunktionen aktiveras av Web SDK innan något annat kommando körs. Du kan använda den här funktionen för att hämta konfigurationsalternativen för ett specifikt kommando. I exemplet nedan finns mer information om funktionsparametrarna.
onBeforeCommand(data) {
// data.instanceName
// data.commandName
// data.options
}
data.instanceNamedata.commandNamedata.optionsonCommandResolved onCommandResolved
Den här återanropsfunktionen aktiveras när kommandotolken löses. Du kan använda den här funktionen för att se kommandoalternativen och resultatet. I exemplet nedan finns mer information om funktionsparametrarna.
onCommandResolved(data) {
// data.instanceName
// data.commandName
// data.options
// data.result
},
data.instanceNamedata.commandNamedata.optionsdata.resultonCommandRejected onCommandRejected
Den här återanropsfunktionen aktiveras innan ett kommandolöfte avvisas och den innehåller information om varför kommandot avvisades. I exemplet nedan finns mer information om funktionsparametrarna.
onCommandRejected(data) {
// data.instanceName
// data.commandName
// data.options
// data.error
}
data.instanceNamedata.commandNamedata.optionsdata.errorfetch i de flesta fall), tillsammans med orsaken till varför kommandot avvisades.onBeforeNetworkRequest onBeforeNetworkRequest
Den här återanropsfunktionen aktiveras innan en nätverksbegäran körs. I exemplet nedan finns mer information om funktionsparametrarna.
onBeforeNetworkRequest(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
}
data.instanceNamedata.requestIdrequestId som genererats av Web SDK för att aktivera felsökning.data.urldata.payloadPOST-metod.onNetworkResponse onNetworkResponse
Den här återanropsfunktionen aktiveras när webbläsaren får ett svar. I exemplet nedan finns mer information om funktionsparametrarna.
onNetworkResponse(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.body
// data.parsedBody
// data.status
// data.retriesAttempted
}
data.instanceNamedata.requestIdrequestId som genererats av Web SDK för att aktivera felsökning.data.urldata.payloadPOST-metod.data.bodydata.parsedBodydata.statusdata.retriesAttemptedonNetworkError onNetworkError
Den här återanropsfunktionen aktiveras när nätverksbegäran misslyckas. I exemplet nedan finns mer information om funktionsparametrarna.
onNetworkError(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.error
},
data.instanceNamedata.requestIdrequestId som genererats av Web SDK för att aktivera felsökning.data.urldata.payloadPOST-metod.data.errorfetch i de flesta fall), tillsammans med orsaken till varför kommandot avvisades.onBeforeLog onBeforeLog
Den här återanropsfunktionen aktiveras innan Web SDK loggar något till konsolen. I exemplet nedan finns mer information om funktionsparametrarna.
onBeforeLog(data) {
// data.instanceName
// data.componentName
// data.level
// data.arguments
}
data.instanceNamedata.componentNamedata.levellog, info, warn, error.data.argumentsonContentRendering onContentRendering
Den här återanropsfunktionen aktiveras av komponenten personalization i olika återgivningsfaser. Nyttolasten kan variera beroende på parametern status. I exemplet nedan finns mer information om funktionsparametrarna.
onContentRendering(data) {
// data.instanceName
// data.componentName
// data.payload
// data.status
}
data.instanceNamedata.componentNamedata.payloadPOST-metod.data.statusKomponenten personalization meddelar Web SDK om återgivningsstatus. Värden som stöds:
rendering-started: Anger att Web SDK ska återge förslag. Innan Web SDK börjar återge ett beslutsområde eller en vy kan du i objektetdatase de förslag som ska återges av komponentenpersonalizationoch scopenamnet.no-offers: Anger att ingen nyttolast har tagits emot för de begärda parametrarna.rendering-failed: Anger att Web SDK inte kunde återge ett förslag.rendering-succeeded: Anger att återgivningen har slutförts för ett beslutsområde.rendering-redirect: Anger att Web SDK ska återge ett omdirigeringsförslag.
onContentHiding onContentHiding
Den här återanropsfunktionen aktiveras när ett fördolt format används eller tas bort.
onContentHiding(data) {
// data.instanceName
// data.componentName
// data.status
}
data.instanceNamedata.componentNamedata.statusKomponenten personalization meddelar Web SDK om återgivningsstatus. Värden som stöds:
hide-containersshow-containers
Ange övervakningskopplingar när NPM-paketet används specify-monitoring-npm
Om du använder Web SDK via NPM-paketet kan du ange övervakningskopplingar i funktionen createInstance enligt nedan.
var monitor = {
onBeforeCommand(data) {
console.log(data);
},
...
};
var alloyLibrary = require("@adobe/alloy");
var alloy = alloyLibrary.createInstance({ name: "alloy", monitors: [monitor] });
alloy("config", { ... });
alloy("sendEvent", { ... });
Exempel example
Web SDK söker efter en objektmatris i en global variabel som heter __alloyMonitors.
Om du vill spela in alla Web SDK-händelser måste du definiera övervakningsböckerna innan Web SDK-koden läses in på sidan. Varje övervakningsmetod hämtar en Web SDK-händelse.
Du kan definiera övervakningskopplingar när Web SDK-kod har lästs in på sidan, men alla kopplingar som har utlösts före sidinläsning hämtas inte.
När du definierar ett övervakningsobjekt behöver du bara definiera de metoder som du vill definiera en speciell logik för.
Om du till exempel bara bryr dig om onContentRendering kan du bara definiera den metoden. Du behöver inte använda alla övervakningskopplingar samtidigt.
Du kan definiera flera övervakningsanslutna kromobjekt. Alla objekt med den angivna metoden anropas när motsvarande händelse aktiveras.
<!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>