Événements recommandés
Les événements recommandés reposent sur un framework qui envoie des événements personnalisés standardisés avec des schémas JSON définis. Lorsque vous envoyez un événement recommandé, Braze le valide par rapport à son schéma lors de l’ingestion et applique un traitement spécialisé, comme le calcul automatique de champs ou la gestion du panier, que les événements personnalisés génériques ne reçoivent pas. Pour certains ensembles d’événements sectoriels, Braze prend également en charge un traitement spécial, comme des déclencheurs basés sur l’action dédiés pour les Campaigns et les Canvas.
Événements recommandés eCommerce
Les événements recommandés eCommerce couvrent six étapes du parcours d’achat : product_viewed, cart_updated, checkout_started, order_placed, order_cancelled et order_refunded. Lorsque vous envoyez ces événements avec succès, Braze valide les données et les rend disponibles pour un ensemble croissant de fonctionnalités de la plateforme.
Ces fonctionnalités incluent des modèles de Canvas pour les flux de navigation abandonnée, de panier abandonné, de paiement abandonné et de confirmation de commande ; le reporting eCommerce ; et des champs calculés sur le profil utilisateur pour le chiffre d’affaires total, le nombre total de commandes et le total des remboursements. Vous pouvez également créer des Segments en utilisant le filtrage imbriqué des propriétés de produit via les Extensions de segments, personnaliser les messages de panier abandonné avec l’étiquette Liquid {% shopping_cart %}, et alimenter les fonctionnalités BrazeAITM comme Predictive Events, Predictive Churn et les recommandations d’articles, ainsi que d’autres fonctionnalités.
Comme ces événements suivent un schéma défini, chaque fonctionnalité prise en charge peut lire les données structurées sans mappage de propriétés personnalisées ni configuration par fonctionnalité de votre côté.

L’ancien événement d’achat passe en mode maintenance. Les clients Braze existants peuvent continuer à utiliser les anciens événements d’achat. Ils continueront de fonctionner normalement, mais les nouvelles fonctionnalités seront désormais développées sur la base des événements recommandés pour le commerce électronique. Braze vous informera bien à l’avance avant qu’une date de fin de vie ne soit fixée. Les nouveaux clients Braze doivent utiliser les événements recommandés pour le commerce électronique, car les anciens événements d’achat ne seront pas disponibles.
Fonctionnement des événements eCommerce
Les événements eCommerce sont des événements personnalisés avec des noms et des schémas de propriétés prédéfinis. Vous les envoyez à l’aide du SDK Braze ou de l’endpoint REST API /users/track, et Braze valide chaque événement par rapport à son schéma lors de l’ingestion. Lorsque la validation réussit, Braze applique automatiquement un post-traitement spécifique à ce type d’événement, comme le calcul des champs de chiffre d’affaires et la gestion de l’état du panier sur les profils utilisateurs.
Les événements eCommerce fonctionnent partout où les autres événements personnalisés fonctionnent : déclencheurs et filtres pour les événements personnalisés effectués, rapports d’événements personnalisés, et plus encore. Cependant, leur validation de schéma débloque des fonctionnalités supplémentaires, notamment :
- Les actions de déclenchement « Passe une commande » dans les Campaigns, les Canvas, les parcours d’actions, les déclencheurs de messages in-app et la suppression de cartes de contenu
- Les champs calculés eCommerce sur le profil utilisateur (Chiffre d’affaires total, Nombre total de commandes, Total des remboursements)
- La gestion de l’état du panier pour les flux de panier abandonné
- Des données plus riches pour les fonctionnalités BrazeAITM comme Predictive Events, Predictive Churn et les recommandations d’articles
Vous pouvez également référencer les événements eCommerce par leur nom partout où la plateforme prend en charge les événements personnalisés. Par exemple, vous pouvez déclencher une Campaign basée sur l’action avec les événements ecommerce.product_viewed, créer un Segment filtrant sur les événements ecommerce.checkout_started, ou exporter les événements ecommerce.order_placed via Currents.
Nommage des événements
Les noms d’événements sont exacts, sensibles à la casse et délimités par des points. Utilisez toujours le format canonique. Si un nom d’événement ne correspond pas exactement à l’un des six noms canoniques, Braze le traite comme un événement personnalisé standard et aucun post-traitement eCommerce n’est effectué.
Vous ne pouvez pas personnaliser ni renommer les événements.
- Correct :
ecommerce.order_placed - Incorrect :
order.placed,eCommerce_order_placed,Order_Placed
Schémas des événements
Les six événements recommandés eCommerce correspondent aux étapes du parcours d’achat. Déclenchez chaque événement au moment où l’utilisateur effectue l’action correspondante.

