[Alpha]{class="badge informative"}

personalization (SDK de servidor)

Esta página describe personalization en el método Server SDK sendEvent. Para Web SDK, consulte personalization.

El objeto personalization de sendEvent solicita decisiones de personalización, también denominadas propuestas, de Adobe Target, Adobe Journey Optimizer y Offer Decisioning. Server SDK devuelve las propuestas que aparecen en el resultado de sendEvent, para que el servidor pueda utilizarlas o pasarlas al explorador.

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"]
  }
});

Esta opción solo está disponible cuando la instancia incluye el componente Personalization, que createInstance incluye de forma predeterminada.

personalization.decisionScopes

La propiedad decisionScopes es una matriz de cadenas. Cada elemento identifica una ubicación, contexto o ubicación donde desea personalizar el contenido. En Adobe Target, cada ámbito de decisión se asigna a un mbox. En Adobe Journey Optimizer y Offer Decisioning, cada ámbito de decisión se asigna a una ubicación basada en decisiones.

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

personalization.surfaces

La propiedad surfaces es una matriz de cadenas URI de superficie. Cada superficie identifica un canal, página o componente para el cual desea experiencias basadas en código de Adobe Journey Optimizer, como web://example.com/home o web://example.com/home#hero.

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

En un explorador, Web SDK solicita automáticamente la superficie de la página actual. Un servidor no tiene página actual, por lo que Server SDK solicita sólo las superficies que se enumeran. Del mismo modo, SDK no solicita automáticamente el ámbito de decisión de toda la página que solicita Web SDK cuando procesa una página.

decisionScopes de nivel superior top-level-decision-scopes

También puede pasar ámbitos de decisión en una matriz decisionScopes en el nivel superior de las opciones sendEvent, fuera del objeto personalization. SDK combina ambas matrices y elimina los duplicados.

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

Propuestas en el resultado result

Cuando solicita la personalización, el resultado de sendEvent contiene una matriz propositions. Cada propuesta contiene id, scope, scopeDetails y una matriz de items. Cada elemento tiene un schema que describe su contenido, como acciones de HTML, JSON o DOM.

SDK no procesa propuestas y no registra que se hayan mostrado. Utilícelos de una de las siguientes maneras:

  • Procesarlos en el explorador. Incluya las propuestas en la página que devuelve el servidor y, a continuación, páselas al comando applyPropositions de Web SDK para procesarlas. A continuación, registre qué propuestas se mostraron con un evento de visualización. Consulte Personalización híbrida.
  • Procesarlos en el servidor. Utilice el contenido de cada elemento para generar su respuesta. A continuación, registre qué propuestas mostró enviando un evento de visualización:
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 }
      }
    }
  }
});

Opciones que no afectan a un servidor no-effect

SDK acepta las siguientes propiedades para que pueda compartir código con una implementación de explorador, pero las ignora:

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

La opción renderDecisions de sendEvent tampoco tiene ningún efecto, ya que SDK nunca procesa el contenido.

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