adobe.target.getOffers() - at.js 2.x
Esta función le permite recuperar varias ofertas pasando varios mboxes. Además, se pueden recuperar varias ofertas para todas las vistas de actividades activas.
consumerId
Si no se proporciona, el valor predeterminado es el mbox global del cliente. Esta clave se utiliza para generar el ID de datos suplementario (SDID) utilizado para la integración de A4T.
Al utilizar getOffers()
, cada llamada genera un SDID nuevo. Si tiene varias solicitudes de mbox en la misma página y desea conservar el SDID (de modo que coincida con el SDID de target-global-mbox y el SDID Adobe Analytics), utilice el parámetro consumerId
.
Si getOffers()
incluye tres mboxes (llamados "mbox1", "mbox2" y "mbox3"), incluya: consumerId: "mbox1, mbox2, mbox3"
en la llamada a getOffers()
.
decisioningMethod
request
timeout
Solicitud
tntId
, thirdPartyId
o marketingCloudVisitorId
es obligatorio.Se debe implementar lo siguiente en la página:
- Servicio de ID de visitante
- AppMeasurement.js
Se admiten los siguientes valores:
client_side: cuando se especifique, se devolverá una carga útil de Analytics al que llama, que debería usarse para enviar a Adobe Analytics a través de Data Insertion API.
server_side: Este es el valor predeterminado en el que el backend Target y Analytics usará el SDID para unir las llamadas con fines de creación de informes.
Solicitud > Captura previa
Vistas
Recuento máximo 50.
Nombre no en blanco.
Longitud de nombre <=
128.
Longitud del valor <=
5000.
El nombre no debe comenzar con "perfil".
Nombres no permitidos: "orderId", "orderTotal", "productPurchasedId".
Solicitud > Captura previa
Vistas > profileParameters
Recuento máximo 50.
Nombre no en blanco.
Longitud de nombre <=
128.
Longitud del valor <=
5000.
Solo acepta valores de cadena.
El nombre no debe comenzar con "perfil".
Solicitud > Captura previa
Vistas > Producto
Solicitud > Captura previa
Vistas > Producto > Id.
No en blanco.
tamaño máximo = 128.
Solicitud > Captura previa
Vistas > Producto > categoryId
No en blanco.
tamaño máximo = 128.
Solicitud > Captura previa
Vistas > Pedido
Solicitud > Captura previa
Vistas > Pedido > Id.
Solicitud > Captura previa
Vistas > Pedido > Total
>=
0.Solicitud > Captura previa
Vistas > Pedido > purchasedProductIds
No hay valores en blanco.
Longitud máxima de cada valor 50.
Concatenado y separado por una coma.
Longitud total de ID de producto <=
250.
Recuento máximo 50.
Nombre no en blanco.
Longitud de nombre <=
128.
Longitud del valor <=
5000.
Solo acepta valores de cadena.
El nombre no debe comenzar con "perfil".
Nombres no permitidos: "orderId", "orderTotal", "productPurchasedId".
Recuento máximo 50.
Nombre no en blanco.
Longitud de nombre <=
128.
Longitud del valor <=
256.
El nombre no debe comenzar con "perfil".
Solo acepta valores de cadena.
No en blanco.
Tamaño máximo = 128.
No en blanco.
Tamaño máximo = 128.
>=
0.No hay valores en blanco.
Longitud máxima de cada valor 50.
Concatenado y separado por una coma.
Longitud total de ID de producto <=
250.
Tamaño máximo = 50.
No hay elementos nulos.
No en blanco.
Sin sufijo "-clicked".
Tamaño máximo = 250.
Caracteres permitidos: `'-, ./=:;&!@#$%^&*()+
No es nulo.
Único.
>=
0.
Recuento máximo = 50.
Nombre no en blanco.
Longitud de nombre <=
128.
Solo acepta valores de cadena.
Longitud del valor <=
5000.
El nombre no debe comenzar con "perfil".
Nombres no permitidos: "orderId", "orderTotal", "productPurchasedId".
Recuento máximo = 50.
Nombre no en blanco.
Longitud de nombre <=
128.
Solo acepta valores de cadena.
Longitud del valor <=
256.
El nombre no debe comenzar con "perfil".
No en blanco.
Tamaño máximo = 128.
No en blanco.
Tamaño máximo = 128.
>=
0.No hay valores en blanco.
Longitud máxima de cada valor = 50.
Concatenado y separado por una coma.
Longitud total de los identificadores de producto <=
250.
Llame a getOffers() para todas las vistas
adobe.target.getOffers({
request: {
prefetch: {
views: [{}]
}
}
});
Llame a getOffers() para tomar una decisión en el dispositivo
adobe.target.getOffers({
decisioningMethod:"on-device",
request: {
execute: {
mboxes: [
{
index: 0,
name: "homepage"
}
]
}
}
});
Llame a getOffers() para recuperar las vistas más recientes con los parámetros pasado y de perfil
adobe.target.getOffers({
request: {
"prefetch": {
"views": [
{
"parameters": {
"ad": "1"
},
"profileParameters": {
"age": 23
}
}
]
}
}
});
Llame a getOffers() para recuperar mboxes con parámetros y parámetros de perfil pasados.
adobe.target.getOffers({
request: {
execute: {
mboxes: [
{
index: 0,
name: "first-mbox"
},
{
index: 1,
name: "second-mbox",
parameters: {
a: 1
},
profileParameters: {
b: 2
}
}
]
}
}
});
Llame a getOffers() para recuperar la carga útil de Analytics del lado del cliente
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
Respuesta:
{
"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"
}
}
}]
}
}
La carga útil se puede reenviar a Adobe Analytics mediante la API de inserción de datos.
Buscar y procesar datos de varios mboxes a través de getOffers() y applyOffers()
at.js 2.x le permite recuperar varios mboxes a través de la API de getOffers()
. También puede buscar datos para varios mboxes y, después, utilizar applyOffers()
para representar los datos en diferentes ubicaciones identificadas por un selector de CSS.
El siguiente ejemplo muestra una página HTML sencilla con at.js 2.x implementado:
<!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>
Supongamos que tiene tres contenedores que desea modificar a través del contenido recibido de Target. Puede construir una sola solicitud para tres mboxes en los que cada uno tiene contenido que procesar en su respectivo contenedor.
La solicitud y el código de procesamiento pueden tener el siguiente aspecto:
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;
});
});
En la sección request > prefetch > mboxes
, hay tres mboxes diferentes. Si la solicitud se completó correctamente, recibe la respuesta de response > prefetch > mboxes
para cada mbox. Una vez que tenga las respuestas y las ubicaciones que desee utilizar para la representación, puede invocar a applyOffers()
para representar el contenido obtenido de Target. En este ejemplo tenemos la siguiente asignación:
- mbox 1 > selector CSS #contenedor 1
- mbox 2 > selector CSS #contenedor 2
- mbox 3 > selector CSS #contenedor 3
Este ejemplo utiliza la variable de recuento para construir los selectores CSS. En una situación real, podría utilizar una asignación diferente entre el selector CSS y el mbox.
Tenga en cuenta que este ejemplo utiliza prefetch > mboxes
, pero también puede utilizar execute > mboxes
. Asegúrese de que, si utiliza la crga previa en getOffers()
, también debe utilizar la carga previa en la invocación de applyOffers()
.
Llamar a getOffers() para realizar un pageLoad
El siguiente ejemplo muestra cómo realizar un pageLoad con getOffers() con at.js 2.x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});