Se déclenche lorsqu’un utilisateur consulte une page de détail produit. Cet événement est compatible avec les notifications de retour en stock et les notifications de baisse de prix du catalogue Braze.
Propriétés de l’événement
| Nom de la propriété | Type de données | Requis | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit (par exemple, SKU ou ID d’article). |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante du produit (par exemple, shirt_medium_blue). |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page du produit pour plus de détails. |
price |
Float | Oui | Prix unitaire de la variante au moment de la consultation. |
currency |
String | Oui | Code ISO 4217 à trois lettres (par exemple, USD ou EUR). |
source |
String | Oui | Source d’origine de l’événement (par exemple, web, ios ou android). |
type |
Tableau de chaînes de caractères | Non | Requis pour utiliser les fonctionnalités de déclenchement par catalogue de Braze pour les alertes de retour en stock et de baisse de prix. Valeurs acceptées : "price_drop", "back_in_stock" |
metadata |
Objet | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : sku (String) |
Exemple REST API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.product_viewed",
"time": "2026-04-28T14:22:11Z",
"properties": {
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"image_url": "https://cdn.example.com/shoes/ub-blk-11.jpg",
"product_url": "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
"price": 189.99,
"currency": "USD",
"source": "web",
"type": ["price_drop", "back_in_stock"],
"metadata": {
"sku": "UB-BLK-11-SKU",
"category": "Running Shoes",
"brand": "Shoe Brand"
}
}
}
]
}
Se déclenche chaque fois que le contenu du panier d’un utilisateur change.
Vous pouvez envoyer cet événement de deux manières :
- Remplacement complet du panier : omettez
actionou définissezactionsurreplace. Incluez l’ensemble complet des lignes d’articles dansproductsavec des quantités absolues (nombre total d’unités par variante dans le panier). Vous devez incluretotal_value. - Mises à jour incrémentales du panier : définissez
actionsuraddouremove. N’incluez que les lignes d’articles qui ont changé. Chaquequantitycorrespond au nombre d’unités à ajouter ou à retirer, et non à la quantité totale dans le panier. Pouradd, Braze augmente la quantité de la ligne ou ajoute une nouvelle ligne. Pourremove, Braze diminue la quantité de la ligne et supprime la ligne lorsque la quantité atteint0.total_valueest facultatif pouraddetremove.

Utilisez soit les mises à jour incrémentales du panier (add ou remove), soit le remplacement complet (pas d’action ou replace) pour un panier donné. Mélanger les deux approches pour le même cart_id n’est pas recommandé et peut entraîner un état de panier incohérent dans Braze.
Pour déclencher un envoi de messages à partir de cet événement, utilisez le déclencheur Effectue un événement de mise à jour du panier dans Canvas et les Campaigns. Ce déclencheur inclut un traitement spécial pour empêcher le panier de progresser dans l’entonnoir d’achat.

