adobe.target.getOffers() - at.js 2.x
Mit dieser Funktion können Sie mehrere Angebote abrufen, indem Sie mehrere Mboxes übergeben. Darüber hinaus können mehrere Angebote für alle Ansichten in aktiven Aktivitäten abgerufen werden.
consumerId
Der Standardwert ist die globale Mbox des Kunden, falls nicht angegeben. Dieser Schlüssel wird verwendet, um die zusätzliche Daten-ID (SDID) zu generieren, die für die A4T-Integration verwendet wird.
Bei Verwendung von getOffers()
generiert jeder Aufruf eine neue SDID. Wenn Sie mehrere Mbox-Anfragen auf derselben Seite haben und die SDID beibehalten möchten (sodass sie mit der SDID aus der target-global-mbox und der SDID Adobe Analytics übereinstimmt), verwenden Sie den Parameter consumerId
.
Wenn getOffers()
drei Mboxes enthält (namens "mbox1", "mbox2"und "mbox3"), fügen Sie Folgendes hinzu: consumerId: "mbox1, mbox2, mbox3"
im getOffers()
-Aufruf.
decisioningMethod
request
timeout
Anfrage
tntId
, thirdPartyId
oder marketingCloudVisitorId
wird benötigt.Folgendes muss auf der Seite implementiert werden:
- Besucher-ID-Service
- Appmeasurement.js
Die folgenden Werte werden unterstützt:
client_side: Wenn angegeben, wird eine Analytics-Nutzlast an den Aufrufer zurückgegeben, die über den Data Insertion API an Adobe Analytics gesendet werden soll.
server_side: Dies ist der Standardwert, bei dem das Backend Target und Analytics die SDID verwendet, um die Aufrufe zu Berichtszwecken zusammenzufügen.
Maximale Anzahl 50.
Name nicht leer.
Länge des Namens <=
128.
Wertlänge <=
5000.
Der Name sollte nicht mit "profile"beginnen.
Unzulässige Namen: "orderId", "orderTotal", "productPurchasedId".
Maximale Anzahl = 50.
Name nicht leer.
Länge des Namens <=
128.
Wertlänge <=
5000.
Akzeptiert nur Zeichenfolgenwerte.
Der Name sollte nicht mit "profile"beginnen.
Nicht leer.
maximale Größe = 128.
Nicht leer.
maximale Größe = 128.
>=
0.Keine leeren Werte.
Die maximale Länge jedes Werts beträgt 50.
Durch Kommas verkettet und getrennt.
Gesamtlänge der Produkt-IDs <=
250.
Maximale Anzahl 50.
Name nicht leer.
Länge des Namens <=
128.
Wertlänge <=
5000.
Akzeptiert nur Zeichenfolgenwerte.
Der Name sollte nicht mit "profile"beginnen.
Unzulässige Namen: "orderId", "orderTotal", "productPurchasedId".
Maximale Anzahl 50.
Name nicht leer.
Länge des Namens <=
128.
Wertlänge <=
256.
Der Name sollte nicht mit "profile"beginnen.
Akzeptiert nur Zeichenfolgenwerte.
Nicht leer.
Maximale Größe = 128.
Nicht leer.
Maximale Größe = 128.
>=
0.Keine leeren Werte.
Die maximale Länge jedes Werts beträgt 50.
Durch Kommas verkettet und getrennt.
Gesamtlänge der Produkt-IDs <=
250.
Maximale Größe = 50.
Keine Null-Elemente.
Nicht leer.
Kein "-clicked"-Suffix.
Maximale Größe = 250.
Zulässige Zeichen: `'-, ./=:;&!@#$%^&*()+
Nicht null.
Eindeutig.
>=
0.
Maximale Anzahl = 50.
Name nicht leer.
Länge des Namens <=
128.
Akzeptiert nur Zeichenfolgenwerte.
Wertlänge <=
5000.
Der Name sollte nicht mit "profile"beginnen.
Unzulässige Namen: "orderId", "orderTotal", "productPurchasedId".
Maximale Anzahl = 50.
Name nicht leer.
Länge des Namens <=
128.
Akzeptiert nur Zeichenfolgenwerte.
Wertlänge <=
256.
Der Name sollte nicht mit "profile"beginnen.
Nicht leer.
Maximale Größe = 128.
Nicht leer.
Maximale Größe = 128.
Anfrage > Ausführen > Mboxes > Mbox > Bestellung
ID
Anfrage > Ausführen > Mboxes > Mbox > Bestellung
Gesamtsumme
>=
0.Anfrage > Ausführen > Mboxes > Mbox > Bestellung
purchasedProductIds
Keine leeren Werte.
Maximale Länge jedes Werts = 50.
Durch Kommas verkettet und getrennt.
Gesamtlänge der Produkt-IDs <=
250.
Benutzen Sie getOffers(), um alle Ansichten aufzurufen
adobe.target.getOffers({
request: {
prefetch: {
views: [{}]
}
}
});
Rufen Sie getOffers() auf, um eine geräteübergreifende Entscheidung zu treffen.
adobe.target.getOffers({
decisioningMethod:"on-device",
request: {
execute: {
mboxes: [
{
index: 0,
name: "homepage"
}
]
}
}
});
Benutzen Sie getOffers(), um die neuesten Ansichten mit den übergebenen Parametern und Profilparametern aufzurufen
adobe.target.getOffers({
request: {
"prefetch": {
"views": [
{
"parameters": {
"ad": "1"
},
"profileParameters": {
"age": 23
}
}
]
}
}
});
Benutzen Sie getOffers(), um Mboxes mit den übergebenen Parametern und Profilparametern aufzurufen
adobe.target.getOffers({
request: {
execute: {
mboxes: [
{
index: 0,
name: "first-mbox"
},
{
index: 1,
name: "second-mbox",
parameters: {
a: 1
},
profileParameters: {
b: 2
}
}
]
}
}
});
Rufen Sie getOffers() auf, um die Analytics-Nutzlast von der Clientseite abzurufen.
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
Antwort:
{
"prefetch": {
"mboxes": [{
"index": 0,
"name": "a1-serverside-xt",
"options": [{
"content": "<img src=\"http://s7d2.scene7.com/is/image/TargetAdobeTargetMobile/L4242-xt-usa?tm=1490025518668&fit=constrain&hei=491&wid=980&fmt=png-alpha\"/>",
"type": "html",
"eventToken": "n/K05qdH0MxsiyH4gX05/2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
"responseTokens": {
"profile.memberlevel": "0",
"geo.city": "bucharest",
"activity.id": "167169",
"experience.name": "USA Experience",
"geo.country": "romania"
}
}],
"analytics": {
"payload": {
"pe": "tnt",
"tnta": "167169:0:0|0|100,167169:0:0|2|100,167169:0:0|1|100"
}
}
}]
}
}
Die Payload kann dann über die Dateneinfüge-API an Adobe Analytics weitergeleitet werden.
Abrufen und Rendern von Daten aus mehreren Mboxes über getOffers() und applyOffers()
Mit at.js 2.x können Sie mehrere Mboxes über die getOffers()
-API abrufen. Sie können auch Daten für mehrere Mboxes abrufen und dann applyOffers()
zum Rendern der Daten an verschiedenen Positionen verwenden, die durch einen CSS-Selektor identifiziert werden.
Das folgende Beispiel zeigt eine einfache HTML-Seite, auf der at.js 2.x implementiert ist:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>at.js 2.x, multiple selectors and multiple mboxes</title>
<script src="at.js"></script>
</head>
<body>
<div id="container1">Default content 1</div>
<div id="container2">Default content 2</div>
<div id="container3">Default content 3</div>
</body>
</html>
Angenommen, Sie haben drei Behälter, die Sie über einen Inhalt ändern möchten, der von Target empfangen wurde. Sie können eine einzelne Anfrage für drei Mboxes erstellen, in der jede Mbox Inhalt in den entsprechenden Behälter rendert.
Die Anfrage und der Rendercode könnten wie folgt aussehen:
adobe.target.getOffers({
request: {
prefetch: {
mboxes: [
{
index: 0,
name: "mbox1"
},
{
index: 1,
name: "mbox2"
},
{
index: 2,
name: "mbox3"
}
]
}
}
})
.then(response => {
// get all mboxes from response
const mboxes = response.prefetch.mboxes;
let count = 1;
mboxes.forEach(el => {
adobe.target.applyOffers({
selector: "#container" + count,
response: {
prefetch: {
mboxes: [el]
}
}
});
count += 1;
});
});
Im Abschnitt request > prefetch > mboxes
gibt es drei verschiedene Mboxes. Wenn die Anfrage erfolgreich abgeschlossen wurde, erhalten Sie die Antwort für jede Mbox aus response > prefetch > mboxes
. Nachdem Sie über die Antworten und die Speicherorte für die Wiedergabe verfügen, können Sie applyOffers()
aufrufen, um den von Ihnen von Target abgerufenen Inhalt wiederzugeben. In diesem Beispiel haben wir die folgende Zuordnung:
- Mbox 1 > CSS selector # container 1
- Mbox 2 > CSS selector # container 2
- Mbox 3 > CSS selector # container 3
In diesem Beispiel werden die CSS-Selektoren mit einer Zähl-Variablen erstellt. In einem realen Szenario könnten Sie zwischen dem CSS-Selektor und der Mbox eine andere Zuordnung verwenden.
Beachten Sie, dass dieses Beispiel prefetch > mboxes
verwendet, Sie könnten aber auch execute > mboxes
verwenden. Stellen Sie sicher, dass Sie bei Verwendung von Vorausholen (prefetch) in getOffers()
auch beim Aufruf von applyOffers()
Vorausholen verwenden sollten.
Rufen Sie getOffers() auf, um einen pageLoad auszuführen
Das folgende Beispiel zeigt, wie Sie einen pageLoad mit getOffers() mit at.js 2 durchführen.x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});