Återge DOM-åtgärdsförslag automatiskt

Använd det här mönstret när ditt personaliseringssvar innehåller förslagsobjekt med schemat:

https://ns.adobe.com/personalization/dom-action

Dessa objekt innehåller vanligtvis en väljare och en åtgärdstyp (till exempel setHtml) som Web SDK kan använda automatiskt när renderDecisions aktiveras.

​1. Hantera flimmer (valfritt)

Om du behöver förhindra flimmer när personaliserat innehåll används ska du använda den rekommenderade metoden för flimmerhantering för implementeringen. Se Hantera flimmer för tillgängliga alternativ.

​2. Begär och återge de beslut som gäller automatisk återgivning

Ange renderDecisions som true när du anropar kommandot sendEvent. Egenskapen renderDecisions är som standard false om den utelämnas.

alloy("sendEvent", {
  renderDecisions: true,
  xdm: {
    web: {
      webPageDetails: {
        name: "home"
      }
    }
  }
});

Om du behöver begära specifika placeringar kan du inkludera personalization.decisionScopes:

alloy("sendEvent", {
  renderDecisions: true,
  personalization: {
    decisionScopes: ["hero-banner", "recommendations"]
  },
  xdm: { }
});

Mer information finns i objektet personalization i kommandot sendEvent.

​3. Visa händelser

Om du ställer in renderDecisionstrue och antingen ställer in personalization.sendDisplayEventtrue eller utelämnar det, skickar Web SDK visningshändelser omedelbart efter att personaliseringen har renderats.

alloy("sendEvent", {
  renderDecisions: true,
  personalization: {
    // sendDisplayEvent defaults to true when omitted
  },
  xdm: { }
});

Se Hantera visningshändelser för alternativa alternativ som uppfyller implementeringens behov, t.ex. när du använder händelser på övre och nedre sidan.

​4. SPA-vy ändras och återgivning sker

För enkelsidiga program ska du inkludera en viewName om händelser som ändras i visningen.

alloy("sendEvent", {
  renderDecisions: true,
  xdm: {
    web: {
      webPageDetails: {
        viewName: "cart"
      }
    }
  }
});

Om SPA återger användargränssnittet för samma vy utan att hämta något nytt beslut kan du återanvända tidigare returnerade förslag:

let lastPropositions = [];

alloy("sendEvent", {
  renderDecisions: true,
  xdm: {
    web: { webPageDetails: { viewName: "cart" } }
  }
}).then(({ propositions = [] }) => {
  lastPropositions = propositions;
});

// Later, after a UI re-render:
alloy("applyPropositions", {
  propositions: lastPropositions
});

Mer information finns i applyPropositions.

NOTE
Kommandot applyPropositions skickar inte automatiskt visningshändelser. Om du behöver spela in "display" för återgivningsscenarier kan du läsa Hantera visningshändelser.
recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1