Con la variable Server API, puede recuperar contenido personalizado de las soluciones de personalización de Adobe, incluidas Adobe Target y offer decisioning.
Además, la variable Server API ofrece funciones de personalización de la misma página y de la página siguiente a través de destinos de personalización de Adobe Experience Platform, como Adobe Target y conexión personalizada personalizada. Para obtener información sobre cómo configurar Experience Platform para la personalización de la misma página y de la página siguiente, consulte la guía dedicada.
Al utilizar la API de servidor, debe integrar la respuesta proporcionada por el motor de personalización con la lógica utilizada para renderizar contenido en el sitio. A diferencia de SDK web, el Server API no tiene un mecanismo para aplicar automáticamente el contenido devuelto por Adobe Target y Offer Decisioning.
Antes de trabajar con soluciones de personalización de Adobe, asegúrese de comprender los siguientes conceptos:
__view__
scopequery
objectLa recuperación de contenido personalizado requiere un objeto de consulta de solicitud explícita para un ejemplo de solicitud. El objeto de consulta tiene el siguiente formato:
{
"query":{
"personalization":{
"schemas":[
"https://ns.adobe.com/personalization/html-content-item",
"https://ns.adobe.com/personalization/json-content-item",
"https://ns.adobe.com/personalization/redirect-item",
"https://ns.adobe.com/personalization/dom-action"
],
"decisionScopes":[
"alloyStore",
"siteWide",
"__view__",
"eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ"
]
}
}
}
Atributo | Tipo | Obligatorio/Opcional | Descripción |
---|---|---|---|
schemas |
String[] |
Necesario para la personalización de Target. Opcional para el Offer decisioning. | Lista de esquemas utilizados en la decisión, para seleccionar el tipo de ofertas devueltas. |
scopes |
String[] |
Opcional | Lista de ámbitos de decisión. Máximo 30 por solicitud. |
El contenido personalizado recuperado de las soluciones de personalización se presenta en un personalization:decisions
identificador, que tiene el siguiente formato para su carga útil:
{
"type":"personalization:decisions",
"payload":[
{
"id":"AT:eyJhY3Rpdml0eUlkIjoiMTMxMDEwIiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
"scope":"__view__",
"scopeDetails":{
"decisionProvider":"TGT",
"activity":{
"id":"131010"
},
"experience":{
"id":"0"
},
"strategies":[
{
"algorithmID":"0",
"trafficType":"0"
}
]
},
"items":[
{
"id":"0",
"schema":"https://ns.adobe.com/personalization/dom-action",
"meta":{
"offer.name":"Default Content",
"experience.id":"0",
"activity.name":"Luma target reporting",
"activity.id":"131010",
"experience.name":"Experience A",
"option.id":"2",
"offer.id":"0"
},
"data":{
"type":"setHtml",
"format":"application/vnd.adobe.target.dom-action",
"content":"Customer Service not chrome",
"selector":"HTML > BODY > DIV.page-wrapper:eq(0) > FOOTER.page-footer:eq(0) > DIV.footer:eq(0) > DIV.links:eq(0) > DIV.widget:eq(0) > UL.footer:eq(0) > LI.nav:eq(1) > A:nth-of-type(1)",
"prehidingSelector":"HTML > BODY > DIV:nth-of-type(1) > FOOTER:nth-of-type(1) > DIV:nth-of-type(1) > DIV:nth-of-type(2) > DIV:nth-of-type(1) > UL:nth-of-type(1) > LI:nth-of-type(2) > A:nth-of-type(1)"
}
}
]
}
]
}
Atributo | Tipo | Descripción |
---|---|---|
payload.id |
Cadena | El ID de decisión. |
payload.scope |
Cadena | El ámbito de decisión que dio lugar a las ofertas propuestas. |
payload.scopeDetails.decisionProvider |
Cadena | Establecer como TGT al usar Adobe Target. |
payload.scopeDetails.activity.id |
Cadena | ID exclusivo de la actividad de oferta. |
payload.scopeDetails.experience.id |
Cadena | ID exclusivo de la ubicación de la oferta. |
items[].id |
Cadena | ID exclusivo de la ubicación de la oferta. |
items[].data.id |
Cadena | El ID de la oferta propuesta. |
items[].data.schema |
Cadena | Esquema del contenido asociado con la oferta propuesta. |
items[].data.format |
Cadena | El formato del contenido asociado con la oferta propuesta. |
items[].data.language |
Cadena | Matriz de idiomas asociados al contenido de la oferta propuesta. |
items[].data.content |
Cadena | Contenido asociado con la oferta propuesta en formato de cadena. |
items[].data.selector |
Cadena | Selector de HTML utilizado para identificar el elemento DOM de destino para una oferta de acción DOM. |
items[].data.prehidingSelector |
Cadena | Selector de HTML utilizado para identificar el elemento DOM que se va a ocultar mientras se gestiona una oferta de acción DOM. |
items[].data.deliveryUrl |
Cadena | Contenido de imagen asociado con la oferta propuesta en formato de URL. |
items[].data.characteristics |
Cadena | Características asociadas con la oferta propuesta en el formato de un objeto JSON. |
Formato de API
POST /ee/v2/interact
curl -X POST "https://server.adobedc.net/ee/v2/interact?dataStreamId={DATASTREAM_ID}"
-H "Authorization: Bearer {TOKEN}"
-H "x-gw-ims-org-id: {ORG_ID}"
-H "x-api-key: {API_KEY}"
-H "Content-Type: application/json"
-d '{
"event":{
"xdm":{
"identityMap":{
"Email_LC_SHA256":[
{
"id":"0c7e6a405862e402eb76a70f8a26fc732d07c32931e9fae9ab1582911d2e8a3b",
"primary":true
}
]
},
"eventType":"web.webpagedetails.pageViews",
"web":{
"webPageDetails":{
"URL":"https://alloystore.dev/",
"name":"home-demo-Home Page"
}
},
"timestamp":"2021-08-09T14:09:20.859Z"
}
},
"query":{
"personalization":{
"schemas":[
"https://ns.adobe.com/personalization/html-content-item",
"https://ns.adobe.com/personalization/json-content-item",
"https://ns.adobe.com/personalization/redirect-item",
"https://ns.adobe.com/personalization/dom-action"
],
"decisionScopes":[
"__view__",
"eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ"
]
}
}
}'
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
configId |
Cadena | Sí | El ID del conjunto de datos. |
requestId |
Cadena | No | Proporcione un ID de seguimiento de solicitud externo. Si no se proporciona ninguno, la red perimetral generará uno por usted y lo devolverá de nuevo en el cuerpo o los encabezados de respuesta. |
Devuelve un 200 OK
estado y uno o más Handle
objetos, dependiendo de los servicios Edge que estén habilitados en la configuración del conjunto de datos.
{
"requestId":"da20d11d-adac-458c-91ac-15bf4e420a15",
"handle":[
{
"payload":[
{
"id":"AT:eyJhY3Rpdml0eUlkIjoiMTMxMDEwIiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
"scope":"__view__",
"scopeDetails":{
"decisionProvider":"TGT",
"activity":{
"id":"131010"
},
"experience":{
"id":"0"
},
"strategies":[
{
"algorithmID":"0",
"trafficType":"0"
}
]
},
"items":[
{
"id":"0",
"schema":"https://ns.adobe.com/personalization/dom-action",
"meta":{
"offer.name":"Default Content",
"experience.id":"0",
"activity.name":"Luma target reporting",
"activity.id":"131010",
"experience.name":"Experience A",
"option.id":"2",
"offer.id":"0"
},
"data":{
"type":"setHtml",
"format":"application/vnd.adobe.target.dom-action",
"content":"Customer Service not chrome",
"selector":"HTML > BODY > DIV.page-wrapper:eq(0) > FOOTER.page-footer:eq(0) > DIV.footer:eq(0) > DIV.links:eq(0) > DIV.widget:eq(0) > UL.footer:eq(0) > LI.nav:eq(1) > A:nth-of-type(1)",
"prehidingSelector":"HTML > BODY > DIV:nth-of-type(1) > FOOTER:nth-of-type(1) > DIV:nth-of-type(1) > DIV:nth-of-type(2) > DIV:nth-of-type(1) > UL:nth-of-type(1) > LI:nth-of-type(2) > A:nth-of-type(1)"
}
}
]
}
],
"type":"personalization:decisions"
}
]
}
Las notificaciones se deben activar cuando se haya visitado o procesado un contenido o una vista previamente recuperados para el usuario final. Para que las notificaciones se desactiven para el ámbito correcto, asegúrese de realizar un seguimiento de los correspondientes id
para cada ámbito.
Notificaciones con el derecho id
para los ámbitos correspondientes deben activarse para que los informes se reflejen correctamente.
Formato de API
POST /ee/v2/collect
curl -X POST "https://server.adobedc.net/ee/v2/collect?dataStreamId={DATASTREAM_ID}"
-H "Authorization: Bearer {TOKEN}"
-H "x-gw-ims-org-id: {ORG_ID}"
-H "x-api-key: {API_KEY}"
-H "Content-Type: application/json"
-d '{
"events":[
{
"xdm":{
"identityMap":{
"Email_LC_SHA256":[
{
"id":"0c7e6a405862e402eb76a70f8a26fc732d07c32931e9fae9ab1582911d2e8a3b",
"primary":true
}
]
},
"eventType":"web.webpagedetails.pageViews",
"web":{
"webPageDetails":{
"URL":"https://alloystore.dev/",
"name":"home-demo-Home Page"
}
},
"timestamp":"2021-08-09T14:09:20.859Z",
"_experience":{
"decisioning":{
"propositions":[
{
"id":"AT:eyJhY3Rpdml0eUlkIjoiMTMxMDEwIiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
"scope":"__view__",
"items":[
{
"id":"0"
}
]
}
]
}
}
}
}
]
}'
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
dataStreamId |
String |
Sí | ID del conjunto de datos utilizado por el extremo de recopilación de datos. |
requestId |
String |
No | ID de seguimiento de solicitud externa externa. Si no se proporciona ninguno, la red perimetral generará uno por usted y lo devolverá de nuevo en el cuerpo o los encabezados de respuesta. |
silent |
Boolean |
No | Parámetro booleano opcional que indica si la red perimetral debe devolver un 204 No Content con una carga útil vacía. Los errores críticos se notifican utilizando el código de estado HTTP y la carga útil correspondientes. |
Una respuesta correcta devuelve uno de los siguientes estados y una requestID
si no se ha proporcionado ninguno en la solicitud.
202 Accepted
cuando la solicitud se haya procesado correctamente;204 No Content
cuando la solicitud se procesó correctamente y la variable silent
se ha definido como true
;400 Bad Request
cuando la solicitud no se formó correctamente (por ejemplo, no se encontró la identidad primaria obligatoria).{
"requestId": "f567a988-4b3c-45a6-9ed8-f283188a445e"
}