Le panier crée un objet de mappage des paniers sur le profil utilisateur qui alimente l’étiquette Liquid {% shopping_cart %}. Le panier expire après 30 jours sans mise à jour. Si deux profils utilisateurs fusionnent, Braze conserve les deux paniers.
Propriétés de l’événement
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
cart_id |
String | Oui | Identifiant unique du panier. Partagé entre les événements de panier, de paiement et de commande pour le mappage du panier de l’utilisateur. |
action |
String | Non | add (incrémenter la quantité ou ajouter une ligne), remove (décrémenter la quantité ; la ligne est supprimée à 0) ou replace (remplacement complet du panier, identique à l’omission d’action). |
total_value |
Float | Conditionnel | Requis lorsque action est omis ou vaut replace. Facultatif lorsque action est add ou remove. |
subtotal_value |
Float | Non | Sous-total du panier (après remise, avant taxes/livraison). |
tax |
Float | Non | Total des taxes appliquées au panier. |
shipping |
Float | Non | Coût total de livraison du panier. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
products |
Tableau | Oui | Lignes d’articles pour cette mise à jour. Pour le remplacement complet (pas d’action ou replace), incluez le panier complet avec des quantités absolues. Pour add ou remove, n’incluez que les lignes modifiées ; voir les propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Objet | Non | Paires clé-valeur flexibles pour des données supplémentaires au niveau de l’événement. |
Propriétés de produit (products[])
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page du produit. |
quantity |
Integer | Oui | Pour le remplacement complet (pas d’action ou replace), nombre d’unités dans le panier pour cette ligne. Pour add ou remove, nombre d’unités à ajouter ou à retirer. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Objet | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Exemples de code
Chaque onglet de plateforme ci-dessous utilise la disposition d’extrait de code correspondant à ce chemin d’intégration (par exemple, titres ou libellés à l’intérieur d’un bloc de code). Les payloads add, remove et replace sont identiques sur toutes les plateformes ; seule la surface SDK ou API diffère.
add
add augmente la quantité ou ajoute une nouvelle ligne. La propriété quantity correspond au nombre d’unités à ajouter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
braze.logCustomEvent("ecommerce.cart_updated", {
cart_id: "cart_abc123",
action: "add",
currency: "USD",
source: "web",
products: [
{
product_id: "SKU-RUN-4821",
product_name: "Ultraboost Running Shoe",
variant_id: "UB-BLK-11",
quantity: 1,
price: 189.99,
},
],
});
remove
remove diminue la quantité du montant indiqué dans quantity. La ligne est supprimée lorsque la quantité atteint 0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
braze.logCustomEvent("ecommerce.cart_updated", {
cart_id: "cart_abc123",
action: "remove",
currency: "USD",
source: "web",
products: [
{
product_id: "SKU-SOC-1102",
product_name: "Performance Running Socks",
variant_id: "SOC-WHT-L",
quantity: 1,
price: 14.99,
},
],
});
replace
replace (ou omettez action) envoie le panier complet. total_value est requis.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
braze.logCustomEvent("ecommerce.cart_updated", {
cart_id: "cart_abc123",
action: "replace",
total_value: 234.96,
currency: "USD",
source: "web",
products: [
{
product_id: "SKU-RUN-4821",
product_name: "Ultraboost Running Shoe",
variant_id: "UB-BLK-11",
image_url: "https://cdn.example.com/shoes/ub-blk-11.jpg",
product_url: "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
quantity: 1,
price: 189.99,
},
{
product_id: "SKU-SOC-1102",
product_name: "Performance Running Socks",
variant_id: "SOC-WHT-L",
image_url: "https://cdn.example.com/socks/soc-wht-l.jpg",
product_url: "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
quantity: 2,
price: 14.99,
},
],
});
Ajouter
add augmente la quantité ou ajoute une nouvelle ligne. La propriété quantity correspond au nombre d’unités à ajouter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Kotlin
// add — units to add
Braze.getInstance(context).logCustomEvent(
"ecommerce.cart_updated",
BrazeProperties(
JSONObject()
.put("cart_id", "cart_abc123")
.put("action", "add")
.put("currency", "USD")
.put("source", "android")
.put(
"products",
JSONArray().put(
JSONObject()
.put("product_id", "SKU-RUN-4821")
.put("product_name", "Ultraboost Running Shoe")
.put("variant_id", "UB-BLK-11")
.put("quantity", 1)
.put("price", 189.99),
),
),
),
)
JavaScript
// add — units to add
Braze.getInstance(context).logCustomEvent(
"ecommerce.cart_updated",
new BrazeProperties(new JSONObject()
.put("cart_id", "cart_abc123")
.put("action", "add")
.put("currency", "USD")
.put("source", "android")
.put("products", new JSONArray()
.put(new JSONObject()
.put("product_id", "SKU-RUN-4821")
.put("product_name", "Ultraboost Running Shoe")
.put("variant_id", "UB-BLK-11")
.put("quantity", 1)
.put("price", 189.99)))));
Retirer
remove diminue la quantité du montant indiqué dans quantity. La ligne est supprimée lorsque la quantité atteint 0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Kotlin
// remove — units to remove
Braze.getInstance(context).logCustomEvent(
"ecommerce.cart_updated",
BrazeProperties(
JSONObject()
.put("cart_id", "cart_abc123")
.put("action", "remove")
.put("currency", "USD")
.put("source", "android")
.put(
"products",
JSONArray().put(
JSONObject()
.put("product_id", "SKU-SOC-1102")
.put("product_name", "Performance Running Socks")
.put("variant_id", "SOC-WHT-L")
.put("quantity", 1)
.put("price", 14.99),
),
),
),
)
JavaScript
// remove — units to remove
Braze.getInstance(context).logCustomEvent(
"ecommerce.cart_updated",
new BrazeProperties(new JSONObject()
.put("cart_id", "cart_abc123")
.put("action", "remove")
.put("currency", "USD")
.put("source", "android")
.put("products", new JSONArray()
.put(new JSONObject()
.put("product_id", "SKU-SOC-1102")
.put("product_name", "Performance Running Socks")
.put("variant_id", "SOC-WHT-L")
.put("quantity", 1)
.put("price", 14.99)))));
Remplacer
replace (ou omettez action) envoie le panier complet. total_value est requis.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Kotlin
// replace — full cart; total_value required
Braze.getInstance(context).logCustomEvent(
"ecommerce.cart_updated",
BrazeProperties(
JSONObject()
.put("cart_id", "cart_abc123")
.put("action", "replace")
.put("total_value", 234.96)
.put("currency", "USD")
.put("source", "android")
.put(
"products",
JSONArray()
.put(
JSONObject()
.put("product_id", "SKU-RUN-4821")
.put("product_name", "Ultraboost Running Shoe")
.put("variant_id", "UB-BLK-11")
.put("quantity", 1)
.put("price", 189.99),
)
.put(
JSONObject()
.put("product_id", "SKU-SOC-1102")
.put("product_name", "Performance Running Socks")
.put("variant_id", "SOC-WHT-L")
.put("quantity", 2)
.put("price", 14.99),
),
),
),
)
JavaScript
// replace — full cart; total_value required
Braze.getInstance(context).logCustomEvent(
"ecommerce.cart_updated",
new BrazeProperties(new JSONObject()
.put("cart_id", "cart_abc123")
.put("action", "replace")
.put("total_value", 234.96)
.put("currency", "USD")
.put("source", "android")
.put("products", new JSONArray()
.put(new JSONObject()
.put("product_id", "SKU-RUN-4821")
.put("product_name", "Ultraboost Running Shoe")
.put("variant_id", "UB-BLK-11")
.put("quantity", 1)
.put("price", 189.99))
.put(new JSONObject()
.put("product_id", "SKU-SOC-1102")
.put("product_name", "Performance Running Socks")
.put("variant_id", "SOC-WHT-L")
.put("quantity", 2)
.put("price", 14.99)))));
Ajouter
add augmente la quantité ou ajoute une nouvelle ligne. La propriété quantity correspond au nombre d’unités à ajouter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Swift
// add — units to add
AppDelegate.braze?.logCustomEvent(
name: "ecommerce.cart_updated",
properties: [
"cart_id": "cart_abc123",
"action": "add",
"currency": "USD",
"source": "ios",
"products": [
[
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"quantity": 1,
"price": 189.99,
],
],
]
)
Objective-C
// add — units to add
[AppDelegate.braze logCustomEvent:@"ecommerce.cart_updated"
properties:@{
@"cart_id": @"cart_abc123",
@"action": @"add",
@"currency": @"USD",
@"source": @"ios",
@"products": @[@{
@"product_id": @"SKU-RUN-4821",
@"product_name": @"Ultraboost Running Shoe",
@"variant_id": @"UB-BLK-11",
@"quantity": @1,
@"price": @189.99,
}],
}];
Retirer
remove diminue la quantité du montant indiqué dans quantity. La ligne est supprimée lorsque la quantité atteint 0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Swift
// remove — units to remove
AppDelegate.braze?.logCustomEvent(
name: "ecommerce.cart_updated",
properties: [
"cart_id": "cart_abc123",
"action": "remove",
"currency": "USD",
"source": "ios",
"products": [
[
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"quantity": 1,
"price": 14.99,
],
],
]
)
Objective-C
// remove — units to remove
[AppDelegate.braze logCustomEvent:@"ecommerce.cart_updated"
properties:@{
@"cart_id": @"cart_abc123",
@"action": @"remove",
@"currency": @"USD",
@"source": @"ios",
@"products": @[@{
@"product_id": @"SKU-SOC-1102",
@"product_name": @"Performance Running Socks",
@"variant_id": @"SOC-WHT-L",
@"quantity": @1,
@"price": @14.99,
}],
}];
Remplacer
replace (ou omettez action) envoie le panier complet. total_value est requis.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Swift
// replace — full cart; total_value required
AppDelegate.braze?.logCustomEvent(
name: "ecommerce.cart_updated",
properties: [
"cart_id": "cart_abc123",
"action": "replace",
"total_value": 234.96,
"currency": "USD",
"source": "ios",
"products": [
[
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"quantity": 1,
"price": 189.99,
],
[
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"quantity": 2,
"price": 14.99,
],
],
]
)
Objective-C
// replace — full cart; total_value required
[AppDelegate.braze logCustomEvent:@"ecommerce.cart_updated"
properties:@{
@"cart_id": @"cart_abc123",
@"action": @"replace",
@"total_value": @234.96,
@"currency": @"USD",
@"source": @"ios",
@"products": @[
@{
@"product_id": @"SKU-RUN-4821",
@"product_name": @"Ultraboost Running Shoe",
@"variant_id": @"UB-BLK-11",
@"quantity": @1,
@"price": @189.99,
},
@{
@"product_id": @"SKU-SOC-1102",
@"product_name": @"Performance Running Socks",
@"variant_id": @"SOC-WHT-L",
@"quantity": @2,
@"price": @14.99,
},
],
}];
add
add augmente la quantité ou ajoute une nouvelle ligne. La propriété quantity correspond au nombre d’unités à ajouter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.cart_updated",
"time": "2026-04-28T14:25:33Z",
"properties": {
"cart_id": "cart_abc123",
"action": "add",
"currency": "USD",
"source": "web",
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"quantity": 1,
"price": 189.99
}
]
}
}
]
}
remove
remove diminue la quantité du montant indiqué dans quantity. La ligne est supprimée lorsque la quantité atteint 0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.cart_updated",
"time": "2026-04-28T14:26:10Z",
"properties": {
"cart_id": "cart_abc123",
"action": "remove",
"currency": "USD",
"source": "web",
"products": [
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"quantity": 1,
"price": 14.99
}
]
}
}
]
}
replace
replace (ou omettez action) envoie le panier complet. total_value est requis.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.cart_updated",
"time": "2026-04-28T14:27:00Z",
"properties": {
"cart_id": "cart_abc123",
"action": "replace",
"total_value": 234.96,
"subtotal_value": 219.97,
"tax": 9.0,
"shipping": 5.99,
"currency": "USD",
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"image_url": "https://cdn.example.com/shoes/ub-blk-11.jpg",
"product_url": "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11"
}
},
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"image_url": "https://cdn.example.com/socks/soc-wht-l.jpg",
"product_url": "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"cart_source": "product_page_atc_button"
}
}
}
]
}
Se déclenche lorsque l’utilisateur initie le processus de paiement (par exemple, sélectionne « Paiement » ou arrive sur la page de paiement).
Propriétés de l’événement
| Propriété | Type | Requis | Description |
|---|---|---|---|
| checkout_id | String | Oui | Identifiant unique de la session de paiement. |
| cart_id | String | Non | Identifiant du panier. Partagé entre les événements de panier, de paiement et de commande pour le mappage du panier de l’utilisateur. |
| total_value | Float | Oui | Valeur monétaire totale du paiement. |
| subtotal_value | Float | Non | Sous-total (après remise, avant taxes/livraison). |
| tax | Float | Non | Total des taxes appliquées au paiement. |
| shipping | Float | Non | Coût total de livraison. |
| currency | String | Oui | Code ISO 4217 à trois lettres. |
| products | Tableau | Oui | Articles en cours de paiement. Voir le sous-tableau des propriétés de produit. |
| source | String | Oui | Source d’origine de l’événement. |
| metadata | Objet | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : checkout_url (String) |
Propriétés de produit (products[])
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page du produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Objet | Non | Paires clé-valeur flexibles (par exemple, couleur, taille). |
Exemple REST API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.checkout_started",
"time": "2026-04-28T14:30:05Z",
"properties": {
"checkout_id": "chk_88291",
"cart_id": "cart_abc123",
"total_value": 234.96,
"subtotal_value": 219.97,
"tax": 9.0,
"shipping": 5.99,
"currency": "USD",
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"image_url": "https://cdn.example.com/shoes/ub-blk-11.jpg",
"product_url": "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11"
}
},
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"image_url": "https://cdn.example.com/socks/soc-wht-l.jpg",
"product_url": "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"checkout_url": "https://www.example.com/checkout/chk_88291",
"checkout_type": "express"
}
}
}
]
}
Se déclenche lorsqu’une commande est finalisée avec succès ou que le paiement est confirmé.

