A API do Servidor de rede de borda pode fornecer experiências personalizadas gerenciadas em offer decisioning para o canal da Web.
Offer Decisioning O suporta uma interface não visual para criar, ativar e entregar suas atividades e experiências de personalização.
Antes de usar a API do servidor em conjunto com o Offer Decisioning, é necessário habilitar a personalização do Adobe Experience Platform na configuração do conjunto de dados e habilitar o offer decisioning opção.
Consulte a guia sobre como adicionar serviços a um armazenamento de dadospara obter informações detalhadas sobre como ativar o Offer Decisioning.
Offer Decisioning O depende do Serviço de segmentação da Adobe Experience Platform para criação de público-alvo. Você pode encontrar a documentação do Segmentation Service here.
O Offer Decision Engine usa dados e Perfis do cliente em tempo real, juntamente com o Offer Library, para fornecer ofertas aos clientes e canais certos na hora certa.
Para saber mais sobre o Offer Decisioning Engine, consulte os documentação.
Depois configuração do armazenamento de dados, você deve definir os escopos de decisão a serem usados na campanha de personalização.
Escopos de decisão são as strings JSON codificadas em Base64 que contêm as IDs de atividade e posicionamento que você deseja Offer Decisioning Service para usar ao propor ofertas.
JSON do escopo de decisão
{
"activityId":"xcore:offer-activity:11cfb1fa93381aca",
"placementId":"xcore:offer-placement:1175009612b0100c"
}
String codificada em Base64 para o escopo de decisão
"eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ=="
Depois de criar as ofertas e coleções, é necessário definir um escopo de decisão.
Copie o escopo de decisão codificado em Base64. Você o usará no query
objeto da solicitação de API do servidor.
"query":{
"personalization":{
"decisionScopes":[
"eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0ZWZjYTg5NDE4OTUxODEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJkNTQ0YWU1NGU3ZTdkYiJ9"
]
}
}
Formato da API
POST /ee/v2/interact
Uma solicitação completa que inclui um objeto XDM completo, um objeto de dados e uma consulta de Offer decisioning é descrita abaixo.
O xdm
e data
objetos são opcionais e só são necessários para o Offer Decisioning se você tiver criado segmentos com condições que usam campos em um desses objetos.
curl -X POST 'https://server.adobedc.net/ee/v2/interact?dataStreamId={DATASTREAM_ID}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org: {ORG_ID}' \
--header 'Authorization: Bearer {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"event": {
"xdm": {
"eventType": "web.webpagedetails.pageViews",
"identityMap": {
"ECID": [
{
"id": "05907638112924484241029082405297151763",
"authenticatedState": "ambiguous",
"primary": true
}
]
},
"web": {
"webPageDetails": {
"URL": "https://alloystore.dev",
"name": "Home Page"
},
"webReferrer": {
"URL": ""
}
},
"device": {
"screenHeight": 1440,
"screenWidth": 3440,
"screenOrientation": "landscape"
},
"environment": {
"type": "browser",
"browserDetails": {
"viewportWidth": 3440,
"viewportHeight": 1440
}
},
"placeContext": {
"localTime": "2022-03-22T22:45:21.193-06:00",
"localTimezoneOffset": 360
},
"timestamp": "2022-03-23T04:45:21.193Z",
"implementationDetails": {
"name": "https://ns.adobe.com/experience/alloy/reactor",
"version": "1.0",
"environment": "serverapi"
}
},
"data": {
"page": {
"pageInfo": {
"pageName": "Promotions",
"siteSection": "Home"
},
"promos": {
"heroPromos": "purse,shoes,sunglasses"
},
"customVariables": {
"testGroup": "orange/black theme"
},
"events": {
"homePage": true
},
"products": [
{
"productSKU": "abc123",
"productName": "shirt"
}
]
},
"__adobe.target": {
"profile.eyeColor": "brown",
"profile.hairColor": "brown"
}
}
},
"query": {
"personalization": {
"decisionScopes": [
"eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0ZWZjYTg5NDE4OTUxODEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJkNTQ0YWU1NGU3ZTdkYiJ9"
]
}
}
}'
A Edge Network retornará uma resposta semelhante à abaixo.
{
"requestId":"b375077d-7e1d-4c18-b7d3-e4da0fb4fbc5",
"handle":[
{
"payload":[
],
"type":"personalization:decisions",
"eventIndex":0
},
{
"payload":[
{
"id":"120d5db7-181c-42c5-8653-88b3cd3e1e69",
"scope":"eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0ZWZjYTg5NDE4OTUxODEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJkNTQ0YWU1NGU3ZTdkYiJ9",
"activity":{
"id":"xcore:offer-activity:14efca8941895181",
"etag":"1"
},
"placement":{
"id":"xcore:offer-placement:12d544ae54e7e7db",
"etag":"1"
},
"items":[
{
"id":"xcore:personalized-offer:14efc848a3577d92",
"etag":"2",
"schema":"https://ns.adobe.com/experience/offer-management/content-component-json",
"data":{
"id":"xcore:personalized-offer:14efc848a3577d92",
"format":"application/json",
"language":[
"en-us"
],
"content":"{\n\t\"ODEFirstTest\" : \"Personalizaton Content\"\n}",
"characteristics":{
"reporting":"testRequest"
}
}
}
]
}
],
"type":"personalization:decisions",
"eventIndex":0
},
{
"payload":[
{
"key":"kndctr_53A16ACB5CC1D3760A495C99_AdobeOrg_identity",
"value":"CiYwNTkwNzYzODExMjkyNDQ4NDI0MTAyOTA4MjQwNTI5NzE1MTc2M1IOCLr6xb39LxgBKgNPUjLwAbr6xb39Lw==",
"maxAge":34128000
}
],
"type":"state:store"
}
]
}
Se o visitante se qualificar para uma atividade de personalização com base nos dados enviados para o Offer Decisioning, o conteúdo relevante da atividade será encontrado no handle
objeto , onde o tipo é personalization:decisions
.
Outro conteúdo será retornado no handle
também. Outros tipos de conteúdo não são relevantes para Offer Decisioning personalização. Se o visitante se qualificar para várias atividades, elas serão contidas em uma matriz.
A tabela abaixo explica os elementos-chave dessa parte da resposta.
Propriedade | Descrição | Exemplo |
---|---|---|
scope |
O escopo de decisão associado às ofertas propostas que foram retornadas. | "scope": "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTFjZmIxZmE5MzM4MWFjYSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExNzUwMDk2MTJiMDEwMGMifQ==" |
activity.id |
A ID exclusiva da atividade de oferta. | "id": "xcore:offer-activity:11cfb1fa93381aca" |
placement.id |
A ID exclusiva da disposição da oferta. | "id": "xcore:offer-placement:1175009612b0100c" |
items.id |
A ID exclusiva da oferta proposta. | "id": "xcore:personalized-offer:124cc332095cfa74" |
schema |
O schema do conteúdo associado à oferta proposta. | "schema": "https://ns.adobe.com/experience/offer-management/content-component-html" |
data.id |
A ID exclusiva da oferta proposta. | "id": "xcore:personalized-offer:124cc332095cfa74" |
format |
O formato do conteúdo associado à oferta proposta. | "format": "text/html" |
language |
Uma matriz de idiomas associados ao conteúdo da oferta proposta. | "language": [ "en-US" ] |
content |
Conteúdo associado à oferta proposta no formato de uma string. | "content": "<p style="color:red;">20% Off on shipping</p>" |
deliveryUrl |
Conteúdo da imagem associada à oferta proposta no formato de um URL. | "deliveryURL": "https://image.jpeg" |
characteristics |
Objeto JSON contendo as características associadas à oferta proposta. | "characteristics": { "foo": "bar", "foo1": "bar1" } |