Créer des événements personnalisés
Vous pouvez étendre la plateforme d’événements en créant vos propres événements de storefront pour collecter des données propres à votre secteur d’activité. Lorsque vous créez et configurez un événement personnalisé, il est envoyé au collecteur d’événements Adobe Commerce.
Gérer les événements personnalisés
Les événements personnalisés sont pris en charge pour le Adobe Experience Platform uniquement. Les données personnalisées ne sont pas transférées vers les tableaux de bord et les dispositifs de suivi des mesures d’Adobe Commerce.
Pour tout événement custom
, le collecteur :
- Ajoute des
identityMap
avecECID
comme identité principale - Inclut
email
dansidentityMap
comme identité secondaire sipersonalEmail.address
est défini dans l’événement - Enveloppe l’événement complet dans un objet
xdm
avant le transfert vers Edge
Exemple :
Événement personnalisé publié via Adobe Commerce Events SDK :
mse.publish.custom({
commerce: {
saveForLaters: {
value: 1,
},
},
});
Dans Experience Platform Edge :
{
xdm: {
identityMap: {
ECID: [
{
id: 'ecid1234',
primary: true
}
],
email: [
{
id: "runs@safari.ke",
primary: false
}
]
},
commerce: {
saveForLaters: {
value: 1
}
}
}
}
Gérer les remplacements d’événement (attributs personnalisés)
Pour tout événement défini avec un customContext
, le collecteur remplace ou étend les champs de la payload d'événement à partir des champs de la custom context
. Le cas d’utilisation des remplacements se présente lorsqu’un développeur souhaite réutiliser et étendre des contextes définis par d’autres parties de la page dans des événements déjà pris en charge.
Les remplacements d’événement ne s’appliquent que lors du transfert vers Experience Platform. Elles ne sont pas appliquées aux événements d’analyse Adobe Commerce et Sensei. Le collecteur d’événements Adobe Commerce README fournit des informations supplémentaires.
productListItems
dans les payloads d’événement Experience Platform, faites correspondre les produits en utilisant le SKU. Cette exigence ne s’applique pas aux événements product-page-view
.Utilisation
const mse = window.magentoStorefrontEvents;
mse.publish.productPageView(customCtx);
Exemple 1
Cet exemple montre comment ajouter du contexte personnalisé lors de la publication de l’événement.
magentoStorefrontEvents.publish.productPageView({
productListItems: [
{
productCategories: [
{
categoryID: "cat_15",
categoryName: "summer pants",
categoryPath: "pants/mens/summer",
},
],
},
],
});
Exemple 2
Cet exemple montre comment ajouter du contexte personnalisé avant de publier l’événement.
const mse = window.magentoStorefrontEvents;
mse.context.setCustom({
productListItems: [
{
productCategories: [
{
categoryID: "cat_15",
categoryName: "summer pants",
categoryPath: "pants/mens/summer",
},
],
},
],
});
mse.publish.productPageView();
Exemple 3
Cet exemple définit le contexte personnalisé dans l’éditeur et remplace le contexte personnalisé précédemment défini dans la couche de données client Adobe.
Dans cet exemple, l’événement pageView
aura Nom de page personnalisé 2 dans le champ web.webPageDetails.name
.
const mse = window.magentoStorefrontEvents;
mse.context.setCustom({
web: {
webPageDetails: {
name: 'Custom Page Name 1'
},
},
});
mse.publish.pageView({
web: {
webPageDetails: {
name: 'Custom Page Name 2'
},
},
});
Exemple 4
Cet exemple montre comment ajouter du contexte personnalisé aux événements productListItems
avec plusieurs produits.
const mse = window.magentoStorefrontEvents;
mse.context.setCustom({
productListItems: [
{
SKU: "24-WB01", //Match SKU to override correct product in event payload
productCategory: "Hand Bag", //Custom attribute added to event payload
name: "Strive Handbag (CustomName)" //Override existing attribute with custom value in event payload
},
{
SKU: "24-MB04",
productCategory: "Backpack Bag",
name: "Strive Backpack (CustomName)"
},
],
});
mse.publish.shoppingCartView();
Magasins basés sur Luma :
Les magasins Luma implémentent de manière native des événements de publication afin que vous puissiez définir des données personnalisées en étendant les customContext
.
Par exemple :
mse.context.setCustom({
web: {
webPageDetails: {
name: 'Custom Page Name'
},
},
});