Cet événement est le principal moteur de chiffre d’affaires. Il incrémente total_revenue de la valeur de total_value et incrémente total_orders de 1 sur le profil utilisateur.
Propriétés de l’événement
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
order_id |
String | Oui | Identifiant unique de la commande. |
cart_id |
String | Non | Identifiant du panier. Partagé entre les événements de panier, de paiement et de commande pour le mappage du panier de l’utilisateur. |
total_value |
Float | Oui | Valeur monétaire totale de la commande. |
subtotal_value |
Float | Non | Sous-total (après remise, avant taxes/livraison). |
tax |
Float | Non | Total des taxes appliquées à la commande. |
shipping |
Float | Non | Coût total de livraison. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
total_discounts |
Float | Non | Montant total des remises appliquées à la commande. |
discounts |
Tableau | Non | Liste détaillée des remises appliquées. |
products |
Tableau | Oui | Articles de la commande. Voir le sous-tableau des propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Objet | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : order_status_url (String) |
Propriétés de produit (products[])
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page du produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Objet | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Exemple REST API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_placed",
"time": "2026-04-28T14:35:42Z",
"properties": {
"order_id": "ord_77821",
"cart_id": "cart_abc123",
"total_value": 224.96,
"subtotal_value": 209.97,
"tax": 9.0,
"shipping": 5.99,
"currency": "USD",
"total_discounts": 10.0,
"discounts": [
{
"code": "SPRING10",
"amount": 10.0,
"type": "percentage"
}
],
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"image_url": "https://cdn.example.com/shoes/ub-blk-11.jpg",
"product_url": "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11"
}
},
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"image_url": "https://cdn.example.com/socks/soc-wht-l.jpg",
"product_url": "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"order_status_url": "https://www.example.com/orders/ord_77821/status"
}
}
}
]
}
Se déclenche lorsqu’une commande est annulée.

