Überwachungs-Hooks für Web SDK
Adobe Experience Platform Web SDK enthält Überwachungs-Hooks, mit denen Sie verschiedene Systemereignisse überwachen können. Diese Tools sind nützlich, um eigene Debugging-Tools zu entwickeln und Web SDK-Protokolle zu erfassen.
Die Web SDK-Trigger übernehmen die Überwachungsfunktionen unabhängig davon, ob Sie „Debugging aktiviert .
onInstanceCreated onInstanceCreated
Diese Rückruffunktion wird ausgelöst, wenn Sie erfolgreich eine neue Web SDK-Instanz erstellt haben. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onInstanceCreated(data) {
// data.instanceName
// data.instance
}
data.instanceNamedata.instanceonInstanceConfigured onInstanceConfigured
Diese Rückruffunktion wird von der Web-SDK ausgelöst, wenn der configure erfolgreich aufgelöst wurde. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onInstanceConfigured(data) {
// data.instanceName
// data.config
}
data.instanceNamedata.configconfigure-Befehl übergeben werden, wobei alle Standardwerte hinzugefügt werden.onBeforeCommand onBeforeCommand
Diese Rückruffunktion wird von Web SDK ausgelöst, bevor ein anderer Befehl ausgeführt wird. Mit dieser Funktion können Sie die Konfigurationsoptionen eines bestimmten Befehls abrufen. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onBeforeCommand(data) {
// data.instanceName
// data.commandName
// data.options
}
data.instanceNamedata.commandNamedata.optionsonCommandResolved onCommandResolved
Diese Rückruffunktion wird ausgelöst, wenn Befehlszusagen aufgelöst werden. Sie können diese Funktion verwenden, um die Befehlsoptionen und das Ergebnis anzuzeigen. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onCommandResolved(data) {
// data.instanceName
// data.commandName
// data.options
// data.result
},
data.instanceNamedata.commandNamedata.optionsdata.resultonCommandRejected onCommandRejected
Diese Rückruffunktion wird ausgelöst, bevor eine Befehlszusage abgelehnt wird, und enthält Informationen über den Grund, warum der Befehl abgelehnt wurde. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onCommandRejected(data) {
// data.instanceName
// data.commandName
// data.options
// data.error
}
data.instanceNamedata.commandNamedata.optionsdata.errorfetch), zusammen mit dem Grund, warum der Befehl abgelehnt wurde.onBeforeNetworkRequest onBeforeNetworkRequest
Diese Rückruffunktion wird ausgelöst, bevor eine Netzwerkanfrage ausgeführt wird. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onBeforeNetworkRequest(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
}
data.instanceNamedata.requestIdrequestId, um das Debugging zu aktivieren.data.urldata.payloadPOST-Methode im Hauptteil der Anfrage gesendet wird.onNetworkResponse onNetworkResponse
Diese Rückruffunktion wird ausgelöst, wenn der Browser eine Antwort erhält. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onNetworkResponse(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.body
// data.parsedBody
// data.status
// data.retriesAttempted
}
data.instanceNamedata.requestIdrequestId, um das Debugging zu aktivieren.data.urldata.payloadPOST-Methode im Hauptteil der Anfrage gesendet wird.data.bodydata.parsedBodydata.statusdata.retriesAttemptedonNetworkError onNetworkError
Diese Rückruffunktion wird ausgelöst, wenn die Netzwerkanfrage fehlgeschlagen ist. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onNetworkError(data) {
// data.instanceName
// data.requestId
// data.url
// data.payload
// data.error
},
data.instanceNamedata.requestIdrequestId, um das Debugging zu aktivieren.data.urldata.payloadPOST-Methode im Hauptteil der Anfrage gesendet wird.data.errorfetch), zusammen mit dem Grund, warum der Befehl abgelehnt wurde.onBeforeLog onBeforeLog
Diese Rückruffunktion wird ausgelöst, bevor Web SDK etwas in der Konsole protokolliert. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onBeforeLog(data) {
// data.instanceName
// data.componentName
// data.level
// data.arguments
}
data.instanceNamedata.componentNamedata.levellog, info, warn, error.data.argumentsonContentRendering onContentRendering
Diese Rückruffunktion wird von der personalization-Komponente in verschiedenen Renderingphasen ausgelöst. Die Payload kann je nach status unterschiedlich sein. Siehe folgendes Beispiel für Details zu den Funktionsparametern.
onContentRendering(data) {
// data.instanceName
// data.componentName
// data.payload
// data.status
}
data.instanceNamedata.componentNamedata.payloadPOST-Methode im Hauptteil der Anfrage gesendet wird.data.statusDie personalization benachrichtigt die Web-SDK über den Rendering-Status. Unterstützte Werte:
rendering-started: Gibt an, dass Web SDK Vorschläge rendern wird. Bevor Web SDK mit dem Rendern eines Entscheidungsumfangs oder einer Ansicht beginnt, können Sie imdatadie Vorschläge sehen, die von derpersonalizationgerendert werden sollen, sowie den Namen des Bereichs.no-offers: Gibt an, dass für die angeforderten Parameter keine Payload empfangen wurde.rendering-failed: Gibt an, dass Web SDK einen Vorschlag nicht rendern konnte.rendering-succeeded: Gibt an, dass das Rendering für einen Entscheidungsumfang abgeschlossen ist.rendering-redirect: Gibt an, dass Web SDK einen Umleitungsvorschlag rendert.
onContentHiding onContentHiding
Diese Rückruffunktion wird ausgelöst, wenn ein Stil zum Vorab-Ausblenden angewendet oder entfernt wird.
onContentHiding(data) {
// data.instanceName
// data.componentName
// data.status
}
data.instanceNamedata.componentNamedata.statusDie personalization benachrichtigt die Web-SDK über den Rendering-Status. Unterstützte Werte:
hide-containersshow-containers
Angeben von Überwachungs-Hooks bei Verwendung des NPM-Pakets specify-monitoring-npm
Wenn Sie Web SDK über das NPM-Paket verwenden, können Sie Überwachungs-Hooks in der createInstance angeben, wie unten dargestellt.
var monitor = {
onBeforeCommand(data) {
console.log(data);
},
...
};
var alloyLibrary = require("@adobe/alloy");
var alloy = alloyLibrary.createInstance({ name: "alloy", monitors: [monitor] });
alloy("config", { ... });
alloy("sendEvent", { ... });
Beispiel example
Web SDK sucht in einer globalen Variablen namens __alloyMonitors nach einem Array von Objekten.
Um alle Web SDK-Ereignisse zu erfassen, müssen Sie Ihre Überwachungs-Hooks definieren, bevor der Web SDK-Code auf Ihrer Seite geladen wird. Jede Überwachungsmethode erfasst ein Web SDK-Ereignis.
Sie können Überwachungs-Hooks () Laden von Web SDK-Code auf Ihrer Seite definieren, aber alle Hooks, die vor dem Laden der Seite ausgelöst wurden, nicht.
Wenn Sie Ihr Überwachungs-Hook-Objekt definieren, müssen Sie nur die Methoden definieren, für die Sie eine spezielle Logik definieren möchten.
Wenn Ihnen beispielsweise nur onContentRendering wichtig ist, können Sie einfach diese Methode definieren. Sie müssen nicht alle Überwachungs-Hooks gleichzeitig verwenden.
Sie können mehrere Überwachungs-Hook-Objekte definieren. Alle Objekte mit der angegebenen Methode werden aufgerufen, wenn das entsprechende Ereignis ausgelöst wird.
<!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>