solicitação de API

Formato da API

POST /{ENDPOINT_PATH}/decisions
ParâmetroDescriçãoExemplo
{ENDPOINT_PATH}O caminho do endpoint para APIs do repositório.https://platform.adobe.io/data/core/ods

Solicitação

curl -X POST 'https://platform.adobe.io/data/core/ods/decisions' \
-H 'Accept: application/vnd.adobe.xdm+json; schema="https://ns.adobe.com/experience/offer-management/decision-response;version=1.0"' \
-H 'Content-Type: application/vnd.adobe.xdm+json; schema="https://ns.adobe.com/experience/offer-management/decision-request;version=1.0"' \
-H 'Authorization: Bearer {ACCESS_TOKEN}....' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {IMS_ORG}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-sandbox-id: {SANDBOX_ID}' \
-H 'x-request-id: e9ac8d7e-3e77-4b38-8726-555ef1737b32-example' \
-d '{
    "xdm:propositionRequests": [
        {
            "xdm:activityId": "dps:offer-activity:15ded04b1786ea27",
            "xdm:placementId": "dps:offer-placement:15d9bc01d35e1238"
        }
    ],
    "xdm:profiles": [
        {
            "xdm:identityMap": {
                "Email": [
                    {
                        "xdm:id": "example@adobe.com",
                        "primary": true
                    }
                ]
            }
        }
    ],
    "xdm:allowDuplicatePropositions": {
        "xdm:acrossActivities": true,
        "xdm:acrossPlacements": true
    },
    "xdm:responseFormat": {
        "xdm:includeContent": true,
        "xdm:includeMetadata": {
            "xdm:activity": [
                "name"
            ],
            "xdm:option": [
                "name"
            ],
            "xdm:placement": [
                "name"
            ]
        }
    }
}'
PropriedadeDescriçãoExemplo
xdm:propositionRequestsEsse objeto contém os identificadores de posicionamento e decisão.
xdm:propositionRequests.xdm:placementIdO identificador de posicionamento exclusivo."xdm:placementId": "dps:offer-placement:ffed0456"
xdm:propositionRequests.xdm:activityIdO identificador de decisão exclusivo."xdm:activityId": "dps:offer-activity:ffed0123"
xdm:itemCountO número de ofertas a serem retornadas. O número máximo é 30."xdm:itemCount": 2
xdm:profilesEsse objeto mantém informações sobre o perfil para o qual a decisão é solicitada. Para uma solicitação de API, ela conterá um perfil.
xdm:profiles.xdm:identityMapEsse objeto mantém um conjunto de identidades de usuário final com base no código de integração de namespace da identidade. O mapa de identidade pode conter mais de uma identidade de cada namespace. Para obter mais informações sobre namespaces, consulte esta página.Email: [{"xdm:id": "123@abc.com"}]
xdm:profiles.xdm:decisionRequestIdA ID gerada pelo cliente que pode ser usada para identificar exclusivamente uma solicitação de decisão de perfil. Essa ID é retomada na resposta do e não influencia o resultado da decisão."xdm:decisionRequestId": "0AA00002-0000-1224-c0de-cjf98Csj43"
xdm:allowDuplicatePropositionsEsse objeto controla a estrutura das regras de desduplicação. Consiste em uma série de sinalizadores que indicam se a mesma opção pode ser proposta através de uma determinada dimensão. Um sinalizador definido como verdadeiro significa que duplicatas são permitidas e não devem ser removidas na categoria indicada pelo sinalizador. Um sinalizador definido como falso significa que o mecanismo de decisão não deve fazer a mesma proposta na dimensão e, em vez disso, escolher a próxima melhor opção para uma das subdecisões.
xdm:allowDuplicatePropositions.xdm:acrossActivitiesSe definido como verdadeiro, várias decisões podem receber a mesma opção."xdm:acrossActivities": true
xdm:allowDuplicatePropositions.xdm:acrossPlacementsSe definido como verdadeiro, vários posicionamentos podem receber a mesma opção."xdm:acrossPlacements": true
xdm:mergePolicy.xdm:idIdentifica a política de mesclagem pela qual controlar os dados retornados pelo serviço de acesso ao perfil. Se um não for especificado na solicitação, o Gerenciamento de decisões não transmitirá nenhum serviço de acesso de perfil, caso contrário, transmitirá a ID fornecida pelo chamador."xdm:id": "5f3ed32f-eaf1-456c-b0f0-7b338c4cb18a"
xdm:responseFormatUm conjunto de sinalizadores que formata o conteúdo da resposta.
xdm:responseFormat.xdm:includeContentUm valor booleano que, se definido como true, inclui conteúdo na resposta."xdm:includeContent": true
xdm:responseFormat.xdm:includeMetadataUm objeto usado para especificar quais metadados adicionais são retornados. Se esta propriedade não for incluída, xdm:id e repo:etag serão retornados por padrão.name
xdm:responseFormat.xdm:activityEste sinalizador identifica as informações de metadados específicas retornadas para xdm:activity.name
xdm:responseFormat.xdm:optionEste sinalizador identifica as informações de metadados específicas retornadas para xdm:option.name, characteristics
xdm:responseFormat.xdm:placementEste sinalizador identifica as informações de metadados específicas retornadas para xdm:placement.name, channel, componentType

Resposta

Uma resposta bem-sucedida retorna informações sobre sua proposta, incluindo a xdm:propositionId exclusiva.

