adobe.target.getOffers() - at.js 2.x
Med den här funktionen kan du hämta flera erbjudanden genom att skicka in flera rutor. Dessutom kan flera erbjudanden hämtas för alla vyer i aktiva aktiviteter.
consumerId
Standardvärdet är klientens globala mbox om den inte anges. Den här nyckeln används för att generera det extra data-ID (SDID) som används för A4T-integrering.
När du använder getOffers()
genererar varje anrop ett nytt SDID. Om du har flera mbox-begäranden på samma sida och vill bevara SDID (så att det matchar SDID:t från målglobal-mbox och Adobe Analytics SDID) använder du consumerId
parameter.
If getOffers()
innehåller tre rutor (mbox1, mbox2 och mbox3): consumerId: "mbox1, mbox2, mbox3"
i getOffers()
ring.
decisioningMethod
request
timeout
Begäran
tntId
, thirdPartyId
, eller marketingCloudVisitorId
är obligatoriskt.Följande måste implementeras på sidan:
- Tjänst för besökar-ID
- Appmeasurement.js
Följande värden stöds:
client_side: När det anges returneras en analyslast till anroparen som ska användas för att skicka till Adobe Analytics via Data Insertion API.
server_side: Detta är standardvärdet där Target och Analytics backend använder SDID för att sammanfoga samanrop i rapporteringssyfte.
Högsta antal 50.
Namnet är inte tomt.
Namnlängd <=
128.
Värdelängd <=
5000.
Namnet får inte börja med "profile".
Otillåtna namn: "orderId", "orderTotal", "productPurchasedId".
Maximantal 50.
Namnet är inte tomt.
Namnlängd <=
128.
Värdelängd <=
5000.
Accepterar endast strängvärden.
Namnet får inte börja med "profile".
Inte tom.
maxstorlek = 128.
Inte tom.
maxstorlek = 128.
Begäran > förhämtning > vyer
ordning > id
>=
0.Inga tomma värden.
Varje värde har maxlängden 50.
Sammanfogad och avgränsad med komma.
Total längd för produkt-ID <=
250.
Request > execute > pageLoad
parameters
Högsta antal 50.
Namnet är inte tomt.
Namnlängd <=
128.
Värdelängd <=
5000.
Accepterar endast strängvärden.
Namnet får inte börja med "profile".
Otillåtna namn: "orderId", "orderTotal", "productPurchasedId".
Request > execute > pageLoad
profileParameters
Högsta antal 50.
Namnet är inte tomt.
Namnlängd <=
128.
Värdelängd <=
256.
Namnet får inte börja med "profile".
Accepterar endast strängvärden.
Request > execute > pageLoad
product
Request > execute > pageLoad
product -> id
Inte tom.
Maximal storlek = 128.
Request > execute > pageLoad
product > categoryId
Inte tom.
Maximal storlek = 128.
Request > execute > pageLoad
order
Request > execute > pageLoad
order > id
Request > execute > pageLoad
order > total
>=
0.Request > execute > pageLoad
order > purchaseProductIds
Inga tomma värden.
Varje värde har maxlängden 50.
Sammanfogad och avgränsad med komma.
Total längd för produkt-ID <=
250.
Maximal storlek = 50.
Inga null-element.
Inte tom.
Inget '-klickat'-suffix.
Maximal storlek = 250.
Tecken: `'-, ./=:;&!@#$%^&*()+
Inte null.
Unik.
>=
0.
Högsta antal = 50.
Namnet är inte tomt.
Namnlängd <=
128.
Accepterar endast strängvärden.
Värdelängd <=
5000.
Namnet får inte börja med "profile".
Otillåtna namn: "orderId", "orderTotal", "productPurchasedId".
Högsta antal = 50.
Namnet är inte tomt.
Namnlängd <=
128.
Accepterar endast strängvärden.
Värdelängd <=
256.
Namnet får inte börja med "profile".
Inte tom.
Maximal storlek = 128.
Inte tom.
Maximal storlek = 128.
Request > execute > mbox>mbox
order > id
>=
0.Inga tomma värden.
Varje värdes maximala längd = 50.
Sammanfogad och avgränsad med komma.
Total längd för produkt-id <=
250.
Utlysning getOffers() för alla vyer
adobe.target.getOffers({
request: {
prefetch: {
views: [{}]
}
}
});
Utlysning getOffers() att fatta ett beslut på enheten
adobe.target.getOffers({
decisioningMethod:"on-device",
request: {
execute: {
mboxes: [
{
index: 0,
name: "homepage"
}
]
}
}
});
Utlysning getOffers() för att hämta de senaste vyerna med skickade parametrar och profilparametrar
adobe.target.getOffers({
request: {
"prefetch": {
"views": [
{
"parameters": {
"ad": "1"
},
"profileParameters": {
"age": 23
}
}
]
}
}
});
Utlysning getOffers() för att hämta rutor med parametrar och profilparametrar skickade.
adobe.target.getOffers({
request: {
execute: {
mboxes: [
{
index: 0,
name: "first-mbox"
},
{
index: 1,
name: "second-mbox",
parameters: {
a: 1
},
profileParameters: {
b: 2
}
}
]
}
}
});
Utlysning getOffers() för att hämta analysens nyttolast från klientsidan
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
Svar:
{
"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"
}
}
}]
}
}
Nyttolasten kan sedan vidarebefordras till Adobe Analytics via API för datainfogning.
Hämta och återge data från flera rutor via getOffers() och applyOffers()
Med at.js 2.x kan du hämta flera mbox via getOffers()
API. Du kan även hämta data för flera mbox-rutor och sedan använda applyOffers()
för att återge data på olika platser som identifieras av en CSS-väljare.
I följande exempel visas en enkel HTML-sida med at.js 2.x implementerad:
<!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>
Anta att du har tre behållare som du vill ändra via innehåll som tagits emot från Target. Du kan skapa en enda begäran för tre mrutor där varje mbox har visst innehåll som ska återges i respektive behållare.
Koden för begäran och återgivning kan se ut som i följande exempel:
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;
});
});
I request > prefetch > mboxes
finns det tre olika kartonger. Om begäran slutfördes utan fel får du svaret för varje ruta från response > prefetch > mboxes
. När du har fått svaren och de platser du vill använda för återgivningen kan du anropa applyOffers()
för att återge innehåll som hämtats från Target. I det här exemplet har vi följande mappning:
- mbox1 > CSS-väljare #container1
- mbox2 > CSS-väljare #container2
- mbox3 > CSS-väljare #container3
I det här exemplet används variabeln count för att skapa CSS-väljarna. I ett verkligt scenario kan du använda en annan mappning mellan CSS-väljaren och mbox.
Observera att det här exemplet använder prefetch > mboxes
, men du kan också använda execute > mboxes
. Om du använder förhämtning i getOffers()
ska du också använda förhämtning i applyOffers()
anrop.
Utlysning getOffers() för att utföra en pageLoad
I följande exempel visas hur du utför en pageLoad med getOffers() med at.js 2.x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});