In questa pagina viene descritto il metodo sendEvent di Server SDK. Per il Web SDK, vedere sendEvent.
Il metodo sendEvent è il metodo principale per inviare dati ad Adobe dal server. Il risultato è anche il modo in cui recuperi il contenuto personalizzato. Utilizzare l’oggetto xdm per inviare i dati mappati allo schema Adobe Experience Platform e l’oggetto data per inviare altri dati.
Chiama sendEvent sull’handle forRequest per il visitatore corrente dopo la risoluzione di configure:
const visitor = alloy.forRequest({ request: req });
const result = await visitor.sendEvent({
type: "commerce.purchases",
xdm: {
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
},
commerce: {
purchases: { value: 1 },
order: {
purchaseID: "a8g784hjq1mnp3",
currencyCode: "USD",
priceTotal: 999.98
}
}
},
data: {
loyaltyTier: "gold"
},
personalization: {
decisionScopes: ["order-confirmation-offer"]
},
edgeConfigOverrides: {
com_adobe_analytics: {
reportSuites: ["examplersid1"]
}
}
});
SDK invia ogni evento all’API Edge Network Server autenticata all’indirizzo server.adobedc.net. Vedi Autenticazione.
Requisiti requirements
- Identità primaria: ogni evento deve includere un’identità primaria in
xdm.identityMap. In caso contrario, l’Edge Network rifiuta l’evento. Vederexdm. - Dimensione: la richiesta inviata dal SDK può essere fino a 64 KB. Consulta Guardrail nella documentazione delle API di Edge Network.
- Consenso: se il visitatore ha rinunciato o
defaultConsentè"out"e non ha acconsentito,sendEventrisolve con un oggetto vuoto senza inviare nulla.
Opzioni options
personalization.decisionScopes.Se si passa un’opzione non riconosciuta da SDK, sendEvent rifiuta con un errore Unknown field.
Opzioni che non hanno alcun effetto su un server no-effect
Il Server SDK accetta le seguenti opzioni del Web SDK in modo che sia possibile condividere il codice per la creazione di eventi con un’implementazione del browser. Tuttavia, dipendono da un browser e non hanno alcun effetto sul server:
renderDecisions: SDK non esegue mai il rendering del contenuto. Al suo posto, restituisce proposte nel risultato.personalization.sendDisplayEvent,personalization.includeRenderedPropositions,personalization.defaultPersonalizationEnabledepersonalization.decisionContext.advertising.
Non impostare documentUnloading su un server. Non si applica all’esterno di un browser. Per i visitatori che hanno già un’identità, SDK invia l’evento come richiesta non autenticata a edgeDomain invece che all’API server autenticata. L’endpoint non restituisce una risposta, pertanto sendEvent non restituisce proposte.
Le opzioni datasetId e mergeId obsolete sono ancora accettate. Anziché datasetId, utilizzare com_adobe_experience_platform.datasets.event.datasetId in edgeConfigOverrides.
Oggetto risultato result
Il metodo sendEvent restituisce una promessa. Vedi Gestisci risultati. Quando la promessa viene risolta, l’oggetto risultato può contenere la seguente proprietà:
propositions: Array di proposte di personalizzazione restituite da Edge Network per gli ambiti e le superfici richiesti conpersonalization. Questa proprietà è presente solo quando si richiede la personalizzazione. SDK non esegue il rendering delle proposte né le contrassegna come sottoposte a rendering.
Se non richiedi la personalizzazione o se l’evento non viene inviato a causa del consenso o di onBeforeEventSend, il risultato è un oggetto vuoto.
const { propositions = [] } = await visitor.sendEvent({
xdm: {
eventType: "decisioning.propositionFetch",
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
}
},
personalization: {
surfaces: ["web://example.com/home"]
}
});
A differenza del Web SDK, il risultato non contiene mai inferences o destinations.