Hantera webbhändelser i SDK
Visningshändelser talar om för personaliserings- eller analystjänster att ett visst stycke personaliserat innehåll visades för användaren. Att skicka visningshändelser förbättrar rapporteringsnoggrannheten genom att hjälpa system längre fram i kedjan att skilja mellan innehåll som var begärt och innehåll som faktiskt visades.
Skicka visningshändelser automatiskt
Automatiska visningshändelser är vanligtvis det enklaste alternativet. De skickas omedelbart när Web SDK har återgett kvalificerat innehåll från svaret sendEvent, vilket kan förbättra rapportens precision.
Om du vill skicka visningshändelser automatiskt använder du ett sendEvent-anrop som ställer in renderDecisions på true och ställer in personalization.sendDisplayEvent på true (eller utelämnar det, eftersom true är standard):
alloy("sendEvent", {
renderDecisions: true,
personalization: { }, // sendDisplayEvent defaults to true
xdm: {
web: {
webPageDetails: {
name: "home"
}
}
}
});
applyPropositions) måste du skicka visningshändelser explicit med sendEvent.Skicka visningshändelser i efterföljande sendEvent samtal
Att inkludera visningshändelser i ett senare sendEvent-anrop är användbart när du vill bifoga ytterligare sidinläsningsdata som inte är tillgängliga när du begär personalisering. Det används ofta vid implementering av händelser för översta och nedersta sidan. Korrekt implementering av visningshändelser på det här sättet hjälper till att undvika problem med studsfrekvensen i Adobe Analytics.
-
På det första
sendEvent-anropet (ofta överst på sidan) begär och återger du innehåll, men inaktiverar automatiska visningshändelser genom att ställa inrenderDecisionspåtrueochpersonalization.sendDisplayEventpåfalse:code language-js alloy("sendEvent", { renderDecisions: true, personalization: { sendDisplayEvent: false }, xdm: { web: { webPageDetails: { name: "home" } } } }); -
Senare (ofta längst ned på sidan) anropar du
sendEventmed en XDM-nyttolast som innehåller visningshändelser för utkast som har renderats sedan föregående begäran genom att angepersonalization.includeRenderedPropositionstilltrue:code language-js alloy("sendEvent", { personalization: { includeRenderedPropositions: true }, xdm: { // Add any additional page load telemetry you want to send here web: { webPageDetails: { name: "home" } } } });
includeRenderedPropositions används.Skicka visningshändelser för manuellt återgivna förslag
Om du återger innehåll själv (antingen helt manuellt eller med applyPropositions) måste du skicka visningshändelser explicit med kommandot sendEvent. Anropa sendEvent med en XDM-nyttolast som innehåller följande egenskaper:
_experience.decisioning.propositionssom innehåller de återgivna propositionernaid,scopeochscopeDetails_experience.decisioning.propositionEventType.displayinställd på1
I följande två exempel används den här hjälpfunktionen för att skapa XDM-nyttolasten för visningshändelser:
function buildDisplayEventXdm(renderedPropositions) {
return {
eventType: "decisioning.propositionDisplay",
_experience: {
decisioning: {
propositions: renderedPropositions.map(({ id, scope, scopeDetails }) => ({
id,
scope,
scopeDetails
})),
propositionEventType: { display: 1 }
}
}
};
}
I följande exempel används manuell återgivning med visningshändelser:
function renderExample(propositions) {
// Your custom logic here. Return ONLY the propositions that were actually rendered.
// For example: return [propositions[0]];
return [];
}
alloy("sendEvent", {
personalization: { decisionScopes: ["discount"] },
xdm: { }
}).then(({ propositions = [] }) => {
const renderedPropositions = renderExample(propositions);
if (!renderedPropositions.length) { return; }
return alloy("sendEvent", { xdm: buildDisplayEventXdm(renderedPropositions) });
});
I följande exempel används kommandot applyPropositions med visningshändelser. Den kedjar sendEvent, applyPropositions och sedan ytterligare sendEvent tillsammans:
alloy("sendEvent", {
personalization: { decisionScopes: ["discount", "salutation"] },
xdm: { }
}).then(({ propositions = [] }) => {
return alloy("applyPropositions", {
propositions,
metadata: {
salutation: { selector: "#salutation", actionType: "setHtml" },
discount: { selector: "#daily-special", actionType: "replaceHtml" }
}
});
}).then(({ propositions: renderedPropositions = [] }) => {
if (!renderedPropositions.length) { return; }
return alloy("sendEvent", { xdm: buildDisplayEventXdm(renderedPropositions) });
});
Vanliga misstag att undvika
- Skicka visningshändelser innan återgivningen avslutas: Skicka visningshändelser när den automatiska återgivningen har slutförts, när
applyPropositionshar matchats eller när den manuella återgivningslogiken har slutförts. - Skicka visningshändelser för förslag som du inte återgav: Inkludera endast förslag som faktiskt visades för användaren.
- Släpper
scopeDetails: InkluderascopeDetailsfrån förslagsobjektet när visningshändelser skickas.