Cet événement décrémente total_orders de 1 sur le profil utilisateur. Il n’affecte pas total_revenue ; utilisez order_refunded pour ajuster le chiffre d’affaires.
Propriétés de l’événement
| Propriété | Type | Requis | Description |
|---|---|---|---|
order_id |
String | Oui | Identifiant unique de la commande. |
total_value |
Float | Oui | Valeur monétaire totale de la commande annulée. Doit être ≥ 0 — envoyez le montant absolu ; Braze gère la décrémentation. |
subtotal_value |
Float | Non | Sous-total (après remise, avant taxes/livraison). |
tax |
Float | Non | Total des taxes appliquées à la commande. |
shipping |
Float | Non | Coût total de livraison. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
total_discounts |
Float | Non | Montant total des remises appliquées à la commande. |
discounts |
Tableau | Non | Liste détaillée des remises appliquées. |
cancel_reason |
String | Oui | Raison de l’annulation de la commande. |
products |
Tableau | Oui | Articles de la commande annulée. Voir le sous-tableau des propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Objet | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : order_status_url (String) |
Propriétés de produit (products[])
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page du produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Objet | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Exemple REST API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_cancelled",
"time": "2026-04-28T16:10:00Z",
"properties": {
"order_id": "ord_77821",
"total_value": 224.96,
"subtotal_value": 209.97,
"tax": 9.0,
"shipping": 5.99,
"currency": "USD",
"total_discounts": 10.0,
"cancel_reason": "customer_request",
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11"
}
},
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"order_status_url": "https://www.example.com/orders/ord_77821/status"
}
}
}
]
}
Se déclenche lorsqu’un remboursement total ou partiel est émis.