{
  "xdm:propositionId": "5d0ffb5e-dfc6-4280-99b6-0bf3131cb8b8",
  "xdm:propositions": [
    {
      "xdm:activity": {
        "xdm:id": "dps:activity:ffed0123",
        "repo:etag": 4
      },
      "xdm:placement": {
        "xdm:id": "dps:placement:ffed0456",
        "repo:etag": 1
      },
      "xdm:options": [
        {
          "xdm:id": "dps:personalized-option:ccc0111",
          "repo:etag": 3,
          "@type": "https://ns.adobe.com/experience/decisioning/content-component-html-template",
          "xdm:content": "<html>some html</html>"
        },
        {
          "xdm:id": "dps:personalized-option:ccc0222",
          "repo:etag": 5,
          "@type": "https://ns.adobe.com/experience/decisioning/content-component-html-template",
          "xdm:content": "<html>hello, world</html>",
          "xdm:score": 45.65
        }
      ]
    },
    {
      "xdm:activity": {
        "xdm:id": "dps:activity:ffed0123",
        "repo:etag": 4
      },
      "xdm:placement": {
        "xdm:id": "dps:placement:ffed0789",
        "repo:etag": 2
      },
      "xdm:fallback": {
        "xdm:id": "dps:fallback:ccc0222",
        "repo:etag": 5,
        "@type": "https://ns.adobe.com/experience/decisioning/content-component-imagelink",
        "dc:format": "image/png",
        "xdm:deliveryURL": "https://cdn.adobe.com/content/1445323-1134331.png",
        "xdm:content": "https://www.adobe.com/index2.html"
      }
    }
  ],
  "ode:createDate": 1566497582038
}
PropriedadeDescriçãoExemplo
xdm:propositionIdO identificador exclusivo da entidade de proposta associada a um XDM DecisionEvent."xdm:propositionId": "5d0ffb5e-dfc6-4280-99b6-0bf3131cb8b8"
xdm:propositionsEsse objeto contém uma única apresentação de decisão. Várias opções podem ser retornadas para a decisão. Se nenhuma opção for encontrada, a oferta de fallback da decisão será retornada. Proposições de decisão única sempre incluem uma propriedade options ou uma propriedade fallback. Quando presente, a propriedade options não pode estar vazia.
xdm:propositions.xdm:activityEste objeto contém o identificador exclusivo de uma decisão."xdm:id": "dps:activity:ffed0123"
xdm:propositions.xdm:placementEste objeto contém o identificador exclusivo para uma disposição de oferta."xdm:id": "dps:placement:ffed0456"
xdm:propositions.xdm:optionsEste objeto contém uma única opção, incluindo seu identificador exclusivo. Se presente, esse objeto não pode estar vazio.xdm:id": "dps:personalized-option:ccc0111
xdm:propositions.xdm:options.@typeDefine o tipo do componente. @type atua como o contrato de processamento do cliente. Quando a experiência for montada, o compositor procurará os componentes que tenham um tipo específico.https://ns.adobe.com/experience/offer-management/content-component-imagelink
xdm:propositions.xdm:contentO formato do conteúdo da resposta.O conteúdo da resposta pode ser: text, html block ou image link
xdm:scoreA pontuação de uma opção que é calculada como resultado de uma função de classificação associada à opção ou à decisão. Esse campo será retornado pela API se uma função de classificação estiver envolvida na determinação da pontuação de uma oferta durante a classificação."xdm:score": 45.65
xdm:propositions.xdm:fallbackEsse objeto contém uma única oferta substituta, incluindo seu identificador exclusivo."xdm:id": "dps:fallback:ccc0222"
xdm:propositions.xdm:fallback.dc:formatA manifestação física ou digital do recurso. Normalmente, o formato deve incluir o tipo de mídia do recurso. O formato pode ser usado para determinar o software, hardware ou outro equipamento necessário para exibir ou operar o recurso. É recomendável selecionar um valor de um vocabulário controlado, por exemplo, a lista de Tipos de mídia da Internet definindo formatos de mídia de computador."dc:format": "image/png" ou "image/jpeg"
xdm:propositions.xdm:fallback.xdm:deliveryURLUm URL opcional para ler o ativo de uma rede de entrega de conteúdo ou ponto de extremidade de serviço. Esse URL é usado para acessar o ativo publicamente de um agente do usuário.https://d37yhxrr0p3l3l.cloudfront.net/0fd0f090-a148-11ea-89e3-f1f2ad52f7e8/urn:aaid:sc:US:a68c86a6-9295-4940-a083-11916b665500/0/40d78a12-f8b6-3f07-8e67-7cb8ae2cc7ec
ode:createDateA hora em que a mensagem de resposta de decisão foi criada. Isso é representado como época."ode:createDate": 1566497582038

Códigos de resposta

A tabela abaixo lista todos os códigos que podem ser retornados na resposta:

CódigoDescrição
200Sucesso. A decisão foi tomada para determinadas atividades
400Parâmetro de solicitação inválido. A solicitação não pode ser entendida pelo servidor devido à sintaxe malformada.
403Proibido, permissões insuficientes.
422Entidade não processável. A sintaxe da solicitação está correta, no entanto, devido a erros semânticos, ela não pode ser processada.
429Muitas solicitações. O usuário enviou muitas solicitações em um determinado período.
500Erro interno do servidor. O servidor encontrou uma condição inesperada que o impediu de atender à solicitação.
503Serviço indisponível devido à sobrecarga do servidor. No momento, o servidor não pode lidar com a solicitação devido a uma sobrecarga temporária.

Próximas etapas

Ao seguir este guia de API, você criou e entregou ofertas usando a API Decisions. Para obter mais informações, consulte a visão geral sobre a Gestão de Decisões.