[Alpha]{class="badge informative"}

sendEvent (Server SDK)

Cette page décrit la méthode de sendEvent de Server SDK. Pour le Web SDK, voir sendEvent.

La méthode sendEvent est le principal moyen d’envoyer des données à Adobe à partir de votre serveur. Il en résulte également la manière dont vous récupérez du contenu personnalisé. Utilisez l’objet xdm pour envoyer les données qui correspondent à votre schéma Adobe Experience Platform et l’objet data pour envoyer d’autres données.

Appelez sendEvent sur le handle de forRequest pour le visiteur actuel, après la résolution de 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"]
    }
  }
});

Le SDK envoie chaque événement à l’API du serveur Edge Network authentifiée à l’adresse server.adobedc.net. Voir Authentification.

Conditions requises requirements

  • Identité de Principal : chaque événement doit inclure une identité principale dans xdm.identityMap. Dans le cas contraire, l’Edge Network rejette l’événement. Voir xdm.
  • Taille : la requête envoyée par le SDK peut aller jusqu’à 64 Ko. Voir ​ Mécanismes de sécurisation ​ dans la documentation de l’API Edge Network.
  • Consentement : si le visiteur s’est désabonné ou si defaultConsent est "out" et qu’il n’a pas adhéré, sendEvent est résolu avec un objet vide sans envoyer aucun élément.

Options options

Option
Type
Description
xdm
Objet
Données correspondant à votre schéma XDM, y compris les identités de l’événement.
data
Objet
Données qui ne correspondent pas à votre schéma XDM.
type
Chaîne
Type d’événement. Un raccourci pour xdm.eventType.
personalization
Objet
Les décisions de personnalisation à demander.
decisionScopes
Tableau de chaînes
Portées de décision à demander. Une alternative à personalization.decisionScopes.
edgeConfigOverrides
Objet
Remplacements de flux de données pour cet événement uniquement.

Si vous transmettez une option que le SDK ne reconnaît pas, sendEvent la rejette avec une erreur Unknown field.

Options sans effet sur un serveur no-effect

Le SDK du serveur accepte les options de SDK Web suivantes afin que vous puissiez partager le code de création d’événement avec une implémentation de navigateur. Toutefois, ils dépendent d’un navigateur et n’ont aucun effet sur le serveur :

  • renderDecisions : le SDK ne rend jamais le contenu. Il renvoie plutôt des propositions dans le résultat .
  • personalization.sendDisplayEvent, personalization.includeRenderedPropositions, personalization.defaultPersonalizationEnabled et personalization.decisionContext.
  • advertising.

Ne documentUnloading pas sur un serveur. Elle ne s’applique pas en dehors d’un navigateur. Pour les visiteurs qui disposent déjà d’une identité, cela permet au SDK d’envoyer l’événement sous la forme d’une requête non authentifiée à l’edgeDomain au lieu de l’envoyer à l’API du serveur authentifié. Ce point d’entrée ne renvoie pas de réponse, donc sendEvent ne renvoie pas de propositions.

Les options datasetId et mergeId obsolètes sont toujours acceptées. Au lieu de datasetId, utilisez com_adobe_experience_platform.datasets.event.datasetId dans edgeConfigOverrides.

Objet de résultat result

La méthode sendEvent renvoie une promesse. Voir Gérer les résultats. Lorsque la promesse est résolue, l’objet de résultat peut contenir la propriété suivante :

  • propositions : tableau de propositions de personnalisation renvoyé par Edge Network pour les portées et les surfaces que vous avez demandées avec personalization. Cette propriété n’est présente que lorsque vous demandez une personnalisation. Le SDK ne génère pas de propositions et ne les marque pas comme rendues.

Si vous ne demandez pas de personnalisation ou si l’événement n’est pas envoyé en raison d’un consentement ou d’une onBeforeEventSend, le résultat est un objet vide.

const { propositions = [] } = await visitor.sendEvent({
  xdm: {
    eventType: "decisioning.propositionFetch",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  },
  personalization: {
    surfaces: ["web://example.com/home"]
  }
});

Contrairement au Web SDK, le résultat ne contient jamais de inferences ou de destinations.

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