[Alpha]{class="badge informative"}

personalization (SDK do Servidor)

Esta página descreve personalization no método sendEvent do SDK do Servidor. Para o Web SDK, consulte personalization.

O objeto personalization de sendEvent solicita decisões de personalização, também chamadas de propostas, da Adobe Target, Adobe Journey Optimizer e Offer Decisioning. O SDK do Servidor retorna as propostas no resultado de sendEvent, para que o servidor possa usá-las ou passá-las para o navegador.

const { propositions = [] } = await visitor.sendEvent({
  xdm: {
    eventType: "decisioning.propositionFetch",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  },
  personalization: {
    decisionScopes: ["hero-banner"],
    surfaces: ["web://example.com/home"]
  }
});

Essa opção está disponível somente quando a instância inclui o componente Personalization, que createInstance inclui por padrão.

personalization.decisionScopes

A propriedade decisionScopes é uma matriz de cadeias de caracteres. Cada item identifica um local, contexto ou posicionamento no qual você deseja conteúdo personalizado. No Adobe Target, cada escopo de decisão é mapeado para uma mbox. No Adobe Journey Optimizer e no Offer Decisioning, cada escopo de decisão é mapeado para uma disposição baseada em decisão.

personalization: {
  decisionScopes: ["hero-banner", "cart-offer"]
}

personalization.surfaces

A propriedade surfaces é uma matriz de cadeias de caracteres de URI de superfície. Cada superfície identifica um canal, página ou componente para o qual você deseja experiências baseadas em código Adobe Journey Optimizer, como web://example.com/home ou web://example.com/home#hero.

personalization: {
  surfaces: ["web://example.com/home", "web://example.com/home#hero"]
}

Em um navegador, o Web SDK solicita automaticamente a superfície da página atual. Um servidor não tem página atual, portanto, o SDK do servidor solicita somente as superfícies que você lista. Da mesma forma, a SDK não solicita automaticamente o escopo de decisão em toda a página que o Web SDK solicita ao renderizar uma página.

Nível superior decisionScopes top-level-decision-scopes

Você também pode passar escopos de decisão em uma matriz decisionScopes no nível superior das opções sendEvent, fora do objeto personalization. O SDK combina arrays e remove duplicatas.

await visitor.sendEvent({
  xdm: {
    eventType: "decisioning.propositionFetch",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  },
  decisionScopes: ["hero-banner"]
});

Propostas no resultado result

Quando você solicita a personalização, o resultado de sendEvent contém uma matriz propositions. Cada proposta contém um id, um scope, scopeDetails, e uma matriz de items. Cada item tem um schema que descreve seu conteúdo, como ações HTML, JSON ou DOM.

O SDK não renderiza apresentações e não registra que elas foram exibidas. Use-os de uma das seguintes maneiras:

  • Renderizá-los no navegador. Inclua as apresentações na página retornada pelo servidor e passe-as para o comando applyPropositions do Web SDK para renderizá-las. Em seguida, registre quais apresentações foram exibidas com um evento de exibição. Consulte Personalização híbrida.
  • Renderizá-los no servidor. Use o conteúdo de cada item para criar sua resposta. Em seguida, registre quais apresentações você exibiu enviando um evento de exibição:
await visitor.sendEvent({
  xdm: {
    eventType: "decisioning.propositionDisplay",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    },
    _experience: {
      decisioning: {
        propositions: renderedPropositions.map(({ id, scope, scopeDetails }) => ({
          id,
          scope,
          scopeDetails
        })),
        propositionEventType: { display: 1 }
      }
    }
  }
});

Opções que não afetam um servidor no-effect

O SDK aceita as seguintes propriedades para que você possa compartilhar código com uma implementação de navegador, mas as ignora:

  • personalization.sendDisplayEvent
  • personalization.includeRenderedPropositions
  • personalization.defaultPersonalizationEnabled
  • personalization.decisionContext

A opção renderDecisions de sendEvent também não tem efeito, pois o SDK nunca renderiza conteúdo.

recommendation-more-help
experience-platform-help-collection