Personalização via Offer Decisioning

Visão geral

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.

Configurar o fluxo de dados

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.

Imagem da interface do usuário que mostra a tela de configuração do serviço de armazenamento de dados, com Offer decisioning selecionado

Criação do público

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.

Definição dos escopos de decisão

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.

Imagem da interface do usuário que mostra a interface do usuário do Offer Decisioning, destacando o escopo da decisão.

"query":{
   "personalization":{
      "decisionScopes":[
         "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjE0ZWZjYTg5NDE4OTUxODEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJkNTQ0YWU1NGU3ZTdkYiJ9"
      ]
   }
}

Exemplo de chamada de API

Formato da API

POST /ee/v2/interact

Solicitação

Uma solicitação completa que inclui um objeto XDM completo, um objeto de dados e uma consulta de Offer decisioning é descrita abaixo.

OBSERVAÇÃO

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"
            ]
        }
    }
}'

Resposta

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" }

Nesta página