Cet événement décrémente total_revenue de la valeur de total_value et incrémente total_refunds sur le profil utilisateur. Pour les remboursements partiels, définissez total_value sur le montant remboursé uniquement, et non sur le total de la commande d’origine.
Propriétés de l’événement
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
order_id |
String | Oui | Identifiant unique de la commande d’origine. |
total_value |
Float | Oui | Valeur monétaire totale du remboursement. Doit être ≥ 0 — envoyez le montant absolu ; Braze gère l’incrémentation de total_refunds. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
total_discounts |
Float | Non | Montant total des remises appliquées à l’origine. |
discounts |
Tableau | Non | Liste détaillée des remises. |
products |
Tableau | Oui | Articles remboursés. Voir le sous-tableau des propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Objet | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : order_status_url (String). |
Propriétés de produit (products[])
| Propriété | Type de données | Requis | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page du produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Objet | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Exemples REST API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_refunded",
"time": "2026-04-29T10:05:00Z",
"properties": {
"order_id": "ord_77821",
"total_value": 189.99,
"currency": "USD",
"total_discounts": 0,
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11",
"refund_reason": "size_mismatch"
}
}
],
"source": "web",
"metadata": {
"order_status_url": "https://www.example.com/orders/ord_77821/status"
}
}
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_refunded",
"time": "2026-05-02T11:08:30Z",
"properties": {
"order_id": "ORD-20260428-7891",
"total_value": 29.98,
"currency": "USD",
"products": [
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"image_url": "https://cdn.example.com/socks/soc-wht-l.jpg",
"product_url": "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"refund_method": "store_credit",
"initiated_by": "customer"
}
}
}
]
}
Post-traitement des événements eCommerce
Lorsque vous envoyez un événement eCommerce, Braze le valide par rapport au schéma attendu pour ce nom d’événement.
Le tableau suivant résume ce que Braze fait automatiquement pour chaque événement lorsque la validation réussit. Pour savoir ce qui se passe en cas d’échec de la validation, consultez Validation des événements et résolution des problèmes.
| Événement | Ce que Braze fait automatiquement |
|---|---|
ecommerce.order_placed |
Incrémente le chiffre d’affaires total de total_value et le nombre total de commandes de 1 sur le profil utilisateur. |
ecommerce.order_cancelled |
Décrémente le nombre total de commandes de 1. |
ecommerce.order_refunded |
Décrémente le chiffre d’affaires total de total_value et incrémente le total des remboursements. |
ecommerce.cart_updated |
Crée ou met à jour l’objet de mappage des paniers sur le profil utilisateur (payloads de panier complet, ou mises à jour incrémentales du panier avec action facultatif : add, remove ou replace). Le panier expire après 30 jours sans mise à jour. |
ecommerce.product_viewed |
Aucune modification du profil utilisateur. Disponible pour la segmentation, le déclenchement et les fonctionnalités BrazeAITM (comme les recommandations d’articles). |
ecommerce.checkout_started |
Aucune modification du profil utilisateur. Disponible pour la segmentation et le déclenchement (par exemple, les flux de paiement abandonné). |

Les valeurs dans des devises autres que l’USD sont automatiquement converties en USD en utilisant le taux de change à la date à laquelle l’événement est signalé. Si vous déclarez déjà en USD, codez en dur USD comme devise pour éviter toute conversion involontaire.
Implémenter les événements eCommerce
Vous pouvez envoyer des événements eCommerce via l’endpoint /users/track (côté serveur) ou la méthode SDK client logCustomEvent.
Envoyer des événements côté serveur
Utilisez l’endpoint /users/track pour envoyer des événements eCommerce depuis votre backend. Chaque événement nécessite le nom exact de l’événement, l’external_id de l’utilisateur et un objet de propriétés correspondant au schéma de l’événement.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
POST /users/track
{
"events": [
{
"external_id": "user_abc123",
"name": "ecommerce.order_placed",
"time": "2026-04-26T14:32:00Z",
"properties": {
"order_id": "order_7891011",
"total_value": 84.99,
"currency": "USD",
"source": "custom_api",
"total_discounts": 10.00,
"products": [
{
"product_id": "sku_2001",
"product_name": "Trail Runner Pro",
"variant_id": "var_2001_black_10",
"quantity": 1,
"price": 94.99,
"metadata": {
"color": "black",
"size": "10"
}
}
],
"metadata": {
"gift_wrapped": true,
"loyalty_points_earned": 170
}
}
}
]
}
Points de données et facturation
Les événements eCommerce ne consomment pas de points de données. Vous pouvez les enregistrer sans aucun impact sur votre consommation de points de données.
Limite de taille des événements
Les propriétés d’événement envoyées à /users/track sont plafonnées à 102 400 octets (100 Ko) par événement. Pour les messages déclenchés de Campaigns et de Canvas, les trigger_properties envoyées à /campaigns/trigger/send et /canvas/trigger/send ont une limite par défaut plus stricte de 51 200 octets (50 Ko).
En bonne pratique, n’envoyez que les informations produit nécessaires au déclenchement, à la personnalisation ou à l’attribution de l’événement. Stockez les détails produit plus riches — comme les descriptions, les listes complètes de variantes, l’inventaire ou les images alternatives — dans les catalogues Braze. Référencez ces détails par product_id ou variant_id lors de l’envoi de messages. Utilisez l’objet metadata de manière sélective pour le contexte spécifique à la commande ou au produit que l’envoi de messages utilisera.
Gestion des devises
Braze convertit automatiquement les valeurs dans des devises autres que l’USD en USD en utilisant le taux de change à la date à laquelle l’événement est signalé. Cette valeur convertie est celle qui apparaît dans les indicateurs de chiffre d’affaires.

Si vous opérez uniquement en USD, codez en dur "currency": "USD" dans chaque événement pour éviter toute conversion inutile.
Champ source
La propriété source est une chaîne de caractères requise qui identifie l’origine de l’événement. Par exemple, shopify, in-store POS ou custom_api. Cela vous aide à distinguer les sources d’intégration lors de l’analyse des données dans les exports Currents ou du débogage des problèmes de validation.
Flexibilité des métadonnées
Les objets de métadonnées au niveau de l’événement et au niveau du produit acceptent des paires clé-valeur arbitraires, ce qui vous permet d’attacher des dimensions personnalisées sans modifier le schéma principal. Les exemples courants incluent order_status_url, gift_wrapped, loyalty_points_earned ou warehouse_id. Ces propriétés sont disponibles dans la personnalisation Liquid, les exports Currents et la segmentation via les Extensions de segments.

Les événements recommandés utilisent un schéma strict. Par conséquent, l’ajout de propriétés personnalisées au niveau supérieur de properties échouera à la validation. Placez toutes les propriétés personnalisées dans l’objet metadata au niveau de l’événement ou dans l’objet metadata au niveau du produit à l’intérieur de products[]. Celles-ci restent disponibles pour Liquid, Currents et la segmentation, tout comme les champs de niveau supérieur.
Validation des événements et résolution des problèmes
Lorsque vous envoyez un événement recommandé eCommerce via /users/track ou l’un des SDK Braze, Braze valide le payload par rapport au schéma JSON de l’événement lors du traitement de l’événement recommandé. La validation s’exécute automatiquement sur chaque événement dont le nom correspond exactement à un événement recommandé (par exemple, ecommerce.order_placed ou ecommerce.cart_updated).
Ce que nous validons
Pour chaque événement dont le nom correspond à un événement recommandé eCommerce, Braze vérifie :
| Vérification | Exemple |
|---|---|
| Nom de l’événement | Doit être exact. Par exemple, ecommerce.cart_updated est correct — pas ecommerce.Cart_Updated, cartupdated ou cart_updated. |
| Propriétés requises présentes | order_placed nécessite order_id, total_value, currency, products et source. |
| Types de données corrects | total_value doit être un nombre ; currency doit être une chaîne de caractères ; products doit être un tableau. |
| Pas de propriétés supplémentaires au niveau supérieur | Les champs personnalisés sous properties provoquent un échec. Utilisez l’objet metadata à la place. |
| Contraintes de valeur | Les champs monétaires doivent être ≥ 0. currency doit être une chaîne ISO 4217 valide. |
| Champs par produit | Chaque élément de products[] doit inclure product_id, product_name, variant_id, quantity et price. |
Pourquoi nous validons
Les événements eCommerce alimentent des fonctionnalités qui dépendent de données cohérentes et prévisibles, notamment le suivi du chiffre d’affaires, l’étiquette Liquid {% shopping_cart %}, le déclencheur de panier abandonné et le reporting. Lorsque les payloads divergent du schéma, ces fonctionnalités produisent des inexactitudes silencieuses (totaux de chiffre d’affaires erronés, paniers manquants, déclencheurs défaillants). La validation impose le contrat en amont afin que les fonctionnalités en aval se comportent de manière prévisible.
Lorsque la validation réussit
L’événement est traité comme un événement recommandé eCommerce avec tout le post-traitement associé. Consultez les schémas des événements pour la liste complète des comportements déclenchés par chaque type d’événement.
Vérifier un événement réussi
Après avoir envoyé un événement, vous pouvez confirmer qu’il a été accepté et traité correctement en utilisant l’une des méthodes suivantes :
- Journal des événements utilisateur : ouvrez le profil de l’utilisateur dans le tableau de bord et consultez son activité. Les événements recommandés apparaissent avec l’intégralité de leur payload de propriétés, ce qui vous permet de confirmer que l’événement a bien été reçu et que les valeurs correspondent à ce que vous avez envoyé.
- Rapport d’événements personnalisés : accédez à Analytics > Custom Events pour voir les comptages agrégés de chaque événement recommandé au fil du temps. Cela est utile pour confirmer que le trafic de production circule comme prévu lorsque votre intégration est en production.
- Utilisateurs test : marquez un utilisateur dans votre espace de travail de développement comme utilisateur test, puis déclenchez des événements depuis votre intégration pour cet utilisateur. Les utilisateurs test sont signalés dans le tableau de bord, ce qui facilite l’isolation et l’inspection du comportement de bout en bout.
Lorsque la validation échoue
L’événement n’est pas traité comme un événement recommandé. Plus précisément :
- L’événement est entièrement rejeté. Les événements recommandés eCommerce invalides n’apparaissent pas sur le profil utilisateur, ne figurent pas dans Currents et ne sont pas disponibles pour la segmentation.
- Les fonctionnalités en aval des événements recommandés ne s’exécutent pas, notamment :
- Le suivi du chiffre d’affaires (reporting du chiffre d’affaires, champs calculés utilisateur comme
total_revenue) - Les mises à jour de l’objet panier sur le profil utilisateur
- Les déclencheurs « Effectue un événement de mise à jour du panier » ou « Passe une commande » dans Canvas et les Campaigns
- Le suivi du chiffre d’affaires (reporting du chiffre d’affaires, champs calculés utilisateur comme
La manière dont les erreurs sont signalées dépend du chemin d’ingestion :
- REST API (
/users/track) : chaque événement invalide est signalé dans le tableau errors de la réponse. Chaque entrée vous indique quel événement a échoué (index) et pourquoi (type). Le champ message de niveau supérieur indique toujours « success », ce qui signifie simplement que votre requête a atteint Braze, et non que chaque événement était valide. Vérifiez toujours la présence d’un tableau errors dans la réponse. - SDK Braze : les appels SDK retournent immédiatement et la validation s’exécute en arrière-plan, de sorte que les erreurs ne sont pas renvoyées à votre application. Pour être informé des échecs de validation des événements eCommerce, surveillez l’e-mail récapitulatif des échecs (voir Trouver les échecs).
Exemple de réponse d’erreur API
L’endpoint /users/track renvoie des erreurs au niveau des champs indiquant quelles propriétés ont échoué et pourquoi. Notez que le message de niveau supérieur peut renvoyer "success" car l’événement a été accepté dans le pipeline ; le tableau errors vous indique quels champs ont échoué à la validation du schéma. Consultez l’exemple de réponse d’erreur suivant.
1
2
3
4
{
"message": "success",
"errors": [{ "index": 0, "input_array": "purchases", "type": "'currency' must be an ISO 4217 currency" }]
}
Les échecs sont également classés en interne et agrégés pour l’e-mail récapitulatif des échecs :
| Type d’échec | Signification | Exemple |
|---|---|---|
missing_property |
Un champ requis est absent. | order_placed envoyé sans order_id. |
extra_property |
Un champ a été ajouté que le schéma ne définit pas. | Un champ personnalisé gift_wrapped au niveau supérieur de properties au lieu d’être dans metadata. |
unexpected_data_type |
Un champ est du mauvais type. | total_value: "29.99" (chaîne de caractères) au lieu de 29.99 (nombre). |

Les noms d’événements qui ne correspondent pas exactement à un événement recommandé (par exemple, ecommerce.OrderPlaced) ignorent entièrement la validation et sont enregistrés comme des événements personnalisés ordinaires. Ils apparaissent dans Currents et la segmentation sous le nom que vous avez envoyé, mais ne reçoivent aucun traitement d’événement recommandé et aucune entrée errors dans la réponse.
Trouver les échecs
Braze envoie par e-mail aux administrateurs de votre espace de travail un récapitulatif des échecs de validation des événements recommandés afin que vous puissiez identifier et corriger les problèmes d’intégration sans surveiller manuellement chaque événement.
L’e-mail récapitulatif inclut :
- Nombre total d’erreurs : le nombre d’erreurs pour la période de reporting.
- Erreurs par événement : une ventilation du nombre d’événements ayant échoué pour chaque type d’événement recommandé (par exemple,
ecommerce.cart_updatedetecommerce.order_placed). Utilisez cela pour identifier les événements de votre intégration nécessitant une attention prioritaire. - Erreurs par source : une répartition entre API et SDK, afin que vous puissiez identifier quelle intégration génère les échecs.
Si vous ne recevez pas ces e-mails ou souhaitez vérifier la liste des destinataires, contactez votre équipe de compte Braze.
Diagnostiquer et corriger les échecs
Lorsque vous recevez un e-mail récapitulatif des échecs :
- Identifiez l’événement et la source en échec. L’e-mail sépare les échecs par nom d’événement et source d’intégration (
sdkversusrest_api), ce qui vous permet de cibler quelle intégration nécessite la correction. Si vous avez plusieurs sources envoyant le même événement (par exemple, votre SDK de vitrine et un webhook backend envoyant tous deuxcart_updated), traitez-les indépendamment. - Comparez votre payload au schéma dans Schémas des événements. La plupart des échecs correspondent à l’un de ces trois cas :
missing_property: un champ requis est absent. Pour résoudre ce problème, ajoutez le champ requis.extra_property: un champ personnalisé se trouve au niveau supérieur deproperties. Pour résoudre ce problème, déplacez le champ personnalisé dansmetadata(au niveau de l’événement) ouproducts[].metadata(par produit).unexpected_data_type: une valeur est du mauvais type (par exemple,total_valueenvoyé comme chaîne de caractères). Pour résoudre ce problème, convertissez la valeur avant l’envoi.
- Testez le payload corrigé dans un espace de travail de développement avant de le déployer en production. Envoyez un événement test connu pour un utilisateur test, puis vérifiez le comportement attendu de l’événement recommandé sur le profil de cet utilisateur (par exemple, l’objet panier se met à jour, le chiffre d’affaires s’incrémente ou le déclencheur de panier abandonné se déclenche).
- Surveillez le prochain e-mail d’échecs pour confirmer que le nombre d’échecs pour cet événement, cette source et ce type tombe à zéro.
Pour les exigences complètes de propriétés par événement, consultez Schémas des événements.