[Alpha]{class="badge informative"}

personalization (Server-SDK)

Auf dieser Seite werden personalization in der sendEvent-Methode von Server SDK beschrieben. Informationen zu Web SDK finden Sie unter personalization.

Das personalization Objekt von sendEvent fordert Personalisierungsentscheidungen, auch Vorschläge genannt, von Adobe Target, Adobe Journey Optimizer und Offer Decisioning an. Die Server-SDK gibt die Vorschläge im Ergebnis der sendEvent zurück, damit Ihr Server sie verwenden oder an den Browser übergeben kann.

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

Diese Option ist nur verfügbar, wenn die Instanz die Personalization-Komponente enthält, die createInstance standardmäßig enthält.

personalization.decisionScopes

Die decisionScopes-Eigenschaft ist ein Array von Zeichenfolgen. Jedes Element identifiziert einen Speicherort, einen Kontext oder eine Platzierung, an dem bzw. der Sie personalisierte Inhalte benötigen. In Adobe Target wird jeder Entscheidungsumfang einer Mbox zugeordnet. In Adobe Journey Optimizer und Offer Decisioning ist jeder Entscheidungsumfang einer entscheidungsbasierten Platzierung zugeordnet.

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

personalization.surfaces

Die surfaces-Eigenschaft ist ein Array von Zeichenfolgen Oberflächen-). Jede Oberfläche identifiziert einen Kanal, eine Seite oder eine Komponente, für die Sie Adobe Journey Optimizer-Code-basierte Erlebnisse benötigen, z. B. web://example.com/home oder web://example.com/home#hero.

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

In einem Browser fordert Web SDK automatisch die Oberfläche für die aktuelle Seite an. Ein Server hat keine aktuelle Seite, sodass der SDK-Server nur die aufgelisteten Oberflächen anfordert. Ebenso fordert die SDK nicht automatisch den seitenweiten Entscheidungsumfang an, den die Web-SDK anfordert, wenn sie eine Seite rendert.

decisionScopes der obersten Ebene top-level-decision-scopes

Sie können Entscheidungsumfänge auch in einem decisionScopes-Array auf der obersten Ebene der sendEvent Optionen außerhalb des personalization übergeben. SDK kombiniert beide Arrays und entfernt Duplikate.

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

Vorschläge im Ergebnis result

Wenn Sie eine Personalisierung anfordern, enthält das Ergebnis der sendEvent ein propositions Array. Jeder Vorschlag enthält einen id, einen scope, einen scopeDetails und ein Array von items. Jedes Element verfügt über eine schema, die seinen Inhalt beschreibt, z. B. HTML-, JSON- oder DOM-Aktionen.

Die SDK rendert keine Vorschläge und zeichnet nicht auf, dass sie angezeigt wurden. Verwenden Sie sie auf eine der folgenden Arten:

  • Rendern Sie sie im Browser. Schließen Sie die Vorschläge in die vom Server zurückgegebene Seite ein und übergeben Sie sie dann an den applyPropositions-Befehl von Web SDK, um sie zu rendern. Zeichnen Sie dann mit einem Anzeigeereignis auf, welche Vorschläge angezeigt wurden. Siehe Hybride Personalisierung.
  • Rendern Sie sie auf dem Server. Verwenden Sie den Inhalt der einzelnen Elemente, um Ihre Antwort zu erstellen. Zeichnen Sie dann auf, welche Vorschläge Sie angezeigt haben, indem Sie ein Anzeigeereignis senden:
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 }
      }
    }
  }
});

Optionen, die sich nicht auf einen Server auswirken no-effect

SDK akzeptiert die folgenden Eigenschaften, damit Sie Code für eine Browser-Implementierung freigeben können, ignoriert sie jedoch:

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

Die renderDecisions Option von sendEvent hat ebenfalls keine Auswirkungen, da die SDK nie Inhalte rendert.

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