adobe.target.getOffer(options)
Diese Funktion löst eine Anfrage zum Abrufen eines Target -Angebots aus.
Verwenden Sie sie mit adobe.target.applyOffer()
, um die Antwort zu verarbeiten, oder verwenden Sie Ihre eigene Methode für die Verarbeitung von „success“. Der Optionsparameter ist obligatorisch und hat die folgende Struktur:
Mbox-Parameter Ein Objekt aus Schlüssel-Wert-Paaren mit der folgenden Struktur:
{ "param1": "value1", "param2": "value2"}
Rückruf wird ausgeführt, wenn eine Antwort vom Server eingegangen ist. Die Rückruffunktion „success“ erhält einen einzelnen Parameter, der ein Array von Angebotsobjekten enthält. Im Folgenden finden Sie ein Beispiel für einen Rückruf bei einem Erfolg:
function handleSuccess(response){......}
Details finden Sie unten unter „Antworten“.
Auszuführender Rückruf bei Eingang eines Fehlers Es gibt einige Fälle, die als fehlerhaft angesehen werden:
- Der HTTP-Status-Code weicht von „200 OK“ ab.
- Die Antwort kann nicht analysiert werden. Dies kann zum Beispiel bei schlecht programmiertem JSON-Code oder HTML- statt JSON-Code auftreten.
- Die Antwort enthält den Schlüssel „error“. Dies kann zum Beispiel der Fall sein, wenn eine Ausnahme auf dem Edgeserver auftritt und eine Anforderung nicht richtig verarbeitet werden konnte. Ein Fehler tritt auch dann auf, wenn eine Mbox blockiert ist und dafür keine Inhalte abgerufen werden konnten und so weiter. Die Rückruffunktion „error“ erhält zwei Parameter: „status“ und „error“. Beispiel für einen Fehler-Rückruf:
function handleError(status, error){......}
Details finden Sie unten unter „Fehlermeldungen“.
Zeitüberschreitung in Millisekunden Wird kein Wert festgelegt, kommt der Standardwert für die Zeitüberschreitung in at.js zum Einsatz.
Der standardmäßige Timeout kann über die Target -Benutzeroberfläche unter Administration > Implementation festgelegt werden.
Beispiele
Hinzufügen von Parametern mit getOffer() und Verwendung von applyOffer() für die Erfolgsbehandlung:
adobe.target.getOffer({
"mbox": "target-global-mbox",
"params": {
"a": 1,
"b": 2
},
"success": function(offer) {
adobe.target.applyOffer( {
"mbox": "target-global-mbox",
"offer": offer
} );
},
"error": function(status, error) {
console.log('Error', status, error);
}
});
Hinzufügen von Parametern und Profilparametern mit getOffer() und Verwendung von applyOffer() für die Erfolgsbehandlung:
adobe.target.getOffer({
"mbox": "target-global-mbox",
"params": {
"a": 1,
"b": 2,
"profile.age": 27,
"profile.gender": "male"
},
"success": function(offer) {
adobe.target.applyOffer( {
"mbox": "target-global-mbox",
"offer": offer
} );
},
"error": function(status, error) {
console.log('Error', status, error);
}
});
Verwenden von benutzerdefiniertem Timeout und benutzerdefinierter Erfolgsbehandlung mit getOffer():
„YOUR_OWN_CUSTOM_HANDLING_FUNCTION“ ist ein Platzhalter für eine Funktion, die der Kunde definieren würde.
adobe.target.getOffer({
"mbox": "target-global-mbox",
"success": function(offer) {
YOUR_OWN_CUSTOM_HANDLING_FUNCTION(offer);
},
"error": function(status, error) {
console.log('Error', status, error);
},
"timeout": 2000
});
Antworten
Der Antwortparameter, der an die Rückruffunktion „success“ weitergegeben wurde, ist eine Reihe von Aktionen. Eine Aktion ist ein Objekt, das für gewöhnlich das folgende Format hat:
Beispiel
{
"sessionId": "1444512212156-384616",
"tntId": "1444512212156-384616.17_35",
"offers": [{
"plugins": ["<script type=\"text/javascript\">\r\n/*mboxHighlight+ (1of2) v1 ==> Response Plugin*/\r\nwindow.ttMETA=(typeof(window.ttMETA)!='undefined')?window.ttMETA:[];window.ttMETA.push({'mbox':'target-global-mbox','campaign':'at: redirect ootb','experience':'Experience B','offer':'/at_redirect_ootb/experiences/1/pages/0/1442082890250'});window.ttMBX=function(x){var mbxList=[];for(i=0;i<ttMETA.length;i++){if(ttMETA[i].mbox==x.getName()){mbxList.push(ttMETA[i])}}return mbxList[x.getId()]}\r\n</script>"],
"actions": {
"content": [{
"passMboxSession": false,
"selector": "body",
"action": "redirect",
"url": "https://example.com/04.html",
"includeAllUrlParameters": true
}]
}
}]
}
Fehlermeldungen
Die an den Rückruf mit Fehler übergebenen Parameter „status“ und „error“ haben das folgende Format:
Stellt den Fehlerstatus dar Dieser Parameter kann die folgenden Werte annehmen:
- timeout: Gibt an, dass die Anfrage abgelaufen ist.
- parseerror: Gibt an, dass die Antwort nicht analysiert werden konnte, zum Beispiel wenn HTML-Code oder Klartext statt JSON gesendet wurde.
- error: Gibt an, dass ein allgemeines Problem aufgetreten ist, etwa wenn wir einen HTTP-Status erhalten, der nicht „200 OK“